23
The Chord P2P Network Some slides have been borrowed from the original presentation by the authors

The Chord P2P Network - University of Iowahomepage.divms.uiowa.edu/~ghosh/9.Chord.pdfChord vs.Tapestry • The topology of the Chord network, as defined by the successor pointers,

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: The Chord P2P Network - University of Iowahomepage.divms.uiowa.edu/~ghosh/9.Chord.pdfChord vs.Tapestry • The topology of the Chord network, as defined by the successor pointers,

The Chord P2P Network

Some slides have been borrowed from the original presentation by the authors

Page 2: The Chord P2P Network - University of Iowahomepage.divms.uiowa.edu/~ghosh/9.Chord.pdfChord vs.Tapestry • The topology of the Chord network, as defined by the successor pointers,

Chord vs.Tapestry

•  The topology of the Chord network, as defined by the successor pointers, must satisfy a well-defined structure.

•  Tapestry (uses Plaxton routing) requires the root of the object to be placed in a designated node, but the object can be placed locally. In contrast, Chord requires the object to be placed at a designated node.

Page 3: The Chord P2P Network - University of Iowahomepage.divms.uiowa.edu/~ghosh/9.Chord.pdfChord vs.Tapestry • The topology of the Chord network, as defined by the successor pointers,

Main features of Chord

  Load balancing via Consistent Hashing

•  Small routing tables: log n

•  Small routing delay: log n hops

•  Fast join/leave protocol (polylog time)

Page 4: The Chord P2P Network - University of Iowahomepage.divms.uiowa.edu/~ghosh/9.Chord.pdfChord vs.Tapestry • The topology of the Chord network, as defined by the successor pointers,

Consistent Hashing

Assigns both nodes and objects from an m-bit key.

Order these nodes around an identifier circle (what does a circle mean here?) according to the order of their keys (0 .. 2m-1). This ring is known as the Chord Ring.

Object with key k is assigned to the first node whose key is ≥ k (called the successor node of key k)

Page 5: The Chord P2P Network - University of Iowahomepage.divms.uiowa.edu/~ghosh/9.Chord.pdfChord vs.Tapestry • The topology of the Chord network, as defined by the successor pointers,

Consistent Hashing

N32"

N90"

N105"

D80"

D20"

D120"

Example: Node 90 is the “successor” of document 80.

(0)"

N=128 Circular 7-bit

ID space

Page 6: The Chord P2P Network - University of Iowahomepage.divms.uiowa.edu/~ghosh/9.Chord.pdfChord vs.Tapestry • The topology of the Chord network, as defined by the successor pointers,

Consistent Hashing [Karger 97]

Property 1 If there are N nodes and K keys, then with high probability, each node is responsible for (1+epsilon )K/N keys.

