class ShardingKeyIndex[K] extends KeyIndex[K]

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
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ShardingKeyIndex
  2. KeyIndex
  3. Serializable
  4. Serializable
  5. AnyRef
  6. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new ShardingKeyIndex(inner: KeyIndex[K], shardCount: Int)

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  6. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  7. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  8. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  9. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  10. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  11. def indexRanges(keyRange: (K, K)): Seq[(BigInt, BigInt)]
    Definition Classes
    ShardingKeyIndexKeyIndex
  12. val inner: KeyIndex[K]
  13. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  14. def keyBounds: KeyBounds[K]

    Some(keybounds) if the indexed space is bounded; None if it is unbounded

    Some(keybounds) if the indexed space is bounded; None if it is unbounded

    Definition Classes
    ShardingKeyIndexKeyIndex
  15. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  16. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  17. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  18. val shardCount: Int
  19. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  20. def toIndex(key: K): BigInt
    Definition Classes
    ShardingKeyIndexKeyIndex
  21. def toString(): String
    Definition Classes
    AnyRef → Any
  22. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  23. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  24. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()

Inherited from KeyIndex[K]

Inherited from Serializable

Inherited from Serializable

Inherited from AnyRef

Inherited from Any

Ungrouped