Uses of Class
voldemort.cluster.Cluster

Packages that use Cluster
voldemort.client The user facing interface to Voldemort. 
voldemort.client.protocol.admin Classes that abstract admin based Voldemort requests. 
voldemort.client.rebalance All classes associated with the rebalance controller tool. 
voldemort.cluster Classes that model a voldemort cluster. 
voldemort.cluster.failuredetector Classes associated with client side failure detectors. 
voldemort.routing Routing strategies for mapping requests into the Voldemort cluster. 
voldemort.server The Voldemort server. 
voldemort.server.jmx Service which deals with the JMX registration 
voldemort.server.protocol.admin Server side implementation of admin based requests 
voldemort.server.rebalance Classes dealing with rebalancing on the server side. 
voldemort.server.storage The storage service which handles instantiating all the stores and their corresponding engines. 
voldemort.store.metadata Our in-memory metadata store on the server which is backed by the configuration files. 
voldemort.store.readonly A storage engine that provides very efficient read-only access to large sorted files of data. 
voldemort.store.readonly.swapper Classes used for fetching and swapping read-only stores. 
voldemort.store.routed A store implmentation that handles routing to nodes, and repairing obsolete values detected on those nodes. 
voldemort.store.slop A store implementation that falls back on storing values in additional nodes not in the preference list when nodes are unavailable. 
voldemort.store.slop.strategy Bunch of different ways in which we would store failed requests for the Hinted handoff feature. 
voldemort.store.stats Store wrappers which deal with statistics 
voldemort.tools Tools used for administrating a cluster. 
voldemort.utils Basic helper functions. 
voldemort.xml Classes related to parsing our metadata ( cluster + store definition ) 
 

Uses of Cluster in voldemort.client
 

Methods in voldemort.client that return Cluster
 Cluster AbstractStoreClientFactory.getCluster()
           
 

Methods in voldemort.client with parameters of type Cluster
protected abstract  FailureDetector AbstractStoreClientFactory.initFailureDetector(ClientConfig config, Cluster cluster)
           
protected  FailureDetector SocketStoreClientFactory.initFailureDetector(ClientConfig config, Cluster cluster)
           
protected  FailureDetector HttpStoreClientFactory.initFailureDetector(ClientConfig config, Cluster cluster)
           
 

Uses of Cluster in voldemort.client.protocol.admin
 

Methods in voldemort.client.protocol.admin that return Cluster
 Cluster AdminClient.getAdminClientCluster()
          Get the cluster info AdminClient is using.
 

Methods in voldemort.client.protocol.admin that return types with arguments of type Cluster
 Versioned<Cluster> AdminClient.RebalancingOperations.getLatestCluster(java.util.List<java.lang.Integer> requiredNodes)
          Get the latest cluster from all available nodes in the cluster
Throws exception if:
A) Any node in the required nodes list fails to respond.
B) Cluster is in inconsistent state with concurrent versions for cluster metadata on any two nodes.
 Versioned<Cluster> AdminClient.MetadataManagementOperations.getRemoteCluster(int nodeId)
          Get the cluster information from a remote node.
 

Methods in voldemort.client.protocol.admin with parameters of type Cluster
 void AdminClient.RebalancingOperations.checkEachServerInNormalState(Cluster cluster)
          Check the execution state of the server by checking the state of MetadataStore.VoldemortState
