Skip to content

Latest commit

 

History

History
executable file
·
286 lines (248 loc) · 16.7 KB

CHANGES.md

File metadata and controls

executable file
·
286 lines (248 loc) · 16.7 KB

Algebird

Version 0.12.3 (Not yet released)

  • Add SetDiff data structure to algebird-core: #555
  • Add Ring[BigDecimal], modeled after Ring[BigInt]: #553
  • "Exponential Histogram" sliding window counter implementation added to algebird-core as ExpHist: #568
  • improve HLLSeries performance: #575
  • Add a microsite at https://twitter.github.io/algebird via the sbt-microsites plugin, along with docs for all typeclasses and data structures: #576
  • Adds lots of scalacheck Arbitrary and Gen instances to algebird-test, under com.twitter.algebird.scalacheck.{ gen, arbitrary }: #579
  • Add Monoid[Max[Vector[T]]], Monoid[Max[Stream[T]]]: #579
  • Add FirstAggregator and LastAggregator, and docs and API / perf improvements for First, Last, Min, Max: #579
  • Add LawsEquiv versions of all laws: #584
  • Deprecates broken group/ring for Future/Try: #584
  • Add metricsLaws[T] to BaseProperties in algebird-test: #584
  • Modify generated Tuple2Monoid, etc to extend TupleNSemigroup, giving subclasses access to efficient sumOption: #585
  • optimize Generated{Abstract,Product}Algebra.sumOption with benchmarking #591
  • Add an efficient sumOption, +, -, methods and docs to AveragedValue: #589

Version 0.12.2

  • optimize CMS.create(Seq[K]): #537
  • Update to sbt 0.13.11: #540
  • Add Semigroup.maybePlus: #544
  • Improve the build and test times and add Codecov.io: #541

Version 0.12.1

  • Add Identity class and Monad instance: #511
  • Using dropRight instead of tail for shortening BytesSpec array: #510
  • Fix flaky MinHasherSpec test: #514
  • fix input type of toRichTraversable: #518
  • build in scala 2.11 by default: #520
  • make SSOne/SSMany constructors private and add apply method with count: #519
  • Fix BytesSpec to not reference head on an empty list #525
  • Add an Aggregator.randomSample aggregator: #529
  • Add sortedTakeBy and sortedReverseTakeBy to Aggregator.scala: #527
  • Add Batched[A] type for efficient lazy addition: #530
  • Add a default k value for Aggregator.approximatePercentile: #531

Version 0.12.0

  • Implement an appendMonoid Aggregator factory which yields aggregators…: #501
  • Dealing with probabilistic tests: #478
  • Add Applicative.sequenceGen: #498
  • Create a sparse Count-Min-Sketch.: #464
  • fix name and visibility of negativePowersOfTwo: #492
  • Speed up HLL presentation by 100x: #491
  • Test Semigroup#sumOption using Iterator instead of List: #490
  • Fix tests that were not actually running: #485
  • add immutable version of sorted(Reverse)Take: #484
  • Cuber/roller macros: #483
  • Add sanity requirement for Approximate: #481
  • Ioconnell/make develop version have snapshot suffix: #482
  • Upgrade scalacheck and scalatest: #480
  • Adding scoped top-N CMS monoid: #471
  • Fix Qtree quantileBounds off-by-one error: #472
  • Move benchmarks to JMH: #473
  • Ianoc/q tree benchmark more coverage: #474
  • Optimize QTree a bunch: #475
  • Disable coveralls, shows up as builds pending that are long finished: #476

Version 0.11.0

  • Move CMSHasherByteArray from scalding: #467
  • Upgrade sbt launcher script (sbt-extras): #469
  • Create case class macros for algebraic structures: #466
  • Refactor MapAggregator: #462
  • Algebird support for spark: #397
  • Add MapAggregator from 1 (key, aggregator) pair: #452
  • Remove unnecessary use of scala.math: #455
  • Don't call deprecated HyperLogLog methods in tests: #456
  • Update product_generators.rb: #457
  • Pzheng/gaussian euclidean: #448

Version 0.10.2

  • QTree quantileBounds assert percentile <= 1.0 #447

Version 0.10.1

  • Make HLL easier to use, add Hash128 typeclass #440
  • add ! to ApproximateBoolean #442
  • add QTreeAggregator and add approximatePercentileBounds to Aggregator #443
  • Make level configurable in QTreeAggregators #444

