DHT-based Multicast. Motivation 1.How does it perform in the presence of heterogeneity? –DHTs are...

Preview:

Citation preview

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