Emeric Brun
ac556082e7
MINOR: peers: handle multiple resync requests using shards
We considered the resync process is finished if a full resync request is ended receiving the "resync-finish" message. But in the case of "shards" each node declared with a "shard" has only a partial view of the table. And the resync process is ended whereas the original peer tables content contains only a "shard" of the full content. This patch allow to retrieve the entire tables requesting a resync from all different "shards". To do so we don't commit the end of a resync process receiving a "resync-finish" if the node is part of "shard", we only flag this peer and all peers using the same shard as "notup2date" as if we received a "resync-partial" message, and we re-schedule a request of a resync as it is done receiving a "resync-partial" message. Doing this the peers flagged "notup2date" won't be addressed for the next resync request round and the next resync request will be send to a shard not yet requested. Receving a "resync-finish" message we also check if all peers using "shards" are flagged "notup2date". It meens that all peers have been addressed and we can considered the resync process is now finished. Note also that the "resync request" scheduler already handle a timeout and if we are not able to retrieve a full resync after a delay. The resync process is ended. This patch should be backported in all versions handling "shard" on peer lines.
The HAProxy documentation has been split into a number of different files for ease of use. Please refer to the following files depending on what you're looking for : - INSTALL for instructions on how to build and install HAProxy - BRANCHES to understand the project's life cycle and what version to use - LICENSE for the project's license - CONTRIBUTING for the process to follow to submit contributions The more detailed documentation is located into the doc/ directory : - doc/intro.txt for a quick introduction on HAProxy - doc/configuration.txt for the configuration's reference manual - doc/lua.txt for the Lua's reference manual - doc/SPOE.txt for how to use the SPOE engine - doc/network-namespaces.txt for how to use network namespaces under Linux - doc/management.txt for the management guide - doc/regression-testing.txt for how to use the regression testing suite - doc/peers.txt for the peers protocol reference - doc/coding-style.txt for how to adopt HAProxy's coding style - doc/internals for developer-specific documentation (not all up to date)
Description
Languages
Shell
100%