After a Table Message Define, this message can be used by the receiver to identify the stick table concerned by next update messages.
0 - - - - - - - 8 - - - - - - - 16 .....
Message class | Message Type | encoded data length | data
data is composed like this
0 .....................
encoded Sender Table Id
c) Update Ack Message
0 - - - - - - - 8 - - - - - - - 16 .....
Message class | Message Type | encoded data length | data
data is composed like this
0 ....................... - - - - - - - - 32
Encoded Remote Table Id | Update Id
Remote Table Id is the numeric identifier of the table on the remote side.
Update Id is the id of the last update locally commited.
If a re-connection occured, the sender should know he will have to restart the push of updates from this point.
III) Initial full resync process.
a) Resync from local old process
An old soft-stopped process will close all established sessions with remote peers and will try to connect to a new
local process to push all known ending with a Resync Finished Message or a Resync Partial Message (if it it does not consider itself as full updated).
A new process will wait for a an incoming connection from a local process during 5 seconds. It will learn the updates from this
process until he will receive a Resync Finished Message or a Resync Partial Message. If it receive a Resync Finished Message it will consider itself
as fully updated and stops to ask for resync. If it receive a Resync Partial Message it will wait once again for 5 seconds for an other incoming connection from a local process.
Same thing if the session was broken before receiving any "Resync Partial Message" or "Resync Finished Message".
If one of these 5 seconds timeout expire, the process will try to request resync from a remote connected peer (see b). The process will wait until 5seconds
if no available remote peers are found.
If the timeout expire, the process will consider itself ass fully updated
b) Resync from remote peers
The process will randomly choose a remote connected peer and ask for a full resync using a Resync Request Message. The process will wait until 5seconds
if no available remote peers are found.
The chosen remote peer will push its all known data ending with a Resync Finished Message or a Resync Partial Message (if it it does not consider itself as full updated).
If it receive a Resync Finished Message it will consider itself as fully updated and stops to ask for resync.
If it receive a Resync Partial Message, the current peer will be flagged to anymore be requested and any other connected peer will be randomly chosen for a resync request (5s).
If the session is broken before receiving any ot these messages any other connected peer will be randomly chosen for a resync request (5s).
If the timeout expire, the process will consider itself as fully updated