Interface PartitionPosition

All Superinterfaces:
ByteComparable, Comparable<PartitionPosition>, RingPosition<PartitionPosition>
All Known Implementing Classes:
BufferDecoratedKey, CachedHashDecoratedKey, DecoratedKey, NativeDecoratedKey, PreHashedDecoratedKey, Token.KeyBound

public interface PartitionPosition extends RingPosition<PartitionPosition>, ByteComparable
  • Field Details

  • Method Details

    • kind

    • isMinimum

      boolean isMinimum()
      Specified by:
      isMinimum in interface RingPosition<PartitionPosition>
    • asComparableBytes

      ByteSource asComparableBytes(ByteComparable.Version version)
      Produce a prefix-free byte-comparable representation of the key, i.e. such a sequence of bytes that any pair x, y of valid positions (with the same key column types and partitioner), x.compareTo(y) == compareLexicographicallyUnsigned(x.asComparableBytes(), y.asComparableBytes()) and x.asComparableBytes() is not a prefix of y.asComparableBytes() We use a two-component tuple for decorated keys, and a one-component tuple for key bounds, where the terminator byte is chosen to yield the correct comparison result. No decorated key can be a prefix of another (per the tuple encoding), and no key bound can be a prefix of one because it uses a terminator byte that is different from the tuple separator.
      Specified by:
      asComparableBytes in interface ByteComparable
    • asComparableBound

      ByteComparable asComparableBound(boolean before)
      Produce a byte-comparable representation for the position before or after the key. This does nothing for token boundaries (which are already at a position between valid keys), and changes the terminator byte for keys.