/[storm]/storm/doc/pegboard/available_overlays--hemppah/peg.rst
ViewVC logotype

Diff of /storm/doc/pegboard/available_overlays--hemppah/peg.rst

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.29 by hemppah, Mon Jul 28 09:10:55 2003 UTC revision 1.30 by hemppah, Mon Jul 28 11:58:28 2003 UTC
# Line 15  PEG available_overlays--hemppah: Availab Line 15  PEG available_overlays--hemppah: Availab
15  .. Affect-PEGs:  .. Affect-PEGs:
16    
17  The purpose of this PEG document is to give a 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 an implementation  overlays which have an open source implementation.
 that suits best to our needs.  
19    
20  The reason for creating this PEG document is that, quite recently, we have  The reason for creating this PEG document is that the current implementation
21  noticed that the current implementation of GISP [5]_  seems to  of GISP [5]_ seems to have (too) many obvious security exploits. For us this
22  have (too) many obvious security exploits. This indiciates that GISP is in early  indiciates that GISP is in early phase of development. Therefore we need to
23  phase of development. Therefore, we need to examine other  examine other available overlays which have an implementation in hope for
24  available overlays which have an implementation in hope for finding a more  finding a more mature tightly structured P2P platform.
 mature tightly structured P2P platform.  
25    
26  The list of implemented overlays is of as of June 2003.  The list of implemented overlays is as of July 2003.
27    
28  Issues  Issues
29  ======  ======
# Line 87  Developer Line 85  Developer
85      Who is developing a software.      Who is developing a software.
86    
87  Language  Language
88      What programming language is used to program a software.      What programming language is used to program a software + additional
89        software packages which are required.
90    
91  License  License
92      Under what license a software is distributed.      Under what license a software is distributed.
# Line 98  Other notes Line 97  Other notes
97  Implemented overlays  Implemented overlays
98  ====================  ====================
99    
100  .. a "reST" table is created when text editing finished for this section  In this section we list the structured P2P overlays which have been implemented.
101    Please notice that features described for each implementation are deliberately
102    kept short. For more depth information about the *design* of the overlay see
103    the original publications.
104    
105  Chord [1]_  Chord [1]_
106  ----------  ----------
# Line 115  Fault tolerance against hostile nodes Line 117  Fault tolerance against hostile nodes
117  Activity of development  Activity of development
118      Quite high.      Quite high.
119    
120      Currently, no official release for Chord [1]_ is available. However,      According to the Chord [1]_ website:
121      nightly snapshots are available.  
122            At this point no official release for
123            Chord is available, but you are welcome to check out the latest version
124            from the CVS repository. This version is experimental, under active
125            development, and may frequently be broken.
126    
127  Developer  Developer
128      MIT (research community)      MIT (research community)
# Line 136  Other notes Line 142  Other notes
142      No support for network locality- do not take network latencies into account.      No support for network locality- do not take network latencies into account.
143    
144      Includes a Chord [1]_ simulator.      Includes a Chord [1]_ simulator.
145        
     According to the Chord [1]_ website:  
   
         At this point no official release for  
         Chord is available, but you are welcome to check out the latest version  
         from the CVS repository. This version is experimental, under active  
         development, and may frequently be broken.  
146    
147  Tapestry [2]_  Tapestry [2]_
148  --------------  --------------
# Line 175  Redundancy Line 175  Redundancy
175          protocols to route messages around failures, providing successful          protocols to route messages around failures, providing successful
176          delivery with high probability if a path between the endpoints exists.          delivery with high probability if a path between the endpoints exists.
177    
178          Replication, backup links      
   
179  Fault tolerance against hostile nodes  Fault tolerance against hostile nodes
180      * PKI is used while creating node identifiers      * PKI is used while creating node identifiers
181      * MACs are used to maintain integrity of overlay traffic      * MACs are used to maintain integrity of overlay traffic
182      * Monitoring system for maintaining neighbor links      * Monitoring system for maintaining neighbor links
183    
184  Activity of development  Activity of development
185      Very active.      Active.
186    
187      Tapestry  1.0 (April 2002)      Tapestry  1.0 (April 2002)
188    
189      According to the Tapestry [2]_ website::      According to the Tapestry [2]_ website::
190    
         Tapestry 2.0 is coming soon, with support  
         for massively parallel insertions, voluntary deletions,  
         and a distributed test framework.  
       
191          Tapestry Version 1.0 contains the following functionality:          Tapestry Version 1.0 contains the following functionality:
192    
193          * Basic Tapestry Java code running on the SEDA stage-driven event model          * Basic Tapestry Java code running on the SEDA stage-driven event model
# Line 244  Language Line 239  Language
239      release).      release).
240    
241  Additional requirements  Additional requirements
242      * The Cryptix JCE library (included with the 1.0 release)      * The Cryptix JCE library (included with the 2.0 release)
243      * UNIX make program      * UNIX make program
244      * The Java interface libraries for the BerkeleyDB database      * The Java interface libraries for the BerkeleyDB database
245        (included with the 1.0 release)        (included with the 2.0 release)
246          
247  License  License
248      BSD-like      BSD-like
249    
250  Other notes  Other notes
251      Support for network locality.      Support for network locality when building neighbor links.
   
     According to the Tapestry [2]_ website:  
   
        "Tapestry is the networking substrate of  
         OceanStore_, a storage system aiming to provide global-scale persistent and  
         secure storage."  
