background
play

Background Multicast in Cooperative Environments Tree-based - PowerPoint PPT Presentation

SplitStream: High-Bandwidth Background Multicast in Cooperative Environments Tree-based multicast High demand on few internal nodes Marco Barreno Cooperative environments Peer-to-peer systems Peers contribute resources 9/22/2003 We don


  1. SplitStream: High-Bandwidth Background Multicast in Cooperative Environments Tree-based multicast High demand on few internal nodes Marco Barreno Cooperative environments Peer-to-peer systems Peers contribute resources 9/22/2003 We don’ t assume dedicated infrastructure Different peers may have different limitations Goals of SplitStream The SplitStream approach Balance load over peers Split data into stripes, each over its own tree Accommodate different limitations Each node is internal to Each node has a desired indegree and a forwarding only one tree capacity (max outdegree) Be robust to failures Built on Pastry and Scribe Recall that Pastry uses prefix routing

  2. Scribe background Stripes Built on top of Pastry SplitStream divides data into stripes Any Scribe node may create a group Each stripe uses one Scribe multicast tree Other nodes may join group or send multicast Prefix routing ensures property that each node is Node with nodeId numerically closest to groupId internal to only one tree is the rendezvous point Inbound bandwidth: can achieve desired indegree Root of multicast tree for the group while this property holds Joins handled locally Outbound bandwidth: this is harder—we'll have to But it’ s only a single tree look at the node join algorithm to see how this works Respecting forwarding capacity Compare this to Overcast The tree structure described may not respect Overcast also creates an overlay to spread maximum capacities multicast work around, but... Scribe’ s push-down fails to resolve the problem Overcast is single-source, while SplitStream is multi- source because a leaf node in one tree may have children in another tree Overcast uses a single tree, while SplitStream uses multiple trees Overcast is designed to maximize bandwidth between root and leaves, while SplitStream is designed to spread load evenly to all nodes (including leaves)

  3. Parent location algorithm The spare capacity group 1 Node adopts prospective child If orphan hasn’ t found parent yet, anycasts to spare capacity group 2 If too many children, choose one to reject: Group contains all SplitStream nodes with fewer i. First, look for one in stripe without shared prefix children than their forwarding capacity ii. Otherwise, select node with shortest prefix match 3 Orphan locates new parent in up to two steps: Anycast returns nearby node, which starts a DFS of the spare capacity group tree, sending first to a i. Tries former siblings with stripe prefix match child... I. Adopts or rejects using same criteria; continue push-down ii. Use the spare capacity group Spare capacity group (cont.) A spare capacity example At each node in the search: If node has no children left to search, check whether it receives a stripe the orphan seeks If so, verifies that the orphan is not an ancestor (which would create a cycle) If both tests succeed, the node adopts the orphan May leave spare capacity group If either test fails, back up to parent (more DFS...)

  4. Consequences Correctness and complexity Parent is likely to be physically near orphan due to Big assumptions: locality of Pastry and Scribe All nodes join at the same time and communication is reliable However, it is possible for the parent already to be an Nodes do not leave the system either voluntarily or due to internal node for another stripe failures If this parent fails it will bring down two stripes Splitstream can deal with violations of either, but Anycast can still fail problems may arise that prevent the forest from being constructed Adding the orphan may cause a cycle (fixable) No node with spare capacity provides stripe sought Simulation shows this isn’ t problematic in practice Declare failure and notify the application Correctness and complexity (2) Correctness and complexity (3) A fairly lengthy analysis reveals this rough upper Expected state maintained by each node is O(log|N|) bound on the probability that the algorithm fails to build a feasible forest: Expected number of messages to build forest is O(|N|log|N|) if trees are well balanced and O(|N| 2 ) in the worst case But when the desired indegree of all nodes equals Trees should be well balanced if each node the total number of stripes, the algorithm never forwards its own stripe to two other nodes fails

  5. Experiments Experiments (2) Experiments (3) Experiments (4)

  6. Conclusions So what are the major points? =)

Recommend


More recommend