A Mergeable that sits on top of another mergeable and pre-aggregates before pushing into merge/multiMerge This is very useful for cases where you have some keys that are very hot, or you have a remote store that you don't want to constantly hit.
Caveat Emptor! The semigroup on the resulting
ConvertedMergeableStore
will be the bijected semigroup from
Semigroup[V1] => Semigroup[V2].
Enrichment on the com.twitter.storehaus.algebra.MergeableStore trait.
Injection that maps values paired with stale values of T => None on inversion.
MergeableStore instance that is backed by a ConcurrentHashMap This class is thread safe with a locking merge operation and thread safe put/get operations provided by the underlying ConcurrentHashMap There is no multi operation optimization so all multi operations use the default Store implementation.
Uses the monoid and filters zeros on put.
Main trait to represent stores that are used for aggregation
Just get, locally merge, then put.
This class allows code to depends on the data that a value will be combined with, fulfilling the Promise with the value just before the value is added in.
TODO: REMOVE WHEN NEXT VERSION OF ALGEBIRD IS PUBLISHED https://github.
Same as a ReadableStoreSemigroup except with a zero that the constant store always returning Monoid.
A semigroup that uses the future semigroup to add results of both gets
For any given V, construct a StatefulSummer of Map[K, V]
MergeableStore enrichment which presents a MergeableStore[K, V] over top of a packed MergeableStore[OuterK, Map[InnerK, V]].
Use an injection on V2,V1 to convert a store of values V2.
import Algebras.
Some factory methods and combinators on MergeableStore
Enrichments and modifications to instances of MutableCache.
Enrichments on ReadableStore.
Algebraic Enrichments on Store.