Plaxton%20Routing - PowerPoint PPT Presentation

About This Presentation
Title:

Plaxton%20Routing

Description:

Used in several important P2P networks like Microsoft's Pastry and UC ... also the backbone of Oceanstore, blueprint of a persistent global-scale storage system ... – PowerPoint PPT presentation

Number of Views:55
Avg rating:3.0/5.0
Slides: 21
Provided by: csUi
Category:

less

Transcript and Presenter's Notes

Title: Plaxton%20Routing


1
Plaxton Routing
2
History
  • Greg Plaxton, Rajmohan Rajaraman, Andrea Richa.
    Accessing nearby copies of replicated objects,
    SPAA 1997
  • Used in several important P2P networks like
    Microsofts Pastry and UC Berkeleys Tapestry
    (Zhao, Kubiatowicz, Joseph et al.) that is also
    the backbone of Oceanstore, blueprint of a
    persistent global-scale storage system

3
Goal
  • A set A of m objects reside in a network G.
    Plaxton et al. proposed an algorithm of accessing
    such a shared object using a nearby copy of it.
    Supported operations are insert, delete, read
    (but not write) on shared objects.
  • What is the challenge here? Think about this
    if every node maintains a copy, then read is
    fast, but insert or delete are very expensive.
    Also, storage overhead grows. The algorithm must
    be efficient w.r.t both time and space

4
Main idea
  • Embed an n-node virtual height-balanced tree T
    into the network. Each node u maintains
    information about copies of the object in the
    subtree of T rooted at u.
  • To read, u checks the local memory of the
    subtree under it. If the copy or a pointer to the
    object is available, then u uses that
    information, otherwise, it passes the request to
    its parent in T.

5
Plaxton tree
  • Plaxton tree (some call it Plaxton mesh) is a
    data structure that allows peers to efficiently
    locate objects, and route to them across an
    arbitrarily-sized network, using a small routing
    map at each hop. Each node serves as a client,
    server and a router.

6
Object and Node names
  • Objects and nodes acquire names independent of
    their location and semantic properties, in the
    form of random fixed-length bit-sequences
    represented by a common base (e.g., 40 Hex digits
    representing 160 bits). using the output of
    hashing algorithms, such as SHA-1 (leads to
    roughly even distribution in the name space)
  • Assume that n is a power of 2b, where b is a
    fixed positive integer. Thus, name of object B
    1032 (base 4 22, so b2), name of object C
    3011 etc. n 256

7
Neighbor map
x
  • Level i matches i suffix entries
  • Number of entries per level
  • ID base (here it is 16)
  • Each entry is the suffix matching
  • node with least cost. If no such
  • entry exists, then pick the one that
  • with highest id largest suffix match
  • These are all primary entries

0123
Destination 4307
Destination3623
A027
3187
9623
y1
y1
L0
L2
c(x,y1) lt c(x.y1)
2A53
1553
L1
c(x,y2) lt c(x.y2)
y2
y2
Destination 7353
Size of the table b log b (n)
8
Neighbor map of 5642
L2
L0
L1
L3
  • Level i matches i suffix entries.
  • Number of entries per level
  • ID base (here it is 8)
  • Each entry is the suffix matching
  • node with least cost. If no such
  • entry exists, then pick the one
  • that with highest id largest
  • suffix match
  • These are all primary entries

y2
y2
9
Neighbor map
  • In addition to primary entries, each level
    contains secondary entries.
  • A node u is a secondary entry of node x at a
    level i, if
  • it is not the primary neighbor y, and
  • c(x,u) is at most d.c(x,w) for all w with a
    matching suffix of size i
  • Here d is a constant
  • Finally, each node stores reverse neighbors for
    each level.
  • Node y is a reverse neighbor of x iff x is a
    primary neighbor of y.
  • All entries are statically chosen, and this needs
    global knowledge (-)

10
Routing Algorithm
  • Assume that the destination node is a tree root.
    To route to node (xyz)
  • Let shared suffix n so far
  • Look at level n1
  • Match the next digit of the destination id
  • Send the message to that node
  • Eventually the message gets relayed to the
    destination.

11
Example of suffix routing
  • Consider 218 namespace, 005712 ? 627510

How many hops?
12
Choosing the root
  • For each object, the root node simply stores a
    pointer to the server that stores the object.
    The root does not hold a copy of the object
    itself.
  • An objects root or surrogate node is chosen as
    a node whose id matches the objects id in the
    largest number of trailing bit positions. In case
    there are multiple such nodes, choose the node
    with the largest such id.

13
Pointer list
Root of O
  • Each node x has a pointer list P(x)
  • a list of triples (O,S, k), where O is
  • the object, S is the node that holds
  • a copy of O, and k is the upper bound
  • of c(x,y). The pointer list is updated
  • By insert and delete operations.

(O,S,3)
(O,S,1)
(O,S,2)
Server S
(O,S,2)
(O,S,1)
(O,S)
Server S
14
Inserting an Object
  • To insert an object, the publishing process
    computes the root, and sends the message (O,S)
    towards the root node. At each hop along the way,
    the publishing process stores location
    information in the form of a mapping
    ltObject-ID(O), Server-ID(S)gt

Root of O
(O,S,5)
(O,S,3)
(O,S,4)
(O,S,2)
(O,S,1)
(O,S)
Server S
15
Inserting another copy
Root of O
(O,S,3)
  • Intermediate nodes maintain the cost of access.
    While inserting a duplicate copy, the pointers
    are modified so that they direct to the closest
    copy

(O,S,1)
(O,S,2)
Server S
(O,S,2)
(O,S,1)
(O,S)
Server S
16
Read
Root of O
  • Client routes to Root of O, route to S when
    (O,S) found.
  • If any intermediate node stores (O,S), then that
    leads to a faster discovery. Also, nodes handling
    requests en route communicate with their primary
    and secondary neighbors to check the existence of
    another close-by copy.

(O,S,3)
(O,S,1)
(O,S,2)
Server S
(O,S,2)
(O,S,1)
(O,S)
Server S
17
Deleting an object
Root of O
(O,S,5)
  • Removes all pointers to that copy of the object
    in the pointer list on the nodes leading to the
    root
  • Otherwise, it uses the reverse pointers to to
    update the entry.

(O,S,3)
(O,S,3)
(O,S,4)
(O,S,1)
(O,S,2)
Server S
(O,S,2)
(O,S,1)
(O,S)
Server S
18
Results
Let C (maxc(u,v) u,v in V Cost of read
O(f(L(A))c(x,y)) where L is the length of the
message. If there is no shared copy, then it is
O(C) Cost of insert O(C) Cost of delete O(C
log n) Auxiliary memory to store q objects O(q
log2n) w.h.p
19
Benefits and Limitations
  • Scalable solution
  • Existing objects are guaranteed to be found
  • - Needs global knowledge to form the neighbor
    tables
  • - The root node for each object may be a possible
    bottleneck.

20
Benefits and limitations
  • Simple fault handling
  • 1234 1238 1278 1678 5678
  • 3128 --gt 3178 --gt 3678
  • Scalable
  • All routing done using locally available data
  • Optimal routing distance
Write a Comment
User Comments (0)
About PowerShow.com