Title: Plaxton%20Routing
1Plaxton Routing
2Introduction
- Plaxton routing is a scalable mechanism for
accessing nearby copies of objects. - Plaxton mesh is a data structure that allows
messages to locate objects and route to them
across an arbitrarily-sized network, while using
a small constant-sized routing map at each hop.
3Role of each node
- Each node serves as
- a server,
- a client, and
- a router.
4Object and node names
- In an n-node Plaxton mesh, both objects and
nodes have randomly chosen names (better call the
them labels) of size log n bits independent of
their location and semantic properties -
5Important issues
- Routing to a node / object
- Reading an object
- Inserting an object
- Deleting an object
- Each node has a small routing table and a set
of pointers pointing to nodes containing objects
6Routing table
- Each routing table has entries for
-
- primary neighbors,
- secondary neighbors and
- (3) Back pointers
7Routing table (1)
0
1
xxxxx 0 xxxxx 1
xxxx 0 0 xxxx 1 0
xxx 0 00 xxx 1 00
xx 0 000 xx 1 000
x 0 0000 x 1 0000
0 00000 1 00000
The primary neighbors in the routing table of
node 000000. X means wildcard. However,
neighbors with least communication cost are the
preferred primary neighbors. Up to a
known constant of neighbors in each slot can be
secondary neighbors
8Routing table (2)
0
1
2
3
x x 0 x x 1 x x 2 x x 3
x 0 0 x 1 0 x 2 0 x 3 0
0 0 0 1 0 0 2 0 0 3 0 0
Let N be a power of B2b. The above table is for
b2 and N64. The routing table will have at most
B.logBN entries for the primary neighbors
9Routing table (3)
- From each node x, there is a back
- pointer to another node y if x is a
- primary neighbor of y. It simplifies
- the searching of the root of an object
- by crawling backwards.
10Suffix routing
- Each node incrementally relays the messages to
the destination id digit by digit, like - 1 --gt 31 --gt 031 --gt 2031
- Each step picks a neighbor whose suffix has the
- largest match with that of the destination node,
Note that suffix and prefix routing are equivalent
11Another example of routing
- Example Octal digits, 218 namespace, 005712 ?
627510
12Inserting an object
- A server S publishes that it has an object O by
routing a message to the root node of O The
root node is identified by applying a hash
function on O. A real node whose id matches with
this hash by the maximum number of trailing bits
is the root of O. - The publishing process consists of sending a
message toward the root node. At each hop along
the way, the publish message stores location
information in the form of a mapping
ltAObject-ID(O), y Server-ID(S), k Cost of
accessing the object from that node.gt
13Inserting an object
Pointer to O
Secondary neighbors
Object O
14Insertion continued
- Where multiple copies of objects exist, only the
reference to the closest object is saved at each
hop to the root. The insertion procedure
maintains this invariant. This is where the cost
component of the pointers comes in.
15Inserting an object
Copy of O
Object O
16Deleting an object
Steps similar to insertion. The pointers should
be updated to reflect access to the closest copy.
Copy of O
Object O
17Read
Read tries to locate the root of the object. If a
pointer to O is discovered en route, then the
object is retrieved following that pointer
Copy of O
Read
Object O
18Benefits and Limitations
- (-) While the intermediate hops are not
absolutely necessary, the unique root node serves
a critical purpose. The downside of having a
unique root is that it becomes a single point of
failure. - (-) Assumes the network to be static. Does not
handle topology changes.
19Benefits and limitations
- Simple fault handling
- 1234 --gt 1238 --gt 1278 --gt 1678 --gt 5678
- 3128 --gt 3178 --gt 3678
- Optimal routing distance of O(log BN) between
any pair of nodes