Algebird v0.12.3 Release Notes

Release Date: 2016-12-02 // over 7 years ago
  • ๐Ÿš€ The main new feature of this release is a faster (benchmarked!) implementation of tuple and product semigroup sumOptions. This means if you are aggregating on scalding or spark, you should see a significant (~ 2x faster).

    There is a new Set membership monoid called SetDiff. It can model adding and removing from sets (which can be useful for applications in summingbird).

    ๐Ÿ We have an exponential histogram Fold, which is an approximate data-structure that can tell you approximate counts over sliding windows (see #568). A future work will add a monoid for this type, however when possible, using the Fold is better since it has better error properties.

    ๐Ÿ“„ Lastly, there are many new docs.

    ๐Ÿš€ Huge thanks to @sritchie who was the main contributor to this release.

    ๐Ÿ”„ changelog:

    • โž• 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