|
||||||||||
PREV NEXT | FRAMES NO FRAMES |
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.scheduler.slop | The background jobs associated with the slop store. |
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)
Deprecated. |
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.scheduler.slop |
---|
Methods in voldemort.server.scheduler.slop with parameters of type Cluster | |
---|---|
protected boolean |
SlopPusherJob.isSlopDead(Cluster cluster,
java.util.Set<java.lang.String> storeNames,
Slop slop)
A slop is dead if the destination node or the store does not exist anymore on the cluster. |
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,
java.lang.String identifierString,
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)
|
|
RoutedStoreConfig(VoldemortConfig voldemortConfig,
Cluster cluster)
|
|
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.dropZone(Cluster intermediateCluster,
int dropZoneId)
Given a interim cluster with a previously vacated zone, constructs a new cluster object with the drop zone completely removed |
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. |
static Cluster |
RebalanceUtils.vacateZone(Cluster currentCluster,
int dropZoneId)
Given the current cluster and a zone id that needs to be dropped, this method will remove all partitions from the zone that is being dropped and move it to the existing zones. |
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 Cluster |
RebalanceUtils.dropZone(Cluster intermediateCluster,
int dropZoneId)
Given a interim cluster with a previously vacated zone, constructs a new cluster object with the drop zone completely removed |
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 partitions 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 Cluster |
RebalanceUtils.vacateZone(Cluster currentCluster,
int dropZoneId)
Given the current cluster and a zone id that needs to be dropped, this method will remove all partitions from the zone that is being dropped and move it to the existing zones. |
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)
|
|
||||||||||
PREV NEXT | FRAMES NO FRAMES |