This function checks if the nodes are all in normal state ( MetadataStore.VoldemortState.NORMAL_SERVER).
static AdminClient AdminClient.createTempAdminClient(VoldemortConfig voldemortConfig, Cluster cluster, int numConnPerNode)
          Helper method to construct an AdminClient with "good" default settings based upon a VoldemortConfig.
 long AdminClient.StoreMaintenanceOperations.deletePartitions(int nodeId, java.lang.String storeName, java.util.List<java.lang.Integer> partitionIds, Cluster initialCluster, VoldemortFilter filter)
          Delete all entries belonging to all the partitions passed as a map of replica_type to partition list.
 java.util.Iterator<Pair<ByteArray,Versioned<byte[]>>> AdminClient.BulkStreamingFetchOperations.fetchEntries(int nodeId, java.lang.String storeName, java.util.List<java.lang.Integer> partitionIds, VoldemortFilter filter, boolean fetchMasterEntries, Cluster initialCluster, long recordsPerPartition)
          Fetch key/value tuples belonging to this list of partition ids
 java.util.Iterator<ByteArray> AdminClient.BulkStreamingFetchOperations.fetchKeys(int nodeId, java.lang.String storeName, java.util.List<java.lang.Integer> partitionIds, VoldemortFilter filter, boolean fetchMasterEntries, Cluster initialCluster, long recordsPerPartition)
          Fetch all keys belonging to the list of partition ids.
 java.util.List<StoreDefinition> AdminClient.RebalancingOperations.getCurrentStoreDefinitions(Cluster cluster)
          Given the cluster metadata, retrieves the list of store definitions.
 java.util.Map<java.lang.Integer,java.util.List<java.lang.Integer>> AdminClient.ReplicationOperations.getReplicationMapping(int restoringNode, Cluster cluster, StoreDefinition storeDef)
          For a particular node, finds out all the [replica, partition] tuples it needs to steal in order to be brought back to normal state
 java.util.Map<java.lang.Integer,java.util.List<java.lang.Integer>> AdminClient.ReplicationOperations.getReplicationMapping(int restoringNode, Cluster cluster, StoreDefinition storeDef, int zoneId)
          For a particular node, finds out all the [node, partition] it needs to steal in order to be brought back to normal state
 int AdminClient.StoreMaintenanceOperations.migratePartitions(int donorNodeId, int stealerNodeId, java.lang.String storeName, java.util.List<java.lang.Integer> partitionIds, VoldemortFilter filter, Cluster initialCluster)
          Migrate keys/values belonging to a list of partition ids from donor node to stealer node.
 void AdminClient.RebalancingOperations.rebalanceStateChange(Cluster existingCluster, Cluster transitionCluster, java.util.List<StoreDefinition> existingStoreDefs, java.util.List<StoreDefinition> targetStoreDefs, java.util.List<RebalanceTaskInfo> rebalanceTaskPlanList, boolean swapRO, boolean changeClusterMetadata, boolean changeRebalanceState, boolean rollback, boolean failEarly)
          Used in rebalancing to indicate change in states.
 void AdminClient.setAdminClientCluster(Cluster cluster)
          Set cluster info for AdminClient to use.
 void AdminClient.MetadataManagementOperations.updateRemoteCluster(int nodeId, Cluster cluster, Version clock)
          Update the cluster information MetadataStore.CLUSTER_KEY on a remote node.
 void AdminClient.RebalancingOperations.validateReadOnlyStores(Cluster cluster, java.util.List<StoreDefinition> storeDefs)
          Given a list of store definitions, cluster and admin client returns a boolean indicating if all RO stores are in the correct format.
 

Constructors in voldemort.client.protocol.admin with parameters of type Cluster
AdminClient(Cluster cluster, AdminClientConfig adminClientConfig, ClientConfig clientConfig)
          Create an instance of AdminClient given a Cluster object.
 

Uses of Cluster in voldemort.client.rebalance
 

Methods in voldemort.client.rebalance that return Cluster
 Cluster RebalanceController.getCurrentCluster()
           
 Cluster RebalanceBatchPlan.getCurrentCluster()
           
 Cluster RebalancePlan.getCurrentCluster()
           
 Cluster RebalanceBatchPlan.getFinalCluster()
           
 Cluster RebalancePlan.getFinalCluster()
           
 Cluster RebalanceTaskInfo.getInitialCluster()
           
 

Methods in voldemort.client.rebalance with parameters of type Cluster
 RebalancePlan RebalanceController.getPlan(Cluster finalCluster, int batchSize)
          Construct a plan for the specified final cluster & batchSize given the current cluster/stores & configuration of the RebalanceController.
 RebalancePlan RebalanceController.getPlan(Cluster finalCluster, java.util.List<StoreDefinition> finalStoreDefs, int batchSize)
          Construct a plan for the specified final cluster/stores & batchSize given the current cluster/stores & configuration of the RebalanceController.
 

Constructors in voldemort.client.rebalance with parameters of type Cluster
RebalanceBatchPlan(Cluster currentCluster, Cluster finalCluster, java.util.List<StoreDefinition> commonStoreDefs)
          Develops a batch plan to go from current cluster to final cluster for given stores.
