Initial state transfer configuration

In  clustering

Overview

By default, a clustered Infinispan cache waits for the transfer of its initial state before it is available. However, several customers have complained that that their initial state transfer would timeout, and want the ability to disable this blocking behavior. When the cache is sufficiently large, a synchronous state transfer isn’t always feasible within the configured timeout, especially for a replicated-cache.

This RFE proposes to enable non-blocking state transfer when the configured timeout is zero (or negative).

Issue Metadata

Dev Contacts:

QE Contacts:

Affected Projects or Components:

WildFly, Clustering

Other Interested Projects:

Requirements

Hard Requirements

Disable awaitInitialTransfer if state-transfer is enabled and timeout ⇐ 0.

When transforming the model for legacy slaves, reject the resource if the timeout is ⇐ 0, as these value, although not validated by the model, will result in unusable behavior.

Nice-to-Have Requirements

Non-Requirements

Test Plan

Run standard set of failover smartfrog tests with state-transfer configured with a 0 timeout. Validate that async, non-blocking state transfer results does not introduce sampling errors. Generate visual feedback of performance impact of the additional remote gets following failover.