Version 0.10.0

  • HyperLogLogSeries #295
  • CMS: add contramap to convert CMS[K] to CMS[L], add support for String and Bytes, remove Ordering context bound for K #399
  • EventuallyAggregator and variants #407
  • Add MultiAggregator.apply #408
  • Return a MonoidAggregator from MultiAggregator when possible #409
  • Add SummingWithHitsCache class to also track key hits. #410
  • Add MapAggregator to compose tuples of (key, agg) pairs #411
  • fix README.md. 2.9.3 no longer published #412
  • Add Coveralls Badge to the README #413
  • Add some combinators on MonoidAggregator #417
  • Added function to safely downsize a HyperLogLog sketch #418
  • AdaptiveCache #419
  • fix property tests #421
  • Make Preparer extend Serializable #422
  • Make MutableBackedMap Serializable. #424
  • A couple of performance optimizations: HyperLogLog and BloomFilter #426
  • Adds a presenting benchmark and optimizes it #427
  • Fixed broken links in README #428
  • Speed up QTree #433
  • Moments returns NaN when count is too low for higher order statistics #434
  • Add HLL method to do error-based Aggregator #438
  • Bump bijection to 0.8.0 #441

Version 0.9.0

  • Replace mapValues with one single map to avoid serialization in frameworks like Spark. #344
  • Add Fold trait for composable incremental processing (for develop) #350
  • Add a GC friendly LRU cache to improve SummingCache #341
  • BloomFilter should warn or raise on unrealistic input. #355
  • GH-345: Parameterize CMS to CMS[K] and decouple counting/querying from heavy hitters #354
  • Add Array Monoid & Group. #356
  • Improvements to Aggregator #359
  • Improve require setup for depth/delta and associated test spec #361
  • Bump from 2.11.2 to 2.11.4 #365
  • Move to sbt 0.13.5 #364
  • Correct wrong comment in estimation function #372
  • Add increments to all Summers #373
  • removed duplicate semigroup #375
  • GH-381: Fix serialization errors when using new CMS implementation in Storm #382
  • Fix snoble's name #384
  • Lift methods for Aggregator and MonoidAggregator #380
  • applyCumulative method on Aggregator #386
  • Add Aggregator.zip #389
  • GH-388: Fix CMS test issue caused by roundtripping depth->delta->depth #395
  • GH-392: Improve hashing of BigInt #394
  • add averageFrom to DecayedValue #391
  • Freshen up Applicative instances a bit #387
  • less noise on DecayedValue tests #405
  • Preparer #400
  • Upgrade bijection to 0.7.2 #406

Version 0.8.0

  • Removes deprecated monoid: #342
  • Use some value classes: #340
  • WIP: Algebird 210 211: #337
  • Use Builder in Seq/List Monoids: #338
  • Add a commment to close 334: #339
  • Make trait public that should never have been private: #335
  • Fix some issues with Successible/Predessible: #332
  • Add Applicative and Functor as superclasses of Monad: #330
  • Updated Maven section to updated version 0.7.0: #329

Version 0.7.0

  • simplification for spacesaver. before buckets were kept in an option str...: #308
  • Dynamic Summer, may use heuristics to decide not to keep a tuple in a buffer for aggregation.: #314
  • Was a missing call to the update if we had flushed. Now we just do it as...: #324
  • Bump to 2.10.4 in travis: #323
  • Feature/auto formatter ran: #321
  • Little commit fixing up some spacing per our norms:: #319
  • provider methods for java: #317
  • Serializable adaptive matrix: #318
  • Clean up comments: #315
  • make distribution immutable now that it contains mutable counters: #313
  • a monoid that keeps track of the monoid usage: #311

Version 0.6.0

  • make constructors for SpaceSaver subclasses public so that deserializers..: #289
  • Restoring optimized SketchMapMonoid#sumOption: #293
  • Newer caliper hll benchmark: #297
  • hll optimization: #299
  • Optimize the storage backend used in sketch map: #301
  • migrate async summers from Summingbird: #296
  • add sumOption to EventuallySemiGroup: #306
  • Heavyhitters no longer attempts lazy storage in SketchMap: #305
  • Async Maps performance improvements: #302
  • Make the AsyncListSum be immutable again: #309

