Package com.linkedin.venice.utils
Class PartitionUtils
- java.lang.Object
-
- com.linkedin.venice.utils.PartitionUtils
-
public class PartitionUtils extends java.lang.Object
-
-
Constructor Summary
Constructors Constructor Description PartitionUtils()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static int
calculatePartitionCount(java.lang.String storeName, long storageQuota, int storePartitionCount, long partitionSize, int minPartitionCount, int maxPartitionCount, boolean isRoundUpEnabled, int roundUpSize)
Calculate partition count for new version.static int
getAmplificationFactor(ReadOnlyStoreRepository readOnlyStoreRepository, java.lang.String topicName)
static int
getAmplificationFactor(ReadOnlyStoreRepository readOnlyStoreRepository, java.lang.String storeName, int versionNumber)
static int
getLeaderSubPartition(int userPartition, int amplificationFactor)
static int
getSubPartition(PubSubTopicPartition topicPartition, int amplificationFactor)
static it.unimi.dsi.fastutil.ints.IntList
getSubPartitions(int userPartition, int amplificationFactor)
static it.unimi.dsi.fastutil.ints.IntList
getSubPartitions(java.util.Collection<java.lang.Integer> userPartitions, int amplificationFactor)
static int
getUserPartition(int subPartition, int amplificationFactor)
static VenicePartitioner
getUserPartitionLevelVenicePartitioner(PartitionerConfig config)
This util method returns a new venice partitioner that works for user-level partition, regardless of the amplification factor in the partitioner config.static it.unimi.dsi.fastutil.ints.IntList
getUserPartitions(java.util.Collection<java.lang.Integer> subPartitions, int amplificationFactor)
static VenicePartitioner
getVenicePartitioner(PartitionerConfig config)
static VenicePartitioner
getVenicePartitioner(VeniceProperties props)
static VenicePartitioner
getVenicePartitioner(java.lang.String partitionerClass, int amplificationFactor, VeniceProperties params)
static VenicePartitioner
getVenicePartitioner(java.lang.String partitionerClass, int amplificationFactor, VeniceProperties params, org.apache.avro.Schema keySchema)
-
-
-
Method Detail
-
calculatePartitionCount
public static int calculatePartitionCount(java.lang.String storeName, long storageQuota, int storePartitionCount, long partitionSize, int minPartitionCount, int maxPartitionCount, boolean isRoundUpEnabled, int roundUpSize)
Calculate partition count for new version. If store level partition count is not configured (0), calculate the number by storage quota and partition size. Otherwise, use the store level partition count.
-
getSubPartitions
public static it.unimi.dsi.fastutil.ints.IntList getSubPartitions(java.util.Collection<java.lang.Integer> userPartitions, int amplificationFactor)
-
getSubPartition
public static int getSubPartition(PubSubTopicPartition topicPartition, int amplificationFactor)
- Parameters:
topicPartition
- thePubSubTopicPartition
topic which the record is fromamplificationFactor
- of the store-version- Returns:
- leaderSubPartition if it's consuming from a Real-time topic, else return partition itself
-
getSubPartitions
public static it.unimi.dsi.fastutil.ints.IntList getSubPartitions(int userPartition, int amplificationFactor)
-
getUserPartitions
public static it.unimi.dsi.fastutil.ints.IntList getUserPartitions(java.util.Collection<java.lang.Integer> subPartitions, int amplificationFactor)
-
getUserPartition
public static int getUserPartition(int subPartition, int amplificationFactor)
-
getLeaderSubPartition
public static int getLeaderSubPartition(int userPartition, int amplificationFactor)
-
getVenicePartitioner
public static VenicePartitioner getVenicePartitioner(PartitionerConfig config)
-
getUserPartitionLevelVenicePartitioner
public static VenicePartitioner getUserPartitionLevelVenicePartitioner(PartitionerConfig config)
This util method returns a new venice partitioner that works for user-level partition, regardless of the amplification factor in the partitioner config.
-
getVenicePartitioner
public static VenicePartitioner getVenicePartitioner(java.lang.String partitionerClass, int amplificationFactor, VeniceProperties params)
-
getVenicePartitioner
public static VenicePartitioner getVenicePartitioner(java.lang.String partitionerClass, int amplificationFactor, VeniceProperties params, org.apache.avro.Schema keySchema)
-
getVenicePartitioner
public static VenicePartitioner getVenicePartitioner(VeniceProperties props)
-
getAmplificationFactor
public static int getAmplificationFactor(ReadOnlyStoreRepository readOnlyStoreRepository, java.lang.String topicName)
-
getAmplificationFactor
public static int getAmplificationFactor(ReadOnlyStoreRepository readOnlyStoreRepository, java.lang.String storeName, int versionNumber)
-
-