Class TokenUtils
- java.lang.Object
-
- org.apache.cassandra.spark.bulkwriter.token.TokenUtils
-
- All Implemented Interfaces:
java.io.Serializable
public class TokenUtils extends java.lang.Object implements java.io.SerializableThis is utility class for computing Cassandra token for a CQL row. This is mainly written to partition Cassandra ring and split it between Spark executors. And to make sure each executor is only talking to one Cassandra replica set. This reduces number of SSTables that get created in Cassandra by the bulk writing job. Fewer SSTables will result in lower read latencies and lower compaction overhead.- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description TokenUtils(java.util.List<java.lang.String> partitionKeyColumns, java.util.List<ColumnType<?>> partitionKeyColumnTypes, boolean isMurmur3Partitioner)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.nio.ByteBuffergetCompositeKey(java.lang.Object[] columnValues)java.nio.ByteBuffergetCompositeKey(java.nio.ByteBuffer[] byteBuffers)java.math.BigIntegergetToken(java.lang.Object[] columnValues)Calculate Cassandra token for CQL rowjava.math.BigIntegergetToken(java.nio.ByteBuffer key)java.math.BigIntegergetToken(java.util.List<java.lang.Object> columnValues)Calculate Cassandra token for CQL rowjava.math.BigIntegergetToken(java.util.Map<java.lang.String,java.lang.Object> columnValues)Calculate Cassandra token for CQL row
-
-
-
Constructor Detail
-
TokenUtils
public TokenUtils(java.util.List<java.lang.String> partitionKeyColumns, java.util.List<ColumnType<?>> partitionKeyColumnTypes, boolean isMurmur3Partitioner)
-
-
Method Detail
-
getToken
public java.math.BigInteger getToken(java.nio.ByteBuffer key)
-
getCompositeKey
public java.nio.ByteBuffer getCompositeKey(java.lang.Object[] columnValues)
-
getCompositeKey
public java.nio.ByteBuffer getCompositeKey(java.nio.ByteBuffer[] byteBuffers)
-
getToken
public java.math.BigInteger getToken(java.util.Map<java.lang.String,java.lang.Object> columnValues)
Calculate Cassandra token for CQL row- Parameters:
columnValues- Map of partitioner key columns to column value as Java type- Returns:
- Cassandra token
-
getToken
public java.math.BigInteger getToken(java.util.List<java.lang.Object> columnValues)
Calculate Cassandra token for CQL row- Parameters:
columnValues- list of partitioner key columns in the same order as partition key- Returns:
- Cassandra token
-
getToken
public java.math.BigInteger getToken(java.lang.Object[] columnValues)
Calculate Cassandra token for CQL row- Parameters:
columnValues- array of partitioner key columns in the same order as partition key- Returns:
- Cassandra token
-
-