tapestry a resilient global scale overlay for
play

Tapestry: A Resilient Global-scale Overlay for What have we seen - PowerPoint PPT Presentation

Tapestry: A Resilient Global-scale Overlay for What have we seen before? Service Deployment Key-based routing similar to Chord, Pastry Ben Y. Zhao, Ling Huang, Jeremy Stribling, Sean C. Rhea, Similar guarantees to Chord, Pastry Anthony


  1. Tapestry: A Resilient Global-scale Overlay for What have we seen before? Service Deployment � Key-based routing similar to Chord, Pastry Ben Y. Zhao, Ling Huang, Jeremy Stribling, Sean C. Rhea, � Similar guarantees to Chord, Pastry Anthony D. Joseph, and John D. Kubiatowicz � Log b N routing hops (b is the base parameter) � bLog b N state on each node 2 N) messages on insert � O(Log b � Locality-based routing tables similar to Pastry Shawn Jeffery � Discussion point (for throughout presentation): CS294-4 Fall 2003 � What sets Tapestry above the rest of the structured overlay jeffery@cs.berkeley.edu p2p networks? Tapestry Shawn Jeffery 9/10/03 2 Decentralized Object Location and Routing: DOLR DOLR Identifiers � The core of Tapestry � ID Space for both nodes and endpoints (objects) : 160-bit values with a globally defined radix (e.g. � Routes messages to endpoints hexadecimal to give 40-digit IDs) � Both Nodes and Objects � Each node is randomly assigned a nodeID � Virtualizes resources � Each endpoint is assigned a Globally Unique � objects are known by name, not location IDentifier (GUID) from the same ID space � Typically done using SHA-1 � Applications can also have IDs (application specific), which are used to select an appropriate process on each node for delivery Tapestry Shawn Jeffery 9/10/03 3 Tapestry Shawn Jeffery 9/10/03 4

  2. DOLR API Node State � PublishObject(O G , A id ) � Each node stores a neighbor map similar to Pastry � Each level stores neighbors that match a prefix up to a certain position in the ID � UnpublishObject(O G , A id ) � Invariant: If there is a hole in the routing table, there is no such node in the network � For redundancy, backup neighbor links are stored � RouteToObject(O G , A id ) � Currently 2 � Each node also stores backpointers that point to nodes that point to it � RouteToNode(N, A id , Exact) � Creates a routing mesh of neighbors Tapestry Shawn Jeffery 9/10/03 5 Tapestry Shawn Jeffery 9/10/03 6 Routing Mesh Routing � Every ID is mapped to a root � An ID’s root is either the node where nodeID = ID or the “closest” node to which that ID routes � Uses prefix routing (like Pastry) � Lookup for 42AD: 4*** => 42** => 42A* => 42AD � If there is an empty neighbor entry, then use surrogate routing � Route to the next highest (if no entry for 42**, try 43**) Tapestry Shawn Jeffery 9/10/03 7 Tapestry Shawn Jeffery 9/10/03 8

  3. Object Publication Object Location � A node sends a publish message towards the � Client sends message towards object’s root root of the object � Each hop checks its list of pointers � At each hop, nodes store pointers to the � If there is a match, the message is forwarded source node directly to the object’s location � Else, the message is routed towards the object’s � Data remains at source. Exploit locality without root replication (such as in Pastry, Freenet) � Because pointers are sorted by proximity, � With replicas, the pointers are stored in sorted order of network latency each object lookup is directed to the closest � Soft State – must periodically republish copy of the data Tapestry Shawn Jeffery 9/10/03 9 Tapestry Shawn Jeffery 9/10/03 10 Use of Mesh for Object Location Node Insertions � A insertion for new node N must accomplish the following: All nodes that have null entries for N need to be alerted of N’s � presence � Acknowledged mulitcast from the “root” node of N’s ID to visit all nodes with the common prefix N may become the new root for some objects. Move those � pointers during the mulitcast N must build its routing table � � All nodes contacted during mulitcast contact N and become its neighbor set � Iterative nearest neighbor search based on neighbor set Nodes near N might want to use N in their routing tables as an � optimization � Also done during iterative search Tapestry Shawn Jeffery 9/10/03 11 Tapestry Shawn Jeffery 9/10/03 12 Liberally borrowed from Tapestry website

  4. Tapestry Architecture Node Deletions � Voluntary OceanStore, etc � Backpointer nodes are notified, which fix their routing tables and republish objects deliver(), forward(), � Involuntary route(), etc. � Periodic heartbeats: detection of failed link initiates mesh Tier 0/1: Routing, repair (to clean up routing tables) Object Location � Soft state publishing: object pointers go away if not republished (to clean up object pointers) Connection Mgmt � Discussion Point: Node insertions/deletions + TCP, UDP heartbeats + soft state republishing = network overhead. Is it acceptable? What are the tradeoffs? • Prototype implemented using Java Tapestry Shawn Jeffery 9/10/03 13 Tapestry Shawn Jeffery 9/10/03 14 Experimental Results (I) Experimental Results (II) � Routing/Object location tests � 3 environments � Routing overhead (PlanetLab) � Local cluster, PlanetLab, Simulator � About twice as long to route through overlay vs IP � Object location/optimization (PlanetLab/Simulator) � Micro-benchmarks on local cluster � Object pointers significantly help routing to close objects � Message processing overhead � Network Dynamics � Proportional to processor speed - Can utilize Moore’s � Node insertion overhead (PlanetLab) � Sublinear latency to stabilization Law � O(LogN) bandwidth consumption � Message throughput � Node failures, joins, churn (PlanetLab/Simulator) � Optimal size is 4KB � Brief dip in lookup success rate followed by quick return to near 100% success rate � Churn lookup rate near 100% Tapestry Shawn Jeffery 9/10/03 15 Tapestry Shawn Jeffery 9/10/03 16

  5. Experimental Results Best of all, it can be used to Discussion deploy large-scale applications! • How do you satisfactorily test one of these � Oceanstore: a global-scale, highly available systems? storage utility � Bayeux: an efficient self-organizing • What metrics are important? application-level multicast system • Most of these experiments were run with between � We will be looking at both of these systems 500 - 1000 nodes. Is this enough to show that a system is capable of global scale? • Does the usage of virtual nodes greatly affect the results? Tapestry Shawn Jeffery 9/10/03 17 Tapestry Shawn Jeffery 9/10/03 18 Comments? Questions? Insults? jeffery@cs.berkeley.edu Tapestry Shawn Jeffery 9/10/03 19

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend