Top Banner
Chord Advanced issues
25

Chord Advanced issues. Analysis Search takes O(log(N)) time –Proof 1 (intuition): At each step, distance between query and peer hosting the object reduces.

Jan 18, 2016

Download

Documents

Philip Phelps
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Chord Advanced issues. Analysis Search takes O(log(N)) time –Proof 1 (intuition): At each step, distance between query and peer hosting the object reduces.

Chord

Advanced issues

Page 2: Chord Advanced issues. Analysis Search takes O(log(N)) time –Proof 1 (intuition): At each step, distance between query and peer hosting the object reduces.

Analysis

Search takes O(log(N)) time– Proof 1 (intuition): At each step, distance between query and peer

hosting the object reduces by a factor of at least 2

Takes at most m steps: is at most a constant multiplicative factor above N, lookup is O(log(N))

– Proof 2 (intuition): After log(N) forwarding steps, distance to key is at most Number of node identifiers in a range of is O(log(N)) with high probability (why? SHA-1!) So using successors in that range will be ok

Nm /2Nm /2

m2

Page 3: Chord Advanced issues. Analysis Search takes O(log(N)) time –Proof 1 (intuition): At each step, distance between query and peer hosting the object reduces.

Analysis (contd.)

• O(log(N)) search time is true only if finger and successor entries correct

• When might these entries be wrong?

Page 4: Chord Advanced issues. Analysis Search takes O(log(N)) time –Proof 1 (intuition): At each step, distance between query and peer hosting the object reduces.

Analysis (contd.)

• O(log(N)) search time is true only if finger and successor entries correct

• When might these entries be wrong?

– When you have failures

Page 5: Chord Advanced issues. Analysis Search takes O(log(N)) time –Proof 1 (intuition): At each step, distance between query and peer hosting the object reduces.

Search under peer failures

N80

0Say m=7

N32

N45

File abcnews.com with key K42 stored here

XX

X

Lookup for K42 fails (N16 does not know N45)

N112

N96

N16

Who has abcnews.com?(hashes to K42)

Page 6: Chord Advanced issues. Analysis Search takes O(log(N)) time –Proof 1 (intuition): At each step, distance between query and peer hosting the object reduces.

Search under peer failures

N80

0Say m=7

N32

N45

File abcnews.com with key K42 stored here

X

One solution: maintain r multiple successor entriesin case of failure, use other successor entries

N112

N96

N16

Who has abcnews.com?(hashes to K42)

Page 7: Chord Advanced issues. Analysis Search takes O(log(N)) time –Proof 1 (intuition): At each step, distance between query and peer hosting the object reduces.

Search under peer failures

• Choosing r=2log(N) suffices to maintain correctness with high probability– Say 50% of nodes fail (i.e prob of failure = 1/2)– Pr(for given node, at least one successor alive)=

– Pr(above is true for all alive nodes)=

2log2 1

1)2

1(1

NN −=−

1)1