RebalanceBatchPlan(Cluster currentCluster, java.util.List<StoreDefinition> currentStoreDefs, Cluster finalCluster, java.util.List<StoreDefinition> finalStoreDefs)
          Develops a batch plan to go from current cluster/stores to final cluster/stores.
RebalancePlan(Cluster currentCluster, java.util.List<StoreDefinition> currentStores, Cluster finalCluster, int batchSize, java.lang.String outputDir)
           
RebalancePlan(Cluster currentCluster, java.util.List<StoreDefinition> currentStoreDefs, Cluster finalCluster, java.util.List<StoreDefinition> finalStoreDefs, int batchSize, java.lang.String outputDir)
          Constructs a plan for the specified change from currentCluster/StoreDefs to finalCluster/StoreDefs.
RebalanceTaskInfo(int stealerNodeId, int donorId, java.util.HashMap<java.lang.String,java.util.List<java.lang.Integer>> storeToPartitionIds, Cluster initialCluster)
           
 

Uses of Cluster in voldemort.cluster
 

Methods in voldemort.cluster that return Cluster
static Cluster Cluster.cloneCluster(Cluster cluster)
          Clones the cluster by constructing a new one with same name, partition layout, and nodes.
 

Methods in voldemort.cluster with parameters of type Cluster
static Cluster Cluster.cloneCluster(Cluster cluster)
          Clones the cluster by constructing a new one with same name, partition layout, and nodes.
 

Uses of Cluster in voldemort.cluster.failuredetector
 

Methods in voldemort.cluster.failuredetector that return Cluster
 Cluster FailureDetectorConfig.getCluster()
          Returns a reference to the cluster object
 

Methods in voldemort.cluster.failuredetector with parameters of type Cluster
 FailureDetectorConfig FailureDetectorConfig.setCluster(Cluster cluster)
          Assigns a cluster which determines the source of truth for the topology
 

Uses of Cluster in voldemort.routing
 

Methods in voldemort.routing that return Cluster
 Cluster BaseStoreRoutingPlan.getCluster()
           
 Cluster StoreRoutingPlan.getCluster()
           
 

Methods in voldemort.routing with parameters of type Cluster
static boolean StoreRoutingPlan.checkKeyBelongsToNode(byte[] key, int nodeId, Cluster cluster, StoreDefinition storeDef)
           
static java.util.List<java.lang.Integer> StoreRoutingPlan.checkKeyBelongsToPartition(byte[] key, java.util.Set<Pair<java.lang.Integer,java.util.HashMap<java.lang.Integer,java.util.List<java.lang.Integer>>>> stealerNodeToMappingTuples, Cluster cluster, StoreDefinition storeDef)
          Given a key and a list of steal infos give back a list of stealer node ids which will steal this.
static boolean StoreRoutingPlan.checkKeyBelongsToPartition(int nodeId, byte[] key, java.util.HashMap<java.lang.Integer,java.util.List<java.lang.Integer>> replicaToPartitionList, Cluster cluster, StoreDefinition storeDef)
          Check that the key belongs to one of the partitions in the map of replica type to partitions
static boolean StoreRoutingPlan.checkPartitionBelongsToNode(int partition, int nodeId, Cluster cluster, StoreDefinition storeDef)
          Checks if a given partition is stored in the node.
 RoutingStrategy RoutingStrategyFactory.updateRoutingStrategy(StoreDefinition storeDef, Cluster cluster)
           
 

Constructors in voldemort.routing with parameters of type Cluster
BaseStoreRoutingPlan(Cluster cluster, StoreDefinition storeDefinition)
           
ConsistentRoutingStrategy(Cluster cluster, int numReplicas)
           
ConsistentRoutingStrategy(HashFunction hash, Cluster cluster, int numReplicas)
           
StoreRoutingPlan(Cluster cluster, StoreDefinition storeDefinition)
           
ZoneRoutingStrategy(Cluster cluster, java.util.HashMap<java.lang.Integer,java.lang.Integer> zoneReplicationFactor, int numReplicas)
           
ZoneRoutingStrategy(HashFunction hash, Cluster cluster, java.util.HashMap<java.lang.Integer,java.lang.Integer> zoneReplicationFactor, int numReplicas)
           
 

