Design of the TxLog sync protocol
GraphDB HA Cluster - Transaction Log Synchronization Protocol.docx
Known Issues
- Spurious failures (updates failing on one worker and succeeding on another) can cause the DC-s to go out of sync (workers within the same DC will still be in sync);
- Dead workers will be undetected until an update is executed.
Notes:
- Each synchronizing master must have the following properties set:
- Node ID (cluster config: node-id; JMX bean: NodeID) that is unique and consistent throughout the whole cluster, across DC-s;
- master URL (cluster config: master-url; JMX bean: masterURL) set to its Sesame protocol URL.
- All synchronized peers must be configured in a master node's config with the following properties:
- ID (cluster config: peer.<n>.id) equal to the peer's own unique Node ID;
- URL (cluster config: peer.<n>.url) equal to the peer's Sesame protocol URL.
The properties can be set directly in the cluster config, or given as arguments to the JMX bean or addSyncPeer(). A master node will not synchronize with unknown (i.e. unconfigured) peers.