Property 2 When a node joins or leaves the network, the responsibility of at most O(K/N) keys changes hand (only to or from the node that is joining or leaving.

When K is large, the impact on individual nodes is quite small.

Page 7: The Chord P2P Network - University of Iowahomepage.divms.uiowa.edu/~ghosh/9.Chord.pdfChord vs.Tapestry • The topology of the Chord network, as defined by the successor pointers,

Consistent hashing

N32"

N90"

N105"

K80"

K20"

K5"

Circular 7-bit ID space

Object with Key 5

Node 105

An object with key k is stored at its successor (node with key ≥ k)

Page 8: The Chord P2P Network - University of Iowahomepage.divms.uiowa.edu/~ghosh/9.Chord.pdfChord vs.Tapestry • The topology of the Chord network, as defined by the successor pointers,

The log N Fingers

(0)"

Each node knows of only log N other nodes.

N80"

1/8!

1/16!1/32!1/64!1/128!

Circular (log N)-bit ID space

Distance of N80’s neighbors from

N80

1/4! 1/2!

Page 9: The Chord P2P Network - University of Iowahomepage.divms.uiowa.edu/~ghosh/9.Chord.pdfChord vs.Tapestry • The topology of the Chord network, as defined by the successor pointers,

Finger i points to successor of n+2i

N80"

½"¼"

1/8!

1/16!1/32!1/64!1/128!

112

N120"

Page 10: The Chord P2P Network - University of Iowahomepage.divms.uiowa.edu/~ghosh/9.Chord.pdfChord vs.Tapestry • The topology of the Chord network, as defined by the successor pointers,

Chord Finger Table

(0)"

N32"

N60"

N79"

N70"

N113"

N102"

N40"

N52"

33..33 N40 34..35 N40 36..39 N40 40..47 N40 48..63 N52 64..95 N70 96..31 N102

Node n’s i-th entry: first node ≥ n + 2i-1

N32’s Finger Table

N80"

N85"N=128

Finger table actually contains ID and IP address

Page 11: The Chord P2P Network - University of Iowahomepage.divms.uiowa.edu/~ghosh/9.Chord.pdfChord vs.Tapestry • The topology of the Chord network, as defined by the successor pointers,

Lookup

33..33 N40 34..35 N40 36..39 N40 40..47 N40 48..63 N52 64..95 N70 96..31 N102

N32’s Finger Table

Node 32, lookup(82): 32 70 80 85.

71..71 N79 72..73 N79 74..77 N79 78..85 N80 86..101 N102 102..5 N102 6..69 N32

N70’s Finger Table

(0)"

N32"

N60"N79"

N70"

N113"

N102"

N40"

N52"N80"

N85" 81..81 N85 82..83 N85 84..87 N85 88..95 N102 96..111 N102 112..15 N113 16..79 N32

N80’s Finger Table

Greedy routing

Page 12: The Chord P2P Network - University of Iowahomepage.divms.uiowa.edu/~ghosh/9.Chord.pdfChord vs.Tapestry • The topology of the Chord network, as defined by the successor pointers,

New Node Joins

(0)"

N32"

N60"

N80"

N70"

N113"

N102"

N40"

N52"

1 21..21 2 22..23 3 24..27 4 28..35 5 36..51 6 52..83 7 84..19

N20’s Finger Table

N20"

Assume N20 knows one of the existing nodes.

Page 13: The Chord P2P Network - University of Iowahomepage.divms.uiowa.edu/~ghosh/9.Chord.pdfChord vs.Tapestry • The topology of the Chord network, as defined by the successor pointers,

New Node Joins (2)

(0)"

N32"

N60"

N80"

N70"

N113"

N102"

N40"

N52"

21..21 N32 22..23 N32 24..27 N32 28..35 N32 36..51 N40 52..83 N52 84..19 N102

N20’s Finger Table

N20"

Node 20 asks that node for successor to 21, 22, …, 52, 84.

Page 14: The Chord P2P Network - University of Iowahomepage.divms.uiowa.edu/~ghosh/9.Chord.pdfChord vs.Tapestry • The topology of the Chord network, as defined by the successor pointers,

The Join procedure

The new node id asks a gateway node n

to find the successor of id

n.(find_successor(id)

if id = (n, successor) *n<id<successor of n*

then return successor

else forward the query around the circle

fi

Needs O(n) messages. This is slow.

Page 15: The Chord P2P Network - University of Iowahomepage.divms.uiowa.edu/~ghosh/9.Chord.pdfChord vs.Tapestry • The topology of the Chord network, as defined by the successor pointers,

Steps in join

id

n

Successor(n)

id

n

Finally

But the transition does not happen immediately

Linked list insert

Page 16: The Chord P2P Network - University of Iowahomepage.divms.uiowa.edu/~ghosh/9.Chord.pdfChord vs.Tapestry • The topology of the Chord network, as defined by the successor pointers,

A More Efficient Join // ask n to find the successor of id if id = (n, successor]

then return successor else n’= closest_ preceding_node (id) return n’.find_successor(id)

fi // search for the highest predecessor of id

n. closest_preceding_node(id) for i = log N downto 1 if (finger[i] is between (n,id) return finger[i]

Page 17: The Chord P2P Network - University of Iowahomepage.divms.uiowa.edu/~ghosh/9.Chord.pdfChord vs.Tapestry • The topology of the Chord network, as defined by the successor pointers,

Example

(0)"

N32"

N60"

N80"

N70"

N113"

N102"

N40"

N52"

N20"

K65

N20 wants to find out the successor of key 65

Page 18: The Chord P2P Network - University of Iowahomepage.divms.uiowa.edu/~ghosh/9.Chord.pdfChord vs.Tapestry • The topology of the Chord network, as defined by the successor pointers,

After join move objects (0)"

N32"

N60"

N80"

N70"

N113"

N102"

N40"

N52"

21..21 N32

22..23 N32 24..27 N32 28..35 N32 36..51 N40 52..83 N52 84..19 N102

N20’s Finger Table

N20"

Node 20 moves documents from node 32.

D114..20"

Notify nodes that must include N20 in their table. N113[1]=N20, not N32.

Page 19: The Chord P2P Network - University of Iowahomepage.divms.uiowa.edu/~ghosh/9.Chord.pdfChord vs.Tapestry • The topology of the Chord network, as defined by the successor pointers,

Three steps in join

Step 1. Initialize predecessor and fingers of the new node.

Step 2. Update the predecessor and the fingers of the existing nodes. (Thus notify nodes that must include N20 in their table. N113[1] = N20, not N32.

Step 3. Transfer objects to the new node as appropriate.

(Knowledge of predecessor is useful in stabilization)

Page 20: The Chord P2P Network - University of Iowahomepage.divms.uiowa.edu/~ghosh/9.Chord.pdfChord vs.Tapestry • The topology of the Chord network, as defined by the successor pointers,

Concurrent Join

New node n

n1

n2

[Before]

New node n

n2

n1

[After]

New node n’ New node n’

Page 21: The Chord P2P Network - University of Iowahomepage.divms.uiowa.edu/~ghosh/9.Chord.pdfChord vs.Tapestry • The topology of the Chord network, as defined by the successor pointers,

Stabilization

New node n

n2

n1

Predecessor.successor(n1) ≠ n1, so n1 adopts predecessor.successor(n1) = n as its new successor

New node n

n2

Periodic stabilization is needed to integrate the new node into the network and restore the invariant.

n1

Page 22: The Chord P2P Network - University of Iowahomepage.divms.uiowa.edu/~ghosh/9.Chord.pdfChord vs.Tapestry • The topology of the Chord network, as defined by the successor pointers,

The complexity of join

With high probability, any node joining or leaving

an N-node Chord network will use O(log 2N) messages

to re-establish the Chord routing invariants and finger

tables.

Page 23: The Chord P2P Network - University of Iowahomepage.divms.uiowa.edu/~ghosh/9.Chord.pdfChord vs.Tapestry • The topology of the Chord network, as defined by the successor pointers,

Chord Summary

•  Log(n) lookup messages and table space. •  Well-defined location for each ID.

•  No search required.

•  Natural load balance. •  No name structure imposed. •  Minimal join/leave disruption.