DHT-based Multicast
Motivation
1. How does it perform in the presence of heterogeneity?
– DHTs are good at balancing load– However, resources are usually NOT
equally distributed in the real world
2. Assumption that DHT is a globally pervasive service
– What if this is not the case?– Medium sized groups (1000 5000, e.g.)
Roadmap
• Study concrete protocol – Scribe
• Study heterogeneity handling mechanisms– Pushdown– Difficulties/Limitations
• Effect on metrics we care– Depth– Maintenance overhead– RDP (?)
Scribe
New member
Underlying Pastry DHT
Scribe tree construction
New member
Underlying Pastry DHT
Rendezvous point
Route towardsmulticast groupID
groupID
Scribe tree construction
New member
Underlying Pastry DHT
Route towardsmulticast groupID
groupID
Pushdown
• When node is full– Add incoming node anyways– Kick out one child
• Pick the farthest child from me• Orphan selects one of his former siblings as parent• Selection depends on ‘total latency’ to parent
Problems with pushdown
• What happens if leaves have zero-degree?– How does search continue?– Paper punts on this (assumes degree >= 1)
• Creates loops (when failures!)• Non-DHT links!!
– Additional maintenance traffic– Increases depth by restricting search?– If significant number what did DHT buy us?
Goal
• Quantify pushdown effects– Depth– Overhead– RDP
• Other goals– RDP with group size 1000 5000– Tree/DHT structure when everybody knows
the same bootstrap node
Simulation efforts
• Simulator does not implement pushdown!– implemented it
• Does not implement loop detection– Paper says this is rare– I did not find this rare, with failures– implemented loop detection, path updates
Efforts (continued)
• What to do when we detect a loop?– Paper says randomized join (??) through
Pastry– Miguel
• Some hooky explanation about going via the leafset
• Caveat: says they didn’t think through this because this case would be rare!
Splitstream
• Why splitstream?– 1 tree simulates scribe!– Uses anycast for looking up resources– This primitive solves some problems
• Code is much more functional • Possible problems?
– Trees constructed are not delay-sensitive
• Currently experimenting• Several visual studio nightmares