This section covers configuring whether and how redundancy is recovered in a partitioned region, after a member joins.
||Effect following a member join|
|-1||No automatic recovery of redundancy after a new member comes online. With this value and the default
|long >= 0||Number of milliseconds to wait after a member joins before recovering redundancy. The default is 0 (zero), which causes immediate redundancy recovery whenever a member that hosts the partitioned region joins.|
startup-recovery-delay to a value higher than the default of 0 allows multiple new members to join before redundancy recovery begins. With the multiple members present during recovery, the system will spread redundancy recovery among them. With no delay, if multiple members are started in close succession, the system may choose only the first member started for most or all of the redundancy recovery.
Note: Satisfying redundancy is not the same as adding capacity. If redundancy is satisfied, new members do not take buckets until the invocation of a rebalance operation.
The parallel recovery implementation recovers quickly. For this reason, it is even more important to configure
startup-recovery-delay to an appropriate value when restarting multiple members at the same time. Set
startup-recovery-delay to a value that ensures all members are up and available before redundancy recovery kicks in.
Set join redundancy recovery using one of the following:
// Wait 5 seconds after a new member joins before // recovering redundancy <region name="PR1"> <region-attributes refid="PARTITION"> <partition-attributes startup-recovery-delay="5000"/> </region-attributes> </region>
PartitionAttributes pa = new PartitionAttributesFactory().setStartupRecoveryDelay(5000).create();
gfsh>create region --name="PR1" --type=PARTITION --startup-recovery-delay=5000