voldemort.utils
Class KeyDistributionGenerator

java.lang.Object
  extended by voldemort.utils.KeyDistributionGenerator

public class KeyDistributionGenerator
extends java.lang.Object


Field Summary
static int DEFAULT_NUM_KEYS
           
 
Constructor Summary
KeyDistributionGenerator()
           
 
Method Summary
static java.util.HashMap<java.lang.Integer,java.lang.Double> generateDistribution(Cluster cluster, StoreDefinition storeDef, java.util.List<ByteArray> keys)
          Generates distribution for a specific store definition
static java.util.List<ByteArray> generateKeys(int numKeys)
           
static java.util.HashMap<java.lang.Integer,java.lang.Double> generateOverallDistribution(Cluster cluster, java.util.List<StoreDefinition> storeDefs, java.util.List<ByteArray> keys)
           
static java.util.HashMap<java.lang.Integer,java.lang.Double> generateOverallDistributionWithUniqueStores(Cluster cluster, java.util.HashMap<StoreDefinition,java.lang.Integer> uniqueStoreDefsWithCount, java.util.List<ByteArray> keys)
           
static double getStdDeviation(java.util.HashMap<java.lang.Integer,java.lang.Double> distribution)
           
static java.util.HashMap<StoreDefinition,java.lang.Integer> getUniqueStoreDefinitionsWithCounts(java.util.List<StoreDefinition> storeDefs)
          Given a list of store definitions, find out and return a map of similar store definitions + count of them
static void main(java.lang.String[] args)
           
static void printDistribution(java.util.HashMap<java.lang.Integer,java.lang.Double> distribution)
           
static java.lang.String printOverallDistribution(Cluster cluster, java.util.List<StoreDefinition> storeDefs, java.util.List<ByteArray> keys)
          Given the cluster metadata and list of store definitions, presents a string of the distribution
static java.lang.String printStoreWiseDistribution(Cluster cluster, java.util.List<StoreDefinition> storeDefs, java.util.List<ByteArray> keys)
          Given the cluster metadata and list of store definitions, presents a string of the store wise distribution
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_NUM_KEYS

public static final int DEFAULT_NUM_KEYS
See Also:
Constant Field Values
Constructor Detail

KeyDistributionGenerator

public KeyDistributionGenerator()
Method Detail

main

public static void main(java.lang.String[] args)
                 throws java.io.IOException
Throws:
java.io.IOException

printStoreWiseDistribution

public static java.lang.String printStoreWiseDistribution(Cluster cluster,
                                                          java.util.List<StoreDefinition> storeDefs,
                                                          java.util.List<ByteArray> keys)
Given the cluster metadata and list of store definitions, presents a string of the store wise distribution

Parameters:
cluster - The cluster metadata
storeDefs - List of store definitions
keys - List of byte keys
Returns:
String representation

printOverallDistribution

public static java.lang.String printOverallDistribution(Cluster cluster,
                                                        java.util.List<StoreDefinition> storeDefs,
                                                        java.util.List<ByteArray> keys)
Given the cluster metadata and list of store definitions, presents a string of the distribution

Parameters:
cluster - The cluster metadata
storeDefs - List of store definitions
keys - List of keys
Returns:
String representation

generateOverallDistribution

public static java.util.HashMap<java.lang.Integer,java.lang.Double> generateOverallDistribution(Cluster cluster,
                                                                                                java.util.List<StoreDefinition> storeDefs,
                                                                                                java.util.List<ByteArray> keys)

generateOverallDistributionWithUniqueStores

public static java.util.HashMap<java.lang.Integer,java.lang.Double> generateOverallDistributionWithUniqueStores(Cluster cluster,
                                                                                                                java.util.HashMap<StoreDefinition,java.lang.Integer> uniqueStoreDefsWithCount,
                                                                                                                java.util.List<ByteArray> keys)

generateDistribution

public static java.util.HashMap<java.lang.Integer,java.lang.Double> generateDistribution(Cluster cluster,
                                                                                         StoreDefinition storeDef,
                                                                                         java.util.List<ByteArray> keys)
Generates distribution for a specific store definition

Parameters:
cluster - The cluster metadata
storeDef - The store definition metadata
keys - The list of keys as bytes
Returns:
Map of node id to their corresponding %age distribution

getUniqueStoreDefinitionsWithCounts

public static java.util.HashMap<StoreDefinition,java.lang.Integer> getUniqueStoreDefinitionsWithCounts(java.util.List<StoreDefinition> storeDefs)
Given a list of store definitions, find out and return a map of similar store definitions + count of them

Parameters:
storeDefs - All store definitions
Returns:
Map of a unique store definition + counts

generateKeys

public static java.util.List<ByteArray> generateKeys(int numKeys)

printDistribution

public static void printDistribution(java.util.HashMap<java.lang.Integer,java.lang.Double> distribution)

getStdDeviation

public static double getStdDeviation(java.util.HashMap<java.lang.Integer,java.lang.Double> distribution)


Jay Kreps, Roshan Sumbaly, Alex Feinberg, Bhupesh Bansal, Lei Gao, Chinmay Soman, Vinoth Chandar, Zhongjie Wu