Documente Academic
Documente Profesional
Documente Cultură
Chord Characteristics
DNS
imposes no naming
structure
names reflect
administrative boundaries
is specialized to finding
named hosts or services
Freenet
does not assign responsibility for documents to specific
servers, instead lookups are searches for cached copies
+ allows Freenet to provide anonymity
Chord
does not provide anonymity
+ but its lookup operation runs in predictable time and always
results in success or definitive failure
Block Store
Block Store
Chord
Chord
Chord
Client
Server
Server
10
11
Consistent Hashing
ID(key) = hash(key)
12
Successor Nodes
identifier
node
6
1
successor(6) = 0
identifier
circle
6
5
key
successor(1) = 1
successor(2) = 3
3
4
13
successor(6) = 7
7
6
successor(1) = 3
2
5
3
4
2 1
14
15
Acceleration of Lookups
s = successor(n + 2i-1)
16
[1,2)
[2,4)
[4,0)
1
3
0
finger table
start int.
0
7
succ.
keys
6
2
3
5
[2,3)
[3,5)
[5,1)
succ.
keys
1
3
3
0
2
5
3
4
finger table
start int.
4
5
7
[4,5)
[5,7)
[7,3)
succ.
keys
2
0
0
0
17
18
[1,2)
[2,4)
[4,0)
finger table
start int.
7
0
2
[7,0)
[0,2)
[2,6)
keys
succ.
0
0
3
1
3
0
6
finger table
start int.
0
7
succ.
keys
6
2
3
5
[2,3)
[3,5)
[5,1)
succ.
keys
1
3
3
0
6
2
5
3
4
finger table
start int.
4
5
7
[4,5)
[5,7)
[7,3)
succ.
keys
2
6
0
6
0
0
19
[1,2)
[2,4)
[4,0)
finger table
start int.
7
0
2
[7,0)
[0,2)
[2,6)
succ.
0
0
3
keys
6
succ.
3
1
3
0
6
finger table
start int.
0
7
keys
2
3
5
[2,3)
[3,5)
[5,1)
succ.
keys
1
3
3
0
6
2
5
3
4
finger table
start int.
4
5
7
[4,5)
[5,7)
[7,3)
succ.
keys
2
6
6
0
20
Source of Inconsistencies:
Concurrent Operations and Failures
21
n joins
pred(ns) = n
nil
np
succ(np) = ns
succ(np) = n
pred(ns) = np
ns
predecessor = nil
n acquires ns as successor via some n
n notifies ns being the new
predecessor
ns acquires n as its predecessor
np runs stabilize
np notifies n
22
Failure Recovery
23
24
Experimental Results
25