Abhishek Kedia & Shonit Chamadia
1
2
3
Split and distribute
Centralized
Distributed
Keys
Values
keys on the same node can be easily accessed
But we need some Routing Mechanism to access keys on other nodes
4
Essential for network-wise indexing of resources (files, etc.)
BTDigg: BitTorrent search engine
cjdns: routing engine for mesh-based networks
Freenet: a censorship-resistant anonymous network
Hazelcast: Open-source in-memory data grid
I2P: An open-source anonymous peer-to-peer network.
I2P-Bote: serverless secure anonymous e-mail.
YaCy: a distributed search engine
Tox: an instant messaging system
Twister: a microblogging peer-to-peer platform
5
6
7
8
d times
9
10
Each peer maintains:
Address of immediate neighboring peers.
11
Peer
Resource
Note - Actually the space wraps onto itself, but that has not been shown for simplicity
12
x
Queries resource with key K
H(k) = (a,b)
(a,b)
Request greedy forwarded neighbor closest to destination
13
If d-dimensional space is partitioned into n equal zones, then
Average Path Length =
By choosing ,we can achieve similar scaling as in CHORD
Network State at some point in time
New Node willing to enter the network
Bootstrap Node
Requests Address
of already existing
node
Responds with address of I
Bootstrap Response I picks a random point P in space
(x,y)
I routes JOIN request to P
On receiving JOIN request zone containing P splits into half
14
On receiving JOIN request zone containing P splits into half
New Node
One half of the new split is assigned to the new node
Splitting node updates its own neighbor list, and also provides information to the new node
Finally both old & new nodes' neighbors must be informed about this relocation
15
These two ensure that all of the neighbors will quickly learn about the change
16
17
18