Uses of Cluster in voldemort.server
 

Constructors in voldemort.server with parameters of type Cluster
VoldemortServer(VoldemortConfig config, Cluster cluster)
          Constructor is used exclusively by tests.
 

Uses of Cluster in voldemort.server.jmx
 

Constructors in voldemort.server.jmx with parameters of type Cluster
JmxService(VoldemortServer server, Cluster cluster, StoreRepository storeRepository, java.util.Collection<VoldemortService> services)
           
 

Uses of Cluster in voldemort.server.protocol.admin
 

Fields in voldemort.server.protocol.admin declared as Cluster
protected  Cluster FetchStreamRequestHandler.initialCluster
           
 

Uses of Cluster in voldemort.server.rebalance
 

Methods in voldemort.server.rebalance with parameters of type Cluster
 void Rebalancer.rebalanceStateChange(Cluster cluster, java.util.List<StoreDefinition> storeDefs, java.util.List<RebalanceTaskInfo> rebalanceTaskInfo, boolean swapRO, boolean changeClusterAndStoresMetadata, boolean changeRebalanceState, boolean rollback)
          Support four different stages
For normal operation:
 

Uses of Cluster in voldemort.server.storage
 

Methods in voldemort.server.storage with parameters of type Cluster
 void StorageService.registerNodeStores(StoreDefinition def, Cluster cluster, int localNode)
          For server side routing create NodeStore (socketstore) and pass it on to a RebootstrappingStore.
 

Uses of Cluster in voldemort.store.metadata
 

Methods in voldemort.store.metadata that return Cluster
 Cluster MetadataStore.getCluster()
           
 Cluster MetadataStore.getRebalancingSourceCluster()
           
 

Uses of Cluster in voldemort.store.readonly
 

Constructors in voldemort.store.readonly with parameters of type Cluster
JsonStoreBuilder(JsonReader reader, Cluster cluster, StoreDefinition storeDefinition, RoutingStrategy routingStrategy, java.io.File outputDir, java.io.File tempDir, int internalSortSize, int numThreads, int numChunks, int ioBufferSize, boolean gzipIntermediate)
           
 

Uses of Cluster in voldemort.store.readonly.swapper
 

Fields in voldemort.store.readonly.swapper declared as Cluster
protected  Cluster StoreSwapper.cluster
           
 

Constructors in voldemort.store.readonly.swapper with parameters of type Cluster
AdminStoreSwapper(Cluster cluster, java.util.concurrent.ExecutorService executor, AdminClient adminClient, long timeoutMs)
           
AdminStoreSwapper(Cluster cluster, java.util.concurrent.ExecutorService executor, AdminClient adminClient, long timeoutMs, boolean deleteFailedFetch, boolean rollbackFailedSwap)
           
HttpStoreSwapper(Cluster cluster, java.util.concurrent.ExecutorService executor, org.apache.http.client.HttpClient httpClient, java.lang.String readOnlyMgmtPath)
           
HttpStoreSwapper(Cluster cluster, java.util.concurrent.ExecutorService executor, org.apache.http.client.HttpClient httpClient, java.lang.String readOnlyMgmtPath, boolean deleteFailedFetch, boolean rollbackFailedSwap)
           
StoreSwapper(Cluster cluster, java.util.concurrent.ExecutorService executor)
           
 

Uses of Cluster in voldemort.store.routed
 

Methods in voldemort.store.routed with parameters of type Cluster
 RoutedStore RoutedStoreFactory.create(Cluster cluster, StoreDefinition storeDefinition, java.util.Map<java.lang.Integer,Store<ByteArray,byte[],byte[]>> nodeStores, FailureDetector failureDetector, RoutedStoreConfig routedStoreConfig)
           
 RoutedStore RoutedStoreFactory.create(Cluster cluster, StoreDefinition storeDefinition, java.util.Map<java.lang.Integer,Store<ByteArray,byte[],byte[]>> nodeStores, java.util.Map<java.lang.Integer,NonblockingStore> nonblockingStores, java.util.Map<java.lang.Integer,Store<ByteArray,Slop,byte[]>> slopStores, java.util.Map<java.lang.Integer,NonblockingStore> nonblockingSlopStores, FailureDetector failureDetector, RoutedStoreConfig routedStoreConfig)
           
 