1( 2

12/

2≈=−

−NN e

N

Page 8: Chord Advanced issues. Analysis Search takes O(log(N)) time –Proof 1 (intuition): At each step, distance between query and peer hosting the object reduces.

Search under peer failures (2)

N80

0Say m=7

N32

N45

File abcnews.com with key K42 stored here

X

X

Lookup fails (N45 is dead)

N112

N96

N16

Who has abcnews.com?(hashes to K42)

Page 9: Chord Advanced issues. Analysis Search takes O(log(N)) time –Proof 1 (intuition): At each step, distance between query and peer hosting the object reduces.

Search under peer failures (2)

N80

0Say m=7

N32

N45

File cnn.com/index.html with key K42 stored here

X

One solution: replicate file/key at r successors and predecessors

N112

N96

N16

K42 replicated

K42 replicated

Who has cnn.com/index.html?(hashes to K42)

Page 10: Chord Advanced issues. Analysis Search takes O(log(N)) time –Proof 1 (intuition): At each step, distance between query and peer hosting the object reduces.

Need to deal with dynamic changes

Peers fail• New peers join• Peers leave

Need to update successors and fingers, and ensure keys reside in the right places

Page 11: Chord Advanced issues. Analysis Search takes O(log(N)) time –Proof 1 (intuition): At each step, distance between query and peer hosting the object reduces.

New peers joining

N80

0Say m=7

N32

N45

N112

N96

N16

N40

Some gateway node directs N40 to N32N32 updates successor to N40N40 initializes successor to N45, and obtains fingers from itN40 periodically talks to neighbors to update finger table

Stabilization protocol

Page 12: Chord Advanced issues. Analysis Search takes O(log(N)) time –Proof 1 (intuition): At each step, distance between query and peer hosting the object reduces.

New peers joining (2)

N80

0Say m=7

N32

N45

N112

N96

N16

N40

N40 may need to copy some files/keys from N45(files with fileid between 32 and 40)

K34,K38

Page 13: Chord Advanced issues. Analysis Search takes O(log(N)) time –Proof 1 (intuition): At each step, distance between query and peer hosting the object reduces.

Concurrent join

N80

0

Say m=7

N32

N45

N112

N96

N16

N24

K38

N20

N28

Argue that each node will eventually be reachable

K24

Page 14: Chord Advanced issues. Analysis Search takes O(log(N)) time –Proof 1 (intuition): At each step, distance between query and peer hosting the object reduces.

Stabilization Protocol

Concurrent peer joins, leave, or failure might cause the invariant to be violated, causing loopiness (?) or failure of lookups– periodically a stabilization algorithm checks and updates

pointers and keys. [TechReport on Chord in the list of readings] defines weak and strong stability

– Ensures non-loopiness of fingers, eventual success of lookups and O(log(N)) lookups w.h.p.

Page 15: Chord Advanced issues. Analysis Search takes O(log(N)) time –Proof 1 (intuition): At each step, distance between query and peer hosting the object reduces.

Effect on lookup

If in a stable network with N nodes, another set of N nodes joins, and the join protocol correctly sets their successors, then lookups will take O(log N) steps w.h.p

Page 16: Chord Advanced issues. Analysis Search takes O(log(N)) time –Proof 1 (intuition): At each step, distance between query and peer hosting the object reduces.

Effect on lookup

N80

0

N32

N45

N112

N96

N16

N24

K38

N20

N28

K24

Transfer pendingLinear ScanWill locate

K24

Consistent hashingguarantees that there

be O(log N) new nodesw.h,p between twoconsecutive nodes

Page 17: Chord Advanced issues. Analysis Search takes O(log(N)) time –Proof 1 (intuition): At each step, distance between query and peer hosting the object reduces.

Loopy network

N5

N3

N1

N24N63

N78

N96

What is funny / awkward about this? v: u < v < successor (u)

(succ (pred (u))) = u

(Weakly stable)

stable

Must be falsefor strong stability

Page 18: Chord Advanced issues. Analysis Search takes O(log(N)) time –Proof 1 (intuition): At each step, distance between query and peer hosting the object reduces.

Weak and Strong Stabilization

N5

N3

N1

N24N63

N78

N96

u (successor (predecessor (u))) = u. Still it is weakly stable but not strongly stable.

Loopy network

Page 19: Chord Advanced issues. Analysis Search takes O(log(N)) time –Proof 1 (intuition): At each step, distance between query and peer hosting the object reduces.

Strong stabilization

The key idea of the algorithm is:Let each node u ask its successor to walk around the ring until it reaches a node v : u <v ≤ successor(u). If

v: u <v < successor(u)

then loopiness exists, and reset successor(u):=v

Takes O(N2) steps. But loopiness is a rare event.

No protocol for recovery exists from a split ring.

Page 20: Chord Advanced issues. Analysis Search takes O(log(N)) time –Proof 1 (intuition): At each step, distance between query and peer hosting the object reduces.

New peers joining (3)

• A new peer affects O(log(N)) other finger entries in the system. So, the number of messages per peer join= O(log(N)*log(N))

• Similar set of operations for dealing with peers leaving

Page 21: Chord Advanced issues. Analysis Search takes O(log(N)) time –Proof 1 (intuition): At each step, distance between query and peer hosting the object reduces.

Cost of lookupCost of lookup

Cost is O(Log N) as predicted by theory

constant is 1/2

Number of Nodes

Avera

ge M

ess

ag

es

per

Looku

p

Page 22: Chord Advanced issues. Analysis Search takes O(log(N)) time –Proof 1 (intuition): At each step, distance between query and peer hosting the object reduces.

RobustnessRobustness

Simulation results: static scenario

Failed lookup means original node with key failed (no replica of keys)

Result implies good balance of keys among nodes!

Page 23: Chord Advanced issues. Analysis Search takes O(log(N)) time –Proof 1 (intuition): At each step, distance between query and peer hosting the object reduces.

StrengthsStrengths

Based on theoretical work (consistent hashing)

Proven performance in many different aspects

“with high probability” proofs

Good tolerance to random node failures

Page 24: Chord Advanced issues. Analysis Search takes O(log(N)) time –Proof 1 (intuition): At each step, distance between query and peer hosting the object reduces.

WeaknessWeakness

Member join & leave are complicated

aggressive mechanisms requires too many messages and updates

no analysis of convergence in lazy finger mechanism

Key management mechanism mixed between layers

upper layer does insertion and handle node failures

Chord transfer keys when node joins (no leave mechanism!)

Routing table grows with # of members in group

Worst case lookup can be slow

Page 25: Chord Advanced issues. Analysis Search takes O(log(N)) time –Proof 1 (intuition): At each step, distance between query and peer hosting the object reduces.

DiscussionsDiscussions

Network proximity (can we factor in latency?)

Protocol security

Malicious data insertion

Malicious Chord table information

Keyword search

...