...
Authors: Mario Ivanac
Status: Draft Draft | Discussion | Active | Dropped | Superseded
Superseded by: N/A
...
In linked PR you can find distributed test for reproduction of problem.
Anti-Goals
Solution
When replicating to other servers, current logic would first create connections toward all servers, and then replicate data over those connections. Creation of connections will last, until all connections are created, or destination server/s is/are declared dead.
New proposal is, when replicating data, first try to create connections to all destinations in one attempt. For all created connections we will replicate data. After this step is completed, we will try to create remaining connections to all unreachable destinations, until connections are established, or destination is declared dead. If connections are established we will replicate data.
Linked PR: https://github.com/apache/geode/pull/7381
Other solution explored that have been discarded is:
Add logic, for storing of last N (configurable value) key - sequence Id pairs, instead of only last sequence Id.
User will configure size of last stored "key - sequence Id" Map.
Default value is 0, feature disabled
Value greater than 0, feature activated (calculate according to formula = 3 x member-timeout / read-timeout)
PR with proposed solution: https://github.com/apache/geode/pull/7214
Changes and Additions to Public Interfaces
...