Constructors in voldemort.store.routed with parameters of type Cluster
PipelineRoutedStore(java.util.Map<java.lang.Integer,Store<ByteArray,byte[],byte[]>> innerStores, java.util.Map<java.lang.Integer,NonblockingStore> nonblockingStores, java.util.Map<java.lang.Integer,Store<ByteArray,Slop,byte[]>> slopStores, java.util.Map<java.lang.Integer,NonblockingStore> nonblockingSlopStores, Cluster cluster, StoreDefinition storeDef, FailureDetector failureDetector, boolean repairReads, TimeoutConfig timeoutConfig, int clientZoneId, boolean isJmxEnabled, int jmxId, ZoneAffinity zoneAffinity)
          Create a PipelineRoutedStore
RoutedStore(java.lang.String name, java.util.Map<java.lang.Integer,Store<ByteArray,byte[],byte[]>> innerStores, Cluster cluster, StoreDefinition storeDef, boolean repairReads, TimeoutConfig timeoutConfig, FailureDetector failureDetector, Time time)
           
ThreadPoolRoutedStore(java.lang.String name, java.util.Map<java.lang.Integer,Store<ByteArray,byte[],byte[]>> innerStores, Cluster cluster, StoreDefinition storeDef, boolean repairReads, java.util.concurrent.ExecutorService threadPool, TimeoutConfig timeoutConfig, FailureDetector failureDetector, Time time)
          Deprecated. Create a RoutedStoreClient
ThreadPoolRoutedStore(java.lang.String name, java.util.Map<java.lang.Integer,Store<ByteArray,byte[],byte[]>> innerStores, Cluster cluster, StoreDefinition storeDef, int numberOfThreads, boolean repairReads, TimeoutConfig timeoutConfig, FailureDetector failureDetector)
          Deprecated. Create a RoutedStoreClient
 

Uses of Cluster in voldemort.store.slop
 

Constructors in voldemort.store.slop with parameters of type Cluster
SlopStorageEngine(StorageEngine<ByteArray,byte[],byte[]> slopEngine, Cluster cluster)
           
 

Uses of Cluster in voldemort.store.slop.strategy
 

Methods in voldemort.store.slop.strategy with parameters of type Cluster
 HintedHandoffStrategy HintedHandoffStrategyFactory.updateHintedHandoffStrategy(StoreDefinition storeDef, Cluster cluster)
           
 

Constructors in voldemort.store.slop.strategy with parameters of type Cluster
ConsistentHandoffStrategy(Cluster cluster, int prefListSize, boolean enableZoneRouting, int clientZoneId)
          Creates a consistent handoff strategy instance
HandoffToAnyStrategy(Cluster cluster, boolean enableZoneRouting, int clientZoneId)
          Creates a to-any handoff strategy instance
ProximityHandoffStrategy(Cluster cluster, int clientZoneId)
          Constructor which makes zone based mapping
 

Uses of Cluster in voldemort.store.stats
 

Constructors in voldemort.store.stats with parameters of type Cluster
ClusterWideCounter(Cluster cluster)
           
SlopStats(Cluster cluster)
           
 

Uses of Cluster in voldemort.tools
 

Methods in voldemort.tools that return Cluster
static Cluster Repartitioner.balanceContiguousPartitionsPerZone(Cluster nextCandidateCluster, int maxContiguousPartitionsPerZone)
          Ensures that no more than maxContiguousPartitionsPerZone partitions are contiguous within a single zone.
static Cluster Repartitioner.balancePrimaryPartitions(Cluster nextCandidateCluster, boolean balanceZones)
          This method balances primary partitions among nodes within a zone, and optionally primary partitions among zones.
static Cluster Repartitioner.greedyShufflePartitions(Cluster nextCandidateCluster, int greedyAttempts, int greedySwapMaxPartitionsPerNode, int greedySwapMaxPartitionsPerZone, java.util.List<java.lang.Integer> greedySwapZoneIds, java.util.List<StoreDefinition> storeDefs)
          Within a single zone, tries swapping some minimum number of random partitions per node with some minimum number of random partitions from other nodes within the zone.