Version 0.5.0

  • Remove handling that doesn't seem needed/wanted for longs: #287
  • Add average() for DecayedValue: #286
  • SketchMapParams can support being constructed with both width/depth and eps/delta: #285
  • undo the undo of the interval fixes: #283
  • Fix priority queue bug found by scalacheck: #280
  • Adds type parameters to Intersection for more precision: #279
  • Make resolver consistent with scalding: #276
  • remove Math use in test: #275
  • Remove extends function from algebird: #274
  • remove unnecessary implicit requirement: #272
  • Fix SketchMapMonoid zero: #269
  • Make SketchMapMonoid params public: #265
  • Add Predecessible and methods to Interval: #262
  • Implement StreamSummary data structure for finding frequent/top-k items: #259

Version 0.4.0

  • Make SketchMap1 the only SketchMap implementation: #256
  • Use semigroup in StateWithError: #255
  • Don't iterate through everything in unit monoid: #253
  • Factor as much logic as possible into SketchmapMonoid1: #251
  • Moving Trampoline flatMap implementation into trait: #249
  • Integrate Caliper: #248
  • Adds append method to MonoidAggregator and RingAggregator: #246
  • Make the map monoid more performant for mutable maps: #245
  • Make BFHash take on non negative values only: #243
  • Fixed DecayedValue: #238
  • Updated scaladoc to 0.3.0: #237
  • Add Incrementable and tests: #234
  • Updates sbt runner: #232
  • Upgrade sbt, specs, add a build.properties, and bump travis's target: #231

Version 0.3.1

  • Make a field transient in BloomFilter serialization: #209
  • Add the TunnelMonoid to Util (like async function monoid): #213
  • Make DecayedValueMonoid a class: #223
  • SketchMap performance improvements: #227
  • Add the Option group: #230
  • Add Successible Typeclass: #234
  • sumOption support on generated tuple Semigroups: #242

Version 0.3.0

  • Optimize lots of the Monoids/Semigroups when summing many items: see Semigroup.sumOption #206
  • Add many Aggregators for more convenient aggregation: #194
  • Aggregators compose: #188
  • Added scala.collection.Map (not just immutable.Map) algebras: #199
  • Added Boolean monoids (Or and And): #198

Version 0.2.0

  • Adds algebird-bijection module: #181
  • Build cleanups: #180
  • MapAlgebra.sparseEquiv: #182
  • Remove isNonZero from Semigroup, add to Monoid: #183
  • add MapAlgebra.mergeLookup: #185

Version 0.1.13

  • Adds QTree monoid for range queries

Version 0.1.12

  • Adds hashing trick monoid for dimensionality reduction

Version 0.1.10

  • Fix compiler flag issue

Version 0.1.9

  • Build algebird against scala 2.9.2 and 2.10.0
  • algebird-util with Future and Try algebras.

Version 0.1.8

  • Break out algebird-core and algebird-test into separate jars

Version 0.1.7

  • SummingQueue works with capacity of 0, just passes through
  • adds compressed bitset (RichCBitSet)
  • Add BFSparse
  • Heavy hitters in countminsketch
  • Monad typeclass

Version 0.1.6

  • Adds publishing pom.
  • Add SummingQueue
  • rename Cassandra's MurmurHash.

Version 0.1.5

  • Make Metric serializable
  • JMap uses Semigroup

Version 0.1.4

  • Count-min-sketch (with Monoid)
  • Added Bloom Filter (with Monoid)
  • HyperLogLog now uses Murmur128 (should be faster)
  • Max/Min/First/Last Monoids
  • VectorSpace trait (implementations for Maps/Vector)
  • DecayedVector for efficient exponential moving average on vectors
  • Metric trait
  • Approximate[Numeric]/Boolean to track error in approximations
  • Adds Semigroup and implicits for usual primitives and collections
  • Fixes EitherMonoid to have a zero
  • Add MinPlus algebra for shortest path calculations
  • Lots of code cleanups

Version 0.1.2

  • Improves speed of HyperLogLog.
  • Refactoring of RightFolded Monoid

Version 0.1.1

  • Added Moments monoid for first 5 moments
  • Improved HyperLogLogMonoid (less memory usage, added intersections)

Version 0.1.0

  • Moved code over from Scalding.