Apache Geode CHANGELOG

Configure Member Join Redundancy Recovery for a Partitioned Region

This section covers configuring whether and how redundancy is recovered in a partitioned region, after a member joins.

Use the partition attribute startup-recovery-delay to specify member join redundancy recovery.

value of startup-recovery-delay Effect following a member join
-1 No automatic recovery of redundancy after a new member comes online. With this value and the default recovery-delay setting, redundancy recovery is only achieved by a rebalance operation.
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.

Setting 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:

  • XML:

    // Wait 5 seconds after a new member joins before  
    // recovering redundancy
    <region name="PR1"> 
      <region-attributes refid="PARTITION"> 
        <partition-attributes startup-recovery-delay="5000"/> 
  • Java:

    PartitionAttributes pa = new PartitionAttributesFactory().setStartupRecoveryDelay(5000).create(); 
  • gfsh:

    gfsh>create region --name="PR1" --type=PARTITION --startup-recovery-delay=5000