static Cluster Repartitioner.randomShufflePartitions(Cluster nextCandidateCluster, int randomSwapAttempts, int randomSwapSuccesses, java.util.List<java.lang.Integer> randomSwapZoneIds, java.util.List<StoreDefinition> storeDefs)
          Randomly shuffle partitions between nodes within every zone.
static Cluster Repartitioner.repartition(Cluster currentCluster, java.util.List<StoreDefinition> currentStoreDefs, Cluster interimCluster, java.util.List<StoreDefinition> finalStoreDefs, java.lang.String outputDir, int attempts, boolean disableNodeBalancing, boolean disableZoneBalancing, boolean enableRandomSwaps, int randomSwapAttempts, int randomSwapSuccesses, java.util.List<java.lang.Integer> randomSwapZoneIds, boolean enableGreedySwaps, int greedySwapAttempts, int greedySwapMaxPartitionsPerNode, int greedySwapMaxPartitionsPerZone, java.util.List<java.lang.Integer> greedySwapZoneIds, int maxContiguousPartitionsPerZone)
          Runs a number of distinct algorithms over the specified clusters/store defs to better balance partition IDs over nodes such that all nodes have similar iops and capacity usage.
static Cluster Repartitioner.repeatedlyBalanceContiguousPartitionsPerZone(Cluster nextCandidateCluster, int maxContiguousPartitionsPerZone)
          Loops over cluster and repeatedly tries to break up contiguous runs of partitions.
static Cluster Repartitioner.swapGreedyRandomPartitions(Cluster nextCandidateCluster, java.util.List<java.lang.Integer> nodeIds, int greedySwapMaxPartitionsPerNode, int greedySwapMaxPartitionsPerZone, java.util.List<StoreDefinition> storeDefs)
          For each node in specified zones, tries swapping some minimum number of random partitions per node with some minimum number of random partitions from other specified nodes.
static Cluster Repartitioner.swapPartitions(Cluster nextCandidateCluster, int nodeIdA, int partitionIdA, int nodeIdB, int partitionIdB)
          Swaps two specified partitions.
static Cluster Repartitioner.swapRandomPartitionsAmongNodes(Cluster nextCandidateCluster, java.util.List<java.lang.Integer> nodeIds)
          Shuffles partitions among all nodes specified.
static Cluster Repartitioner.swapRandomPartitionsWithinZone(Cluster nextCandidateCluster, int zoneId)
          Within a single zone, swaps one random partition on one random node with another random partition on different random node.
 

Methods in voldemort.tools with parameters of type Cluster
static Cluster Repartitioner.balanceContiguousPartitionsPerZone(Cluster nextCandidateCluster, int maxContiguousPartitionsPerZone)
          Ensures that no more than maxContiguousPartitionsPerZone partitions are contiguous within a single zone.
static Cluster Repartitioner.balancePrimaryPartitions(Cluster nextCandidateCluster, boolean balanceZones)
          This method balances primary partitions among nodes within a zone, and optionally primary partitions among zones.
static java.util.HashMap<java.lang.Integer,java.util.List<java.lang.Integer>> Repartitioner.getBalancedNumberOfPrimaryPartitionsPerNode(Cluster nextCandidateCluster, java.util.Map<java.lang.Integer,java.lang.Integer> targetPartitionsPerZone)
          Determines how many primary partitions each node within each zone should have.
static Pair<java.util.HashMap<Node,java.lang.Integer>,java.util.HashMap<Node,java.lang.Integer>> Repartitioner.getDonorsAndStealersForBalance(Cluster nextCandidateCluster, java.util.Map<java.lang.Integer,java.util.List<java.lang.Integer>> numPartitionsPerNodePerZone)
          Assign target number of partitions per node to specific node IDs.
static Cluster Repartitioner.greedyShufflePartitions(Cluster nextCandidateCluster, int greedyAttempts, int greedySwapMaxPartitionsPerNode, int greedySwapMaxPartitionsPerZone, java.util.List<java.lang.Integer> greedySwapZoneIds, java.util.List<StoreDefinition> storeDefs)
          Within a single zone, tries swapping some minimum number of random partitions per node with some minimum number of random partitions from other nodes within the zone.
static Cluster Repartitioner.randomShufflePartitions(Cluster nextCandidateCluster, int randomSwapAttempts, int randomSwapSuccesses, java.util.List<java.lang.Integer> randomSwapZoneIds, java.util.List<StoreDefinition> storeDefs)
          Randomly shuffle partitions between nodes within every zone.
