- Add
SetDiff
data structure toalgebird-core
: #555 - Add
Ring[BigDecimal]
, modeled afterRing[BigInt]
: #553 - "Exponential Histogram" sliding window counter implementation added to
algebird-core
asExpHist
: #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
andGen
instances toalgebird-test
, undercom.twitter.algebird.scalacheck.{ gen, arbitrary }
: #579 - Add
Monoid[Max[Vector[T]]]
,Monoid[Max[Stream[T]]]
: #579 - Add
FirstAggregator
andLastAggregator
, and docs and API / perf improvements forFirst
,Last
,Min
,Max
: #579 - Add
LawsEquiv
versions of all laws: #584 - Deprecates broken group/ring for
Future
/Try
: #584 - Add
metricsLaws[T]
toBaseProperties
inalgebird-test
: #584 - Modify generated
Tuple2Monoid
, etc to extendTupleNSemigroup
, giving subclasses access to efficientsumOption
: #585 - optimize
Generated{Abstract,Product}Algebra.sumOption
with benchmarking #591 - Add an efficient
sumOption
,+
,-
, methods and docs toAveragedValue
: #589
- 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
- Add
Identity
class andMonad
instance: #511 - Using
dropRight
instead oftail
for shorteningBytesSpec
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
andsortedReverseTakeBy
toAggregator.scala
: #527 - Add
Batched[A]
type for efficient lazy addition: #530 - Add a default
k
value forAggregator.approximatePercentile
: #531
- 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
- 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
- QTree quantileBounds assert percentile <= 1.0 #447
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- Adds algebird-bijection module: #181
- Build cleanups: #180
- MapAlgebra.sparseEquiv: #182
- Remove isNonZero from Semigroup, add to Monoid: #183
- add MapAlgebra.mergeLookup: #185
- Adds QTree monoid for range queries
- Adds hashing trick monoid for dimensionality reduction
- Fix compiler flag issue
- Build
algebird
against scala 2.9.2 and 2.10.0 algebird-util
with Future and Try algebras.
- Break out
algebird-core
andalgebird-test
into separate jars
- SummingQueue works with capacity of 0, just passes through
- adds compressed bitset (RichCBitSet)
- Add
BFSparse
- Heavy hitters in countminsketch
- Monad typeclass
- Adds publishing pom.
- Add SummingQueue
- rename Cassandra's MurmurHash.
- Make Metric serializable
- JMap uses Semigroup
- 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
- Improves speed of HyperLogLog.
- Refactoring of RightFolded Monoid
- Added Moments monoid for first 5 moments
- Improved HyperLogLogMonoid (less memory usage, added intersections)
- Moved code over from Scalding.