Class Murmur3Partitioner.LongToken

java.lang.Object
org.apache.cassandra.dht.Token
org.apache.cassandra.dht.Murmur3Partitioner.LongToken
All Implemented Interfaces:
Serializable, Comparable<Token>, RingPosition<Token>
Enclosing class:
Murmur3Partitioner

public static class Murmur3Partitioner.LongToken extends Token
See Also:
  • Field Details

    • token

      public final long token
  • Constructor Details

    • LongToken

      public LongToken(long token)
  • Method Details

    • toString

      public String toString()
      Overrides:
      toString in class Object
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • compareTo

      public int compareTo(Token o)
    • asComparableBytes

      public ByteSource asComparableBytes(ByteComparable.Version version)
      Description copied from class: Token
      Produce a weakly prefix-free byte-comparable representation of the token, i.e. such a sequence of bytes that any pair x, y of valid tokens of this type and any bytes b1, b2 between 0x10 and 0xEF, (+ stands for concatenation) compare(x, y) == compareLexicographicallyUnsigned(asByteComparable(x)+b1, asByteComparable(y)+b2) (i.e. the values compare like the original type, and an added 0x10-0xEF byte at the end does not change that) and: asByteComparable(x)+b1 is not a prefix of asByteComparable(y) (weakly prefix free) (i.e. a valid representation of a value may be a prefix of another valid representation of a value only if the following byte in the latter is smaller than 0x10 or larger than 0xEF). These properties are trivially true if the encoding compares correctly and is prefix free, but also permits a little more freedom that enables somewhat more efficient encoding of arbitrary-length byte-comparable blobs.
      Specified by:
      asComparableBytes in class Token
    • getPartitioner

      public IPartitioner getPartitioner()
      Specified by:
      getPartitioner in interface RingPosition<Token>
      Specified by:
      getPartitioner in class Token
    • getHeapSize

      public long getHeapSize()
      Specified by:
      getHeapSize in class Token
    • getTokenValue

      public Object getTokenValue()
      Specified by:
      getTokenValue in class Token
    • getLongValue

      public long getLongValue()
      Description copied from class: Token
      This method exists so that callers can access the primitive long value for this Token, if one exits. It is especially useful when the auto-boxing induced by a call to Token.getTokenValue() would be unacceptable for reasons of performance.
      Overrides:
      getLongValue in class Token
      Returns:
      the primitive long value of this token, if one exists
    • size

      public double size(Token next)
      Description copied from class: Token
      Returns a measure for the token space covered between this token and next. Used by the token allocation algorithm (see CASSANDRA-7032).
      Specified by:
      size in class Token
    • nextValidToken

      public Murmur3Partitioner.LongToken nextValidToken()
      Description copied from class: Token
      Returns the next possible token in the token space, one that compares greater than this and such that there is no other token that sits between this token and it in the token order. This is not possible for all token types, esp. for comparison-based tokens such as the LocalPartioner used for classic secondary indexes. Used to avoid clashes between nodes in separate datacentres trying to use the same token via the token allocation algorithm, as well as in constructing token ranges for sstables.
      Specified by:
      nextValidToken in class Token
    • decreaseSlightly

      public Murmur3Partitioner.LongToken decreaseSlightly()
    • keyForToken

      public static ByteBuffer keyForToken(long token)
    • keyForToken

      public static ByteBuffer keyForToken(Murmur3Partitioner.LongToken token)
      Reverses murmur3 to find a possible 16 byte key that generates a given token