static Cluster Repartitioner.repartition(Cluster currentCluster, java.util.List<StoreDefinition> currentStoreDefs, Cluster interimCluster, java.util.List<StoreDefinition> finalStoreDefs, java.lang.String outputDir, int attempts, boolean disableNodeBalancing, boolean disableZoneBalancing, boolean enableRandomSwaps, int randomSwapAttempts, int randomSwapSuccesses, java.util.List<java.lang.Integer> randomSwapZoneIds, boolean enableGreedySwaps, int greedySwapAttempts, int greedySwapMaxPartitionsPerNode, int greedySwapMaxPartitionsPerZone, java.util.List<java.lang.Integer> greedySwapZoneIds, int maxContiguousPartitionsPerZone)
          Runs a number of distinct algorithms over the specified clusters/store defs to better balance partition IDs over nodes such that all nodes have similar iops and capacity usage.
static Cluster Repartitioner.repeatedlyBalanceContiguousPartitionsPerZone(Cluster nextCandidateCluster, int maxContiguousPartitionsPerZone)
          Loops over cluster and repeatedly tries to break up contiguous runs of partitions.
static Cluster Repartitioner.swapGreedyRandomPartitions(Cluster nextCandidateCluster, java.util.List<java.lang.Integer> nodeIds, int greedySwapMaxPartitionsPerNode, int greedySwapMaxPartitionsPerZone, java.util.List<StoreDefinition> storeDefs)
          For each node in specified zones, tries swapping some minimum number of random partitions per node with some minimum number of random partitions from other specified nodes.
static Cluster Repartitioner.swapPartitions(Cluster nextCandidateCluster, int nodeIdA, int partitionIdA, int nodeIdB, int partitionIdB)
          Swaps two specified partitions.
static Cluster Repartitioner.swapRandomPartitionsAmongNodes(Cluster nextCandidateCluster, java.util.List<java.lang.Integer> nodeIds)
          Shuffles partitions among all nodes specified.
static Cluster Repartitioner.swapRandomPartitionsWithinZone(Cluster nextCandidateCluster, int zoneId)
          Within a single zone, swaps one random partition on one random node with another random partition on different random node.
 

Constructors in voldemort.tools with parameters of type Cluster
PartitionBalance(Cluster cluster, java.util.List<StoreDefinition> storeDefs)
           
 

Uses of Cluster in voldemort.utils
 

Methods in voldemort.utils that return Cluster
static Cluster UpdateClusterUtils.createUpdatedCluster(Cluster currentCluster, int stealerNodeId, java.util.List<java.lang.Integer> donatedPartitions)
          Updates the existing cluster such that we remove partitions mentioned from the stealer node and add them to the donor node
static Cluster RebalanceUtils.getInterimCluster(Cluster currentCluster, Cluster finalCluster)
          Given the current cluster and final cluster, generates an interim cluster with empty new nodes (and zones).
static Cluster UpdateClusterUtils.updateCluster(Cluster currentCluster, java.util.List<Node> updatedNodeList)
          Concatenates the list of current nodes in the given cluster with the new nodes provided and returns an updated cluster metadata.
 

Methods in voldemort.utils with parameters of type Cluster
static java.lang.String PartitionBalanceUtils.analyzeInvalidMetadataRate(Cluster currentCluster, java.util.List<StoreDefinition> currentStoreDefs, Cluster finalCluster, java.util.List<StoreDefinition> finalStoreDefs)
          Compares current cluster with final cluster.
static java.lang.String PartitionBalanceUtils.compressedListOfPartitionsInZone(Cluster cluster, int zoneId)
          Compress contiguous partitions into format "e-i" instead of "e, f, g, h, i".
static Cluster UpdateClusterUtils.createUpdatedCluster(Cluster currentCluster, int stealerNodeId, java.util.List<java.lang.Integer> donatedPartitions)
          Updates the existing cluster such that we remove partitions mentioned from the stealer node and add them to the donor node
static void RebalanceUtils.dumpClusters(Cluster currentCluster, Cluster finalCluster, java.lang.String outputDirName)
          Given the current and final cluster dumps it into the output directory
