|Managing Your Data in GemFire XD / Partitioning Tables|
You can use rebalancing to dynamically increase or decrease your GemFire XD cluster capacity, or to improve the balance of data across the distributed system.
For efficiency, when starting multiple members, trigger the rebalance a single time, after you have added all members.
gfxd server start -rebalance
This procedure initiates rebalancing of buckets across the entire GemFire XD cluster for all partitioned tables.
The rebalancing operation runs asynchronously.
As a general rule, rebalancing takes place on one partitioned table at a time. For tables that have colocated data, rebalancing works on the tables as a group, maintaining the data colocation between the tables.
You can continue to access partitioned tables while rebalancing is in progress. Queries, DML operations, and procedure executions continue while data is moving. If a procedure executes on a local data set, you may see a performance degradation if that data moves to another member during procedure execution. Future invocations are routed to the correct member.
For tables that are configured with expiration based on idle time, the rebalancing operation resets the last accessed time of the table entries on buckets that are moved.
You typically want to trigger rebalancing when overall capacity is increased or reduced through member startup, shut down or failure.
You may also need to rebalance when you use partitioned table redundancy for high availability, and you have configured your table to not automatically recover redundancy after a GemFire XD member fails (the default RECOVERYDELAY setting). In this case, GemFire XD only restores redundancy when you invoke a rebalance operation. See Making a Partitioned Table Highly Available.