14 |
|
|
15 |
.. Affect-PEGs: |
.. Affect-PEGs: |
16 |
|
|
17 |
The purpose of this PEG document is to give short overview of existing |
The purpose of this PEG document is to give a short overview of existing |
18 |
overlays which have an implementation and try to choose the implementation |
overlays which have an implementation and try to choose an implementation |
19 |
which suits best to our needs. |
that suits best to our needs. |
20 |
|
|
21 |
The reason for creating this PEG document is that, quite recently, we have |
The reason for creating this PEG document is that, quite recently, we have |
22 |
noticed that the current implementation of GISP [5]_ seems to |
noticed that the current implementation of GISP [5]_ seems to |
23 |
have many obvious security exploits. This indiciates that GISP is in early |
have (too) many obvious security exploits. This indiciates that GISP is in early |
24 |
phase of development. Therefore, we need to examine other |
phase of development. Therefore, we need to examine other |
25 |
available overlays which have a implementation in hope for finding a more |
available overlays which have an implementation in hope for finding a more |
26 |
mature tightly structured P2P platform. |
mature tightly structured P2P platform. |
27 |
|
|
28 |
The list of implemented overlays is of as of June 2003. |
The list of implemented overlays is of as of June 2003. |
30 |
Issues |
Issues |
31 |
====== |
====== |
32 |
|
|
33 |
How "heavy" the current implementation of Tapestry is (~57000 lines of |
.. nothing yet. |
|
Java code)? And therefore, does Tapestry consume too much memory? |
|
34 |
|
|
35 |
Terms |
Terms |
36 |
===== |
===== |
90 |
What programming language is used to program a software. |
What programming language is used to program a software. |
91 |
|
|
92 |
License |
License |
93 |
Which license is used with a software. |
Under what license a software is distributed. |
94 |
|
|
95 |
Other notes |
Other notes |
96 |
Other miscellaneous notes. |
Other miscellaneous notes. |
125 |
C++ (GCC 2.95, not 2.96, although 3.x should work) |
C++ (GCC 2.95, not 2.96, although 3.x should work) |
126 |
|
|
127 |
Additional requirements |
Additional requirements |
128 |
* Self-certifying File System (http://fs.net) |
* Self-certifying File System (http://sfs.net) |
129 |
* autoconf, automake, etc. |
* autoconf, automake, etc. |
130 |
* Berkeley DB 3.X |
* Berkeley DB 3.X |
131 |
|
|
133 |
BSD-like |
BSD-like |
134 |
|
|
135 |
Other notes |
Other notes |
136 |
No support for network locality- do not take network latencies into account |
No support for network locality- do not take network latencies into account. |
137 |
|
|
138 |
Includes a Chord [1]_ simulator |
Includes a Chord [1]_ simulator. |
139 |
|
|
140 |
According to the Chord [1]_ website: |
According to the Chord [1]_ website: |
141 |
|
|
142 |
"At this point no official release for |
At this point no official release for |
143 |
Chord is available, but you are welcome to check out the latest version |
Chord is available, but you are welcome to check out the latest version |
144 |
from the CVS repository. This version is experimental, under active |
from the CVS repository. This version is experimental, under active |
145 |
development, and may frequently be broken." |
development, and may frequently be broken. |
146 |
|
|
147 |
Tapestry [2]_ |
Tapestry [2]_ |
148 |
-------------- |
-------------- |
154 |
According to `Tapestry: A Resilient Global-scale Overlay for Service |
According to `Tapestry: A Resilient Global-scale Overlay for Service |
155 |
Deployment`_: |
Deployment`_: |
156 |
|
|
157 |
"Tapestry is highly resilient under dynamic conditions, |
Tapestry is highly resilient under dynamic conditions, |
158 |
providing a near optimal success rate for requests |
providing a near optimal success rate for requests |
159 |
under high churn rates, and quicly recovering from |
under high churn rates, and quicly recovering from |
160 |
massive membership events in under a minute." |
massive membership events in under a minute. |
161 |
|
|
162 |
According to the Tapestry [2]_ website: |
According to the Tapestry [2]_ website: |
163 |
|
|
178 |
Replication, backup links |
Replication, backup links |
179 |
|
|
180 |
Fault tolerance against hostile nodes |
Fault tolerance against hostile nodes |
181 |
* PKI is used while creating node identifiers. |
* PKI is used while creating node identifiers |
182 |
* MACs are used to maintain integrity of overlay traffic. |
* MACs are used to maintain integrity of overlay traffic |
183 |
|
* Monitoring system for maintaining neighbor links |
184 |
|
|
185 |
Activity of development |
Activity of development |
186 |
Very active. |
Very active. |
280 |
|
|
281 |
Activity of development |
Activity of development |
282 |
Java development discontinued, C++ version |
Java development discontinued, C++ version |
283 |
is under development |
is under development. |
284 |
|
|
285 |
Developer |
Developer |
286 |
New York University (research community) |
New York University (research community). |
287 |
|
|
288 |
Language |
Language |
289 |
Java (Sun JDK 1.3 or a compatible Java Development and Runtime environment (?)) |
Java (Sun JDK 1.3 or a compatible Java Development and Runtime environment (?)) |
301 |
DHT_/DOLR_ |
DHT_/DOLR_ |
302 |
|
|
303 |
Redundancy |
Redundancy |
304 |
(undefined) |
Backup links. |
305 |
|
|
306 |
Fault tolerance against hostile nodes |
Fault tolerance against hostile nodes |
307 |
(undefined) |
(undefined) |
346 |
Chord [1]_-like. |
Chord [1]_-like. |
347 |
|
|
348 |
Fault tolerance against hostile nodes |
Fault tolerance against hostile nodes |
349 |
Weak (the current implementation), not known |
Based on our initial experiments, the fault tolerance |
350 |
(the current protocol specification) |
is relatively weak. |
351 |
|
|
352 |
Activity of development |
Activity of development |
353 |
(undefined) |
Quite active. |
354 |
|
|
355 |
Developer |
Developer |
356 |
Daishi Kato (software engineering community) |
Daishi Kato (software engineering community) |
362 |
Sun Project JXTA License Version 1.1 |
Sun Project JXTA License Version 1.1 |
363 |
|
|
364 |
Other notes |
Other notes |
365 |
Uses 10x more cache as Chord [1]_ for routing table |
Uses 10x more cache as Chord [1]_ for routing table. |
366 |
|
|
367 |
Includes a GISP [5]_ simulator |
Includes a GISP [5]_ simulator. |
368 |
|
|
369 |
Circle [6]_ |
Circle [6]_ |
370 |
----------- |
----------- |
395 |
|
|
396 |
According to Info-Anarchy Wiki: |
According to Info-Anarchy Wiki: |
397 |
|
|
398 |
"Problems are: The DHT implementation is |
Problems are: The DHT implementation is |
399 |
vulnerable to denial of service attacks." |
vulnerable to denial of service attacks. |
400 |
|
|
401 |
Khashmir [7]_ |
Khashmir [7]_ |
402 |
------------- |
------------- |
410 |
Fault tolerance against hostile nodes |
Fault tolerance against hostile nodes |
411 |
According to the authors: |
According to the authors: |
412 |
|
|
413 |
"Note that Khashmir currently isn't very |
Note that Khashmir currently isn't very |
414 |
attack resistant." |
attack resistant. |
415 |
|
|
416 |
Activity of development |
Activity of development |
417 |
Not active (?) |
Not active |
418 |
|
|
419 |
The current version is "3 - Alpha" (2002-09-02) |
The current version is "3 - Alpha" (2002-09-02) |
420 |
|
|
579 |
Changes |
Changes |
580 |
======= |
======= |
581 |
|
|
582 |
- (possible) reject gisp, choose new overlay |
Based on this PEG document we recommend using Tapestry [2]_ with Storm. The |
583 |
- (possible) develop a abstraction (i.e., p2p-plugin system) which allows |
reasons are: |
584 |
Storm to change lookup layer easily |
|
585 |
|
- maturity of the implementation (the most important aspect) |
586 |
|
- activity of development |
587 |
|
- the license |
588 |
|
|
589 |
|
|
590 |
|
|
591 |
|
|
592 |
.. [1] http://www.pdos.lcs.mit.edu/chord/ |
.. [1] http://www.pdos.lcs.mit.edu/chord/ |
593 |
.. [2] http://www.cs.berkeley.edu/~ravenben/tapestry/ |
.. [2] http://www.cs.berkeley.edu/~ravenben/tapestry/ |