An example of a generic KeyIndex which accounts for sharding that could occur
in a data store like Apache Accumulo. Given a shard count (pre-configured),
this index adds a "shard prefix" to the true index as given by the inner
argument. Accumulo can shard based off of the first digit of a row ID,
and since we use a round-robin approach to generate prefixes, this distributes
spatially close indices across different shards, and thus helps avoid hot spots.
Assumptions
The given shard count will be between 1 and 8.
The inner index will produce a value less than 2^60 for any
given key.
Linear Supertypes
KeyIndex[K], Serializable, Serializable, AnyRef, Any
An example of a generic KeyIndex which accounts for sharding that could occur in a data store like Apache Accumulo. Given a shard count (pre-configured), this index adds a "shard prefix" to the true index as given by the inner argument. Accumulo can shard based off of the first digit of a row ID, and since we use a round-robin approach to generate prefixes, this distributes spatially close indices across different shards, and thus helps avoid hot spots.
Assumptions