Class UserPartitionAwarePartitioner


  • public class UserPartitionAwarePartitioner
    extends VenicePartitioner
    UserPartitionAwarePartitioner takes a partitioner and amplification factor as input params. When partitioning, the partitioner is run twice in a row, once to determine the application partition, and a second time to determine the sub-partition. Algorithm: subPartition = partition(key, userPartitions) * amplificationFactor + partition(key, amplificationFactor)
    • Constructor Detail

      • UserPartitionAwarePartitioner

        public UserPartitionAwarePartitioner​(VenicePartitioner partitioner,
                                             int amplificationFactor)
    • Method Detail

      • getPartitionId

        public int getPartitionId​(byte[] keyBytes,
                                  int subPartitionCount)
        Description copied from class: VenicePartitioner
        A function that returns the partitionId based on the key and partition count.
        Specified by:
        getPartitionId in class VenicePartitioner
        Parameters:
        keyBytes - - A key that will be mapped into a partition
        subPartitionCount - - The number of total partitions available in Kafka/storage
        Returns:
      • getPartitionId

        public int getPartitionId​(java.nio.ByteBuffer keyByteBuffer,
                                  int subPartitionCount)
        Specified by:
        getPartitionId in class VenicePartitioner