12
DHT-based Multicast

DHT-based Multicast. Motivation 1.How does it perform in the presence of heterogeneity? –DHTs are good at balancing load –However, resources are usually

Embed Size (px)

Citation preview

Page 1: DHT-based Multicast. Motivation 1.How does it perform in the presence of heterogeneity? –DHTs are good at balancing load –However, resources are usually

DHT-based Multicast

Page 2: DHT-based Multicast. Motivation 1.How does it perform in the presence of heterogeneity? –DHTs are good at balancing load –However, resources are usually

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.)

Page 3: DHT-based Multicast. Motivation 1.How does it perform in the presence of heterogeneity? –DHTs are good at balancing load –However, resources are usually

Roadmap

• Study concrete protocol – Scribe

• Study heterogeneity handling mechanisms– Pushdown– Difficulties/Limitations

• Effect on metrics we care– Depth– Maintenance overhead– RDP (?)

Page 4: DHT-based Multicast. Motivation 1.How does it perform in the presence of heterogeneity? –DHTs are good at balancing load –However, resources are usually

Scribe

New member

Underlying Pastry DHT

Page 5: DHT-based Multicast. Motivation 1.How does it perform in the presence of heterogeneity? –DHTs are good at balancing load –However, resources are usually

Scribe tree construction

New member

Underlying Pastry DHT

Rendezvous point

Route towardsmulticast groupID

groupID

Page 6: DHT-based Multicast. Motivation 1.How does it perform in the presence of heterogeneity? –DHTs are good at balancing load –However, resources are usually

Scribe tree construction

New member

Underlying Pastry DHT

Route towardsmulticast groupID

groupID

Page 7: DHT-based Multicast. Motivation 1.How does it perform in the presence of heterogeneity? –DHTs are good at balancing load –However, resources are usually

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

Page 8: DHT-based Multicast. Motivation 1.How does it perform in the presence of heterogeneity? –DHTs are good at balancing load –However, resources are usually

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?

Page 9: DHT-based Multicast. Motivation 1.How does it perform in the presence of heterogeneity? –DHTs are good at balancing load –However, resources are usually

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

Page 10: DHT-based Multicast. Motivation 1.How does it perform in the presence of heterogeneity? –DHTs are good at balancing load –However, resources are usually

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

Page 11: DHT-based Multicast. Motivation 1.How does it perform in the presence of heterogeneity? –DHTs are good at balancing load –However, resources are usually

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!

Page 12: DHT-based Multicast. Motivation 1.How does it perform in the presence of heterogeneity? –DHTs are good at balancing load –However, resources are usually

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