366 |
|
|
367 |
\section{Tightly structured} |
\section{Tightly structured} |
368 |
|
|
369 |
|
In recents months, several tightly structured overlays has been proposed. |
370 |
|
This list includes CAN \cite{ratnasamy01can}, Chord \cite{stoica01chord}, |
371 |
|
Kademlia \cite{maymounkov02kademlia}, Kelips \cite{gupta03kelips}, |
372 |
|
Koorde \cite{kaashoek03koorde}, ODHDHT \cite{naor03simpledht}, |
373 |
|
Pastry \cite{rowston01pastry}, Peernet \cite{eriksson03peernet}, |
374 |
|
Skip Graphs \cite{AspnesS2003}, SkipNet \cite{harvey03skipnet2}, |
375 |
|
Symphony \cite{gurmeet03symphony}, SWAN \cite{bonsma02swan}, Tapestry |
376 |
|
\cite{zhao01tapestry} and Viceroy \cite{malkhi02viceroy}. While there |
377 |
|
are significat differences among proposed systems, they all have in common |
378 |
|
that participating peers are assigned \emph{peer identifiers} from |
379 |
|
a large \emph{identifier space}. Furthermore, application-specific |
380 |
|
data items are also assigned globally unique identifiers, \emph{keys}, |
381 |
|
which are selected from the same identifier space. The form of identifier |
382 |
|
space differs between proposed systems. Circular identifier space (and variants) |
383 |
|
is most widely used. For instance, Chord, Koorde, Pastry, SWAN, Tapestry |
384 |
|
and Viceroy use a circular identifier space of $n$-bit integers modulo $2^{n}$. The |
385 |
|
value of $n$ varies among approaches. Again, CAN uses a $d$-dimensional cartesian |
386 |
|
to implement identifier space. |
387 |
|
|
388 |
|
To store data into tightly structured overlay, each application-specific |
389 |
|
key is \emph{mapped} by the overlay to a existing peer in the overlay. Each |
390 |
|
peer in the structured overlay maintains a \emph{routing table}, which consists |
391 |
|
of identifiers and IP addresses of other peers in the overlay. These are peer's |
392 |
|
neighbors in the overlay network.Figure \ref{fig:structured_hashing} |
393 |
|
illustrates the process of data to key mapping in tightly strucuted overlays. |
394 |
|
|
395 |
|
\begin{figure} |
396 |
|
\centering |
397 |
|
\includegraphics[width=12cm, height=6cm]{structured_overlay.eps} |
398 |
|
\caption{Basic idea of structured overlay} |
399 |
|
\label{fig:structured_hashing} |
400 |
|
\end{figure} |
401 |
|
|
402 |
|
All messages are routed across overlay links towards peers, whose |
403 |
|
peer identifier is gradually ''closer'' to the key's identifier |
404 |
|
in the identifier space. Distance can be measured by numerical |
405 |
|
difference between identifiers (e.g., Chord), the number of |
406 |
|
same prefix bits between identifiers (e.g., Pastry and Tapestry), |
407 |
|
bit-wise exclusive or (XOR) (e.g., Kademlia). However, in all |
408 |
|
previously schemes, each hop in the overlay shortens the path |
409 |
|
between current peer working with query and the key which was |
410 |
|
looked up. |
411 |
|
|
412 |
|
|
413 |
|
|
414 |
-service is data block, node/peer is a physical computer |
-service is data block, node/peer is a physical computer |
415 |
-*servers* self-organize towards a lookup network |
-*servers* self-organize towards a lookup network |
416 |
-DHTs can be thought as a 'structured overlay random graphs' |
-DHTs can be thought as a 'structured overlay random graphs' |
505 |
load balance |
load balance |
506 |
|
|
507 |
|
|
|
\cite{zhao01tapestry} |
|
508 |
|
|
|
\cite{rowston01pastry} |
|
509 |
|
|
|
\cite{stoica01chord} |
|
510 |
|
|
|
\cite{ratnasamy01can} |
|
|
|
|
|
\cite{maymounkov02kademlia} |
|
511 |
|
|
512 |
\cite{freedman02trie} |
\cite{freedman02trie} |
513 |
|
|
514 |
\cite{plaxton97accessingnearby} |
\cite{plaxton97accessingnearby} |
515 |
|
|
|
\cite{malkhi02viceroy} |
|
516 |
|
|
|
\cite{bonsma02swan} |
|
517 |
|
|
518 |
\cite{AspnesS2003} |
|
519 |
\cite{78977} |
\cite{78977} |
520 |
|
|
|
\cite{gurmeet03symphony} |
|
521 |
|
|
|
\cite{eriksson03peernet} |
|
522 |
|
|
523 |
\cite{harvey03skipnet2} |
|
524 |
|
|
525 |
|
|
526 |
\cite{garciamolina03sil} |
\cite{garciamolina03sil} |
533 |
|
|
534 |
\cite{pias03lighthouse} |
\cite{pias03lighthouse} |
535 |
|
|
|
\cite{naor03simpledht} |
|
536 |
|
|
|
\cite{gupta03kelips} |
|
|
|
|
|
\cite{kaashoek03koorde} |
|
537 |
\cite{debruijn46graph} |
\cite{debruijn46graph} |
538 |
|
|
539 |
|
|
573 |
|
|
574 |
\cite{kubiatowicz00oceanstore} |
\cite{kubiatowicz00oceanstore} |
575 |
|
|
|
\begin{figure} |
|
|
\centering |
|
|
\includegraphics[width=10cm, height=6cm]{structured_overlay.eps} |
|
|
%\includegraphics[width=10cm, height=6cm]{structured_query.eps} |
|
|
\caption{Basic idea of structured overlay} |
|
|
\label{fig:structured_hashing} |
|
|
\end{figure} |
|
576 |
|
|
577 |
|
|
578 |
|
|