252    
253      Why Oceanstore_ uses Tapestry [2]_?      Why Oceanstore_ uses Tapestry [2]_?
254      See http://www.oceanstore.org/info/whytapestry.html      See http://www.oceanstore.org/info/whytapestry.html
# Line 271  Abstraction Line 260  Abstraction
260      DHT_      DHT_
261    
262  Redundancy  Redundancy
263      No simulations or test performed.      No simulation or test results published (not even in the original publication)
264      In theory, however, the "free-choice" feature      In *theory*, however, the "free-choice" feature
265      gives peers freedom to adapt different conditions.      gives peers freedom to adapt different conditions. However, the
266        author of SharkyPy says:
267        
268            Kademlia has (in my taste, that's why I decided to drop it) a bad
269            hole which makes it's use in remote querying for packets pretty useless:
270            When you have key->value mappings, which have an equal key, in even in
271            semi-large networks it gets very unprobable that you get all mappings,
272            the more hosts there are, the less probable it is, and the more mappings
273            there are, the less probable it is too. I've tried to remedy this in a
274            later implementation, at the cost of lookup speed, but have never
275            managed to get all entries when the network had over 100 nodes. (the
276            later implementation is based on my own server-framework and uses no
277            threads, btw.) This made it unusable for me, as basically I basically
278            had to change the lookup-algorithm to query all nodes (back to gnutella,
279            then...), to get all answers. And that's what is important in the
280            network I designed it for.
281    
282    
283  Fault tolerance against hostile nodes  Fault tolerance against hostile nodes
284      Nothing said, expect the "free-choice" feature.      Nothing said, expect the "free-choice" feature.
# Line 292  License Line 297  License
297      GPL (Java), "Free for non-commercial use" (C++)      GPL (Java), "Free for non-commercial use" (C++)
298    
299  Other notes  Other notes
300      (none)          The implementation of the Java version is discontinued.
301    
302  Pastry [4]_  Pastry [4]_
303  -----------  -----------
304    
305  Abstraction  Abstraction
306      DHT_/DOLR_      DHT_
307    
308  Redundancy  Redundancy
309     Backup links.     Backup links.
310    
311  Fault tolerance against hostile nodes  Fault tolerance against hostile nodes
312     (undefined)     Accordin to the release notes of 1.2, "Security support does not exist in
313        this release. Therefore, the  software should only be run in trusted
314        environments. Future releases will include security."
315    
316  Activity of development  Activity of development
317      Current release is 1.2 (January 28, 2003)      Active
318        
319        Current release is 1.3 (July 23, 2003)
320    
321      According to the Pastry [4]_ website:      According to the Pastry [4]_ website:
322    
# Line 330  Other notes Line 339  Other notes
339      Support for network locality - Pastry [4]_ actively replicates the objects and      Support for network locality - Pastry [4]_ actively replicates the objects and
340      places them at random locations in the network. Result: When locating      places them at random locations in the network. Result: When locating
341      nearby object it might require the client to route to a distant replica of      nearby object it might require the client to route to a distant replica of
342      the object.      the object.
   
     Accordin to the release notes of 1.2, "Security support does not exist in  
     this release. Therefore, the  software should only be run in trusted  
     environments. Future releases will include security."  
343    
344  GISP [5]_  GISP [5]_
345  ---------  ---------
# Line 376  Redundancy Line 381  Redundancy
381      Not-known      Not-known
382    
383  Fault tolerance against hostile nodes  Fault tolerance against hostile nodes
384      Not-known      According to Info-Anarchy Wiki:
385    
386            Problems are: The DHT implementation is
387            vulnerable to denial of service attacks.
388    
389  Activity of development  Activity of development
390      Active, the current version is 0.35 (30 May 2003)      Active, the current version is 0.35 (30 May 2003)
# Line 391  License Line 399  License
399      GPL      GPL
400    
401  Other notes  Other notes
402      Uses MD5 hashes.      Uses MD5 hashes for generating IDs.
403        
     According to Info-Anarchy Wiki:  
   
         Problems are: The DHT implementation is  
         vulnerable to denial of service attacks.  
404    
405  Khashmir [7]_  Khashmir [7]_
406  -------------  -------------
# Line 574  License Line 578  License
578      LGPL      LGPL
579    
580  Other notes  Other notes
581      (none)      According to the author of SharkyPy:
582        
583            This implementation is heavily based on threads, which makes it
584            pretty resource-intensive on the computer it is running on. I never
585            intended it to serve more than 30-40 clients, so this didn't matter to
586            me. When you use it as a P2P network backend, things will certainly look
587            different.
588    
589  Changes  Changes
590  =======  =======
591    
592  Based on this PEG document we recommend using Tapestry [2]_ with Storm. The  Based on this PEG document we recommend using Tapestry's implementation with
593  reasons are:  Storm. The reasons are:
594    
595  - maturity of the implementation (the most important aspect)  - the maturity of the implementation
 - activity of development  
596  - the license  - the license
597    - the activity of development
598    
599    For detailed changes and information about using Tapestry with Storm, please
600    see `storm_with_tapestry--hemppah` PEG document.
601    
602    
603  .. [1] http://www.pdos.lcs.mit.edu/chord/  .. [1] http://www.pdos.lcs.mit.edu/chord/

Legend:
Removed from v.1.29  
changed lines
  Added in v.1.30

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26