386 |
to implement identifier space. |
to implement identifier space. |
387 |
|
|
388 |
To store data into tightly structured overlay, each application-specific |
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 |
key is \emph{mapped} by the overlay to a existing peer in the overlay. Thus, tightly |
390 |
peer in the structured overlay maintains a \emph{routing table}, which consists |
structured overlay assigns a subset of all possible keys to every participating peer. |
391 |
of identifiers and IP addresses of other peers in the overlay. These are peer's |
Furtermore, each peer in the structured overlay maintains a \emph{routing table}, |
392 |
neighbors in the overlay network. Figure \ref{fig:structured_hashing} |
which consists of identifiers and IP addresses of other peers in the overlay. |
393 |
|
These are peer's neighbors in the overlay network. Figure \ref{fig:structured_hashing} |
394 |
illustrates the process of data to key mapping in tightly strucuted overlays. |
illustrates the process of data to key mapping in tightly strucuted overlays. |
395 |
|
|
396 |
\begin{figure} |
\begin{figure} |
420 |
must be constructed and maintained adaptively. |
must be constructed and maintained adaptively. |
421 |
|
|
422 |
Currently, all proposed tightly structured overlays provide at least |
Currently, all proposed tightly structured overlays provide at least |
423 |
poly-logaritmical data lookup operations. However, there are some key |
poly--logaritmical data lookup operations. However, there are some key |
424 |
differences in routing algoritms. For example, Chord, Skip graphs and |
differences in routing algoritms. For example, Chord, Skip graphs and |
425 |
Skipnet maintain a local data structure which resembles skip lists \cite{78977}. |
Skipnet maintain a local data structure which resembles skip lists \cite{78977}. |
426 |
In figure \ref{fig:structured_query}, we present overview of Chord's lookup process. |
In figure \ref{fig:structured_query}, we present overview of Chord's lookup process. |
427 |
On the left side of Chord's lookup process, we show the same data lookup process |
On the left side of Chord's lookup process, we show the same data lookup process |
428 |
as binary-tree abstraction. We can notice, that in each step, the distance between |
as binary-tree abstraction. We can notice, that in each step, the distance between |
429 |
the query originator and the target in both methods is halved. Thus, the |
the query originator and the target in both methods is halved. Thus, the |
430 |
locarithmic efficiency. Kademlia, Pastry and Tapestry uses balanced tree-like |
locarithmic efficiency. |
431 |
|
|
432 |
|
Kademlia, Pastry and Tapestry uses balanced tree-like |
433 |
data structures. Figure \ref{fig:kademlia_lookup} shows the process of Kademlia |
data structures. Figure \ref{fig:kademlia_lookup} shows the process of Kademlia |
434 |
data lookup. Viceroy maintains a butterfly data structure, which requires |
data lookup. Viceroy maintains a butterfly data structure, which requires |
435 |
only constant number of neighbor peers while providing $O(\log{n})$ data lookup |
only constant number of neighbor peers while providing $O(\log{n})$ data lookup |
436 |
efficiency. Koorde, recent modification of Chord, uses de Bruijn graphs to maintain |
efficiency. Koorde, recent modification of Chord, uses de Bruijn graphs to maintain |
437 |
local routing tables. Koorde requires each peer to have only about two links to other |
local routing tables. Koorde requires each peer to have only about two links to other |
438 |
peers to to provide $O(\log{n})$ performance. |
peers to to provide $O(\log{n})$ performance. Peernet |
439 |
|
|
440 |
\begin{figure} |
\begin{figure} |
441 |
\centering |
\centering |
453 |
\end{figure} |
\end{figure} |
454 |
|
|
455 |
|
|
456 |
|
Chord example ? |
457 |
|
|
458 |
|
abstraction: DHT, DOLR, multicast/anycast |
459 |
|
|
460 |
|
|
461 |
-service is data block, node/peer is a physical computer |
-service is data block, node/peer is a physical computer |
462 |
-*servers* self-organize towards a lookup network |
-*servers* self-organize towards a lookup network |
539 |
|
|
540 |
\subsection{Protocols} |
\subsection{Protocols} |
541 |
|
|
|
Measures: |
|
542 |
|
|
|
degree: |
|
|
|
|
|
hop count: |
|
|
|
|
|
fault-tolerance |
|
|
|
|
|
maintenance overhead |
|
|
|
|
|
load balance |
|
543 |
|
|
544 |
|
|
545 |
|
|
617 |
|
|
618 |
\section{Summary} |
\section{Summary} |
619 |
|
|
620 |
|
Measures: |
621 |
|
|
622 |
|
degree: |
623 |
|
|
624 |
|
hop count: |
625 |
|
|
626 |
|
fault-tolerance |
627 |
|
|
628 |
|
maintenance overhead |
629 |
|
|
630 |
|
load balance |
631 |
|
|
632 |
|
|
633 |
\subsection{Differences} |
\subsection{Differences} |
634 |
|
|