Le 09/02/15 05:15, Howard Chu a écrit :
Emmanuel Lécharny wrote:
Le 08/02/15 13:52, Howard Chu a écrit :
Been thinking this would be worth trying for a while now. Set a config option for syncprov to send Persist messages to a multicast group instead of the original TCP session. All the consumers would also join the group and listen for updates. This would also exercise the cldap:// support in libldap.
Implementation details: since datagrams are unreliable, we need to include sequence numbers on each message, which the consumer can check to make sure it hasn't missed an update. Moreover, it should be able to send a request to the provider to resend (over the TCP session) the message corresponding to a given sequence number.
Ok but how do you detect that a consumer has missed an update, if no other update occurs ? You may have some desunchronized server for quite a long period of time if you don't have a mechinism for the consumer to regularly check if it is up to date.
Good point, but easily solved with a periodic keepalive msg.
A heart-beat would be good to have : the producer would periodically multi-cast the latest CSN, allowing desynchronized servers to catch up.
Another pb iw that Datagram are limited in size, which means big entries will have to be split in many parts.