234 |
\subsection{Tapestry} |
\subsection{Tapestry} |
235 |
Tapestry \cite{zhao01tapestry} is a adaption of Plaxton's algorithm \cite{plaxton97accessingnearby}. Tapestry |
Tapestry \cite{zhao01tapestry} is a adaption of Plaxton's algorithm \cite{plaxton97accessingnearby}. Tapestry |
236 |
routes queries with path lengths of $O(log n)$, and each node, for a systems with $n$ nodes, maintains routing table |
routes queries with path lengths of $O(log n)$, and each node, for a systems with $n$ nodes, maintains routing table |
237 |
size of $O(log n)$. |
size of $O(log n)$. When a node leaves or joins to network, $O(log^2 n)$ messages are required. |
238 |
|
|
239 |
\subsection{Pastry} |
\subsection{Pastry} |
240 |
In Pastry \cite{rowston01pastry}, the key space is considered as a virtual circle. Each node is responsible for keys |
In Pastry \cite{rowston01pastry}, the key space is considered as a virtual circle. Each node is responsible for keys |
241 |
which are closest numerically. The neighbors consist of leaf set, which is the set of $|L|$ closest nodes. In addition, |
which are closest numerically. The neighbors consist of leaf set, which is the set of $|L|$ closest nodes. In addition, |
242 |
Pastry has another set of neighbors randomly spread out in the key space for more efficient routing. As in Plaxton approach, |
Pastry has another set of neighbors randomly spread out in the key space for more efficient routing. As in Plaxton approach, |
243 |
Pastry also forwards the query to the neighbor which have the longest shared prefix of the key. Pastry routes within |
Pastry also forwards the query to the neighbor which have the longest shared prefix of the key. Pastry routes within |
244 |
the pathlength of $O(log n)$ and each node has $O(log n)$ neighbors. |
the pathlength of $O(log n)$, each node has $O(log n)$ neighbors and departure or joining of node requires $(log^2 n)$ messages. |
245 |
|
|
246 |
\subsection{CAN} |
\subsection{CAN} |
247 |
In the CAN model \cite{ratnasamy01can}, nodes are mapped into a virtual $d$-dimensional coordinate key space. Each node |
In the CAN model \cite{ratnasamy01can}, nodes are mapped into a virtual $d$-dimensional coordinate key space. Each node |
248 |
is associated with a hypercubal blocks of this keyspace and every block keeps information on its immediate hypercubal |
is associated with a hypercubal blocks of this keyspace and every block keeps information on its immediate hypercubal |
249 |
neighbors. In CAN, nodes have $O(d)$ neighbors and expected pathlengths are $O(dn^\frac{1}{d})$. Setting |
neighbors. In CAN, nodes have $O(d)$ neighbors and expected pathlengths are $O(dn^\frac{1}{d})$. Node insertion or deletion affects |
250 |
$d = log_2(n)/2$, CAN provides similar scalability as Plaxton approach. |
$O(number of dimensions)$ existing nodes. Setting $d = log_2(n)/2$, CAN provides similar scalability as Plaxton approach. |
251 |
|
|
252 |
\subsection{Chord} |
\subsection{Chord} |
253 |
Chord \cite{stoica01chord} uses virtual circle as the key space. As Pastry, Chord also threats node's neighbors as leaf sets. |
Chord \cite{stoica01chord} uses virtual circle as the key space. As Pastry, Chord also threats node's neighbors as leaf sets. |
254 |
However, in Chord, there are two sets of neighbors: each node has a successor list of k nodes which immediately follows the node |
However, in Chord, there are two sets of neighbors: each node has a successor list of k nodes which immediately follows the node |
255 |
in the key space. For better efficiency, each node has additional finger list of $O(log n)$ nodes placed around the key space. |
in the key space. For better efficiency, each node has additional finger list of $O(log n)$ nodes placed around the key space. |
256 |
In a $n$ node network, each node maintains information about $O(log n)$ neighbors, and a lookup is performed within $O(log n)$ |
In a $n$ node network, each node maintains information about $O(log n)$ neighbors, and a lookup is performed within $O(log n)$ |
257 |
hops. Additionally in Chord, a join or leave requires $O(log^2 n)$ messages. |
hops. Additionally in Chord, a node join or leave requires $O(log^2 n)$ messages. |
258 |
|
|
259 |
|
|
260 |
\subsection{Kademlia} |
\subsection{Kademlia} |