[dsnp-interest] message broadcast in DSNP
Adrian Thurston
thurston at complang.org
Sat Aug 1 21:05:47 UTC 2009
This is a topic I've been thinking a lot about lately.
The most simple approach is to iterate through your list of friends and deliver broadcast messages. However, a large number of friends multiplied by lots of activity results in many messages.
To mitigate this cost a user's set of friends is organized into a complete binary tree and broadcast messages are forwarded through this tree, resulting in log n steps to distribute a broadcast.
This reduces the time to get messages out, but complicates matters when a node fails to forward a message on behalf of a friend. The approach I'm considering is to send acknowledgment messages back up the tree of friends and back to the originator as confirmation. If the ack does not arrive back in time there is a distribution problem that needs to be corrected by discovering the faulty node and removing it or swapping it with a leaf node. The message can then be rebroadcast.
A faulty node can be reported to the originator at the point of failure, either due to a timeout, or an inability to connect.
Adrian
More information about the dsnp-interest
mailing list