static void RebalanceUtils.dumpClusters(Cluster currentCluster, Cluster finalCluster, java.lang.String outputDirName, java.lang.String filePrefix)
          Given the initial and final cluster dumps it into the output directory
static void RebalanceUtils.dumpClusterToFile(java.lang.String outputDirName, java.lang.String fileName, Cluster cluster)
          Prints a cluster xml to a file.
static java.lang.String PartitionBalanceUtils.getHotPartitionsDueToContiguity(Cluster cluster, int hotContiguityCutoff)
          Returns a pretty printed string of nodes that host specific "hot" partitions, where hot is defined as following a contiguous run of partitions of some length in another zone.
static Cluster RebalanceUtils.getInterimCluster(Cluster currentCluster, Cluster finalCluster)
          Given the current cluster and final cluster, generates an interim cluster with empty new nodes (and zones).
static java.util.Map<java.lang.Integer,java.lang.Integer> PartitionBalanceUtils.getMapOfContiguousPartitionRunLengths(Cluster cluster, int zoneId)
          Determines a histogram of contiguous runs of partitions within a zone.
static java.util.Map<java.lang.Integer,java.lang.Integer> PartitionBalanceUtils.getMapOfContiguousPartitions(Cluster cluster, int zoneId)
          Determines run length for each 'initial' partition ID.
static java.lang.String PartitionBalanceUtils.getPrettyMapOfContiguousPartitionRunLengths(Cluster cluster, int zoneId)
          Pretty prints the output of getMapOfContiguousPartitionRunLengths
static java.util.List<java.lang.Integer> RebalanceUtils.getStolenPrimaryPartitions(Cluster currentCluster, Cluster finalCluster, int stealNodeId)
          For a particular stealer node find all the "primary" tuples it will steal.
static Cluster UpdateClusterUtils.updateCluster(Cluster currentCluster, java.util.List<Node> updatedNodeList)
          Concatenates the list of current nodes in the given cluster with the new nodes provided and returns an updated cluster metadata.
static void RebalanceUtils.validateClusterNodeCounts(Cluster lhs, Cluster rhs)
          Confirms that both clusters have the same number of nodes by comparing set of node Ids between clusters.
static void RebalanceUtils.validateClusterNodeState(Cluster subsetCluster, Cluster supersetCluster)
          Confirms that any nodes from supersetCluster that are in subsetCluster have the same state (i.e., node id, host name, and ports).
static void RebalanceUtils.validateClusterPartitionCounts(Cluster lhs, Cluster rhs)
          Confirms that both clusters have the same number of total partitions.
static void RebalanceUtils.validateClusterPartitionState(Cluster subsetCluster, Cluster supersetCluster)
          Confirm that all nodes shared between clusters host exact same partition IDs and that nodes only in the super set cluster have no partition IDs.
static void RebalanceUtils.validateClusterStores(Cluster cluster, java.util.List<StoreDefinition> storeDefs)
          Verify store definitions are congruent with cluster definition.
static void RebalanceUtils.validateClusterZonesSame(Cluster lhs, Cluster rhs)
          Confirms that both clusters have the same set of zones defined.
static void RebalanceUtils.validateCurrentFinalCluster(Cluster currentCluster, Cluster finalCluster)
          A final cluster ought to be a super set of current cluster.
static void RebalanceUtils.validateCurrentInterimCluster(Cluster currentCluster, Cluster interimCluster)
          An interim cluster ought to be a super set of current cluster.
static void RebalanceUtils.validateInterimFinalCluster(Cluster interimCluster, Cluster finalCluster)
          Interim and final clusters ought to have same partition counts, same zones, and same node state.
static java.lang.String PartitionBalanceUtils.verboseClusterDump(Cluster cluster)
          Prints the details of cluster xml in various formats.
 

Uses of Cluster in voldemort.xml
 

Methods in voldemort.xml that return Cluster
 Cluster ClusterMapper.readCluster(java.io.File f)
           
 Cluster ClusterMapper.readCluster(java.io.Reader input)
           
 Cluster ClusterMapper.readCluster(java.io.Reader input, boolean verifySchema)
           
 

Methods in voldemort.xml with parameters of type Cluster
 java.lang.String ClusterMapper.writeCluster(Cluster cluster)
           
 



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