Towards A Common API for Structured PeertoPeer Overlays

  • Slides: 11
Download presentation
*Towards A Common API for Structured Peer-to-Peer Overlays Frank Dabek, Ben Y. Zhao, Peter

*Towards A Common API for Structured Peer-to-Peer Overlays Frank Dabek, Ben Y. Zhao, Peter Druschel, John Kubiatowicz, Ion Stoica MIT, U. C. Berkeley, and Rice * Conducted under the IRIS project (NSF)

State of the Art n Lots and lots of peer to peer applications ¨

State of the Art n Lots and lots of peer to peer applications ¨ Decentralized file systems, archival backup ¨ Group communication / coordination ¨ Routing layers for anonymity, attack resilience ¨ Scalable content distribution n Built on scalable, self-organizing overlays ¨ E. g. n CAN, Chord, Pastry, Tapestry, Kademlia, etc… Semantic differences ¨ Store/get data, locate objects, multicast / anycast ¨ How do these functional layers relate? ¨ What is the smallest common denominator? IPTPS 2003 ravenben@eecs. berkeley. edu February 20, 2003

Some Abstractions n Distributed Hash Tables (DHT) ¨ Simple store and retrieve of values

Some Abstractions n Distributed Hash Tables (DHT) ¨ Simple store and retrieve of values with a key ¨ Values can be of any type n Decentralized Object Location and Routing (DOLR) ¨ Decentralized directory service for endpoints/objects ¨ Route messages to nearest available endpoint n Multicast / Anycast (CAST) ¨ Scalable group communication ¨ Decentralized membership management IPTPS 2003 ravenben@eecs. berkeley. edu February 20, 2003

Tier 1 Interfaces Distributed Hash Tables (DHT) Decentralized Object Location / Routing (DOLR) Multicast

Tier 1 Interfaces Distributed Hash Tables (DHT) Decentralized Object Location / Routing (DOLR) Multicast / Anycast (CAST) put (key, data) publish (object. Id) join (group. Id) remove (key) unpublish (object. Id) leave (group. Id) value = get (key) send. To. Obj (msg, object. Id, [n]) multicast (msg, g. Id) anycast (msg, g. Id) IPTPS 2003 ravenben@eecs. berkeley. edu February 20, 2003

Structured P 2 P Overlays CFS PAST DHT i 3 Split. Stream Bayeux CAST

Structured P 2 P Overlays CFS PAST DHT i 3 Split. Stream Bayeux CAST DOLR Key-based Routing IPTPS 2003 ravenben@eecs. berkeley. edu Ocean. Store Tier 2 Tier 1 Tier 0 February 20, 2003

The Common Denominator n Key-based Routing layer (Tier 0) ¨ Large sparse Id space

The Common Denominator n Key-based Routing layer (Tier 0) ¨ Large sparse Id space N (160 bits: 0 – 2160 represented as base b) ¨ Nodes in overlay network have node. Ids N ¨ Given k N, overlay deterministically maps k to its root node (a live node in the network) n n Goal: Standardize API at this layer Main routing call ¨ route (key, msg, [node]) ¨ Route message to node currently n responsible for key Supplementary calls ¨ Flexible upcall interface for customized ¨ Accessing and managing the ID-space IPTPS 2003 ravenben@eecs. berkeley. edu routing February 20, 2003

Flexible Routing via Upcalls Application forward msg n msg KBR Layer Delivers a message

Flexible Routing via Upcalls Application forward msg n msg KBR Layer Delivers a message to application at the destination Forward(&key, &msg, &next. Hop. Node) ¨ ¨ n KBR Layer Deliver(key, msg) ¨ n deliver Synchronous upcall with normal next hop node Applications can override messages Update(node, boolean joined) ¨ Upcall invoked to inform application of a node joining or leaving the local node’s neighbor. Set IPTPS 2003 ravenben@eecs. berkeley. edu February 20, 2003

KBR API (managing ID space) n Expose local routing table ¨ next. Hop. Set

KBR API (managing ID space) n Expose local routing table ¨ next. Hop. Set n = local_lookup (key, num, safe) Query the ID space ¨ nodehandle[ ] = neighbor. Set (max_rank) ¨ nodehandle[ ] = replica. Set (key, num) ¨ boolean = range (node, rank, lkey, rkey) IPTPS 2003 ravenben@eecs. berkeley. edu February 20, 2003

Caching DHT Illustrated IPTPS 2003 ravenben@eecs. berkeley. edu February 20, 2003

Caching DHT Illustrated IPTPS 2003 ravenben@eecs. berkeley. edu February 20, 2003

Caching DHT Implementation n Interface ¨ put (key, value) ¨ value = get (key)

Caching DHT Implementation n Interface ¨ put (key, value) ¨ value = get (key) n Implementation (source S, client C, root R) ¨ Put: route(key, [PUT, value, S]) Forward upcall: store value Deliver upcall: store value ¨ Get: route(key, [GET, C]) Forward upcall: if cached, route(C, [value]), FIN Deliver upcall: if found, route(C, [value]) IPTPS 2003 ravenben@eecs. berkeley. edu February 20, 2003

Ongoing Work n What’s next ¨ Better n n understanding of DOLR vs. CAST

Ongoing Work n What’s next ¨ Better n n understanding of DOLR vs. CAST Decentralized endpoint management Policies in placement of indirection points ¨ APIs and semantics for Tier 1: (DHT/DOLR/CAST) ¨ KBR API implementation in current protocols n See paper for additional details ¨ Implementation of Tier 1 interfaces on KBR ¨ KBR API support on selected P 2 P systems IPTPS 2003 ravenben@eecs. berkeley. edu February 20, 2003