/[gzz]/manuscripts/pointers/article.rst
ViewVC logotype

Diff of /manuscripts/pointers/article.rst

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

revision 1.75 by benja, Sun Nov 2 13:00:23 2003 UTC revision 1.76 by benja, Sun Nov 2 18:46:50 2003 UTC
# Line 2  Line 2 
2  What's missing: Why isn't the Web running over P2P?  What's missing: Why isn't the Web running over P2P?
3  ===================================================  ===================================================
4    
 .. META:  
   
    (tentative title)  
   
    Title suggestions and comments:  
   
    should somehow say "Versioning on top of a simple basic model"...  
    Totally **distributed** versioning  
    Works even in ad hoc environments  
    ...  
   
    Interoperability between P2P systems  
   
    Important issue: the main message. Is it:  
   
     This is a nice way to do versioning  
   
     This is a distributed block-based versioning system  
   
     This is a distributed block-based system for getting the WWW static pages  
     feature set from P2P  
   
     This is a way to avoid web rot (the Cassini-Huygens thing) by allowing  
     storage of old versions (this is VERY different from the location-independent  
     web name... more like a side effect)  
   
     This is a way to do an ad hoc networking web  
   
   
    The MAIN goal of this work remains unclear and needs  
    discussion. I think our getting this paper in depends on exactly that:  
    a CLEAR main goal, a good presentation that will generate discussion.  
   
    REAL:  
5    
6  Abstract  Abstract
7  ========  ========
# Line 66  To find the newest version, we look for Line 32  To find the newest version, we look for
32  This way, versions of a document  This way, versions of a document
33  stay available as long as anybody keeps a copy.  stay available as long as anybody keeps a copy.
34    
35  We also present a simple model for storing only the  .. We also present a simple model for storing only the
36  differences between versions.     differences between versions.
37    
38  ..  raw:: latex  ..  raw:: latex
39    
# Line 169  Thus, in these systems, when the origina Line 135  Thus, in these systems, when the origina
135  and stops publishing a page, it disappears, even if  and stops publishing a page, it disappears, even if
136  someone else would have kept a copy.  someone else would have kept a copy.
137    
 .. <<<In file-sharing systems, versioning  
    would be useful for media files like the e-books  
    distributed by Project Gutenberg [XXXref], which  
    are occasionally updated to fix typographic errors.>>>  
   
 .. Standing on the shoulders of giants: Example of Web links rotting away  
   
138  This is an important concern.  This is an important concern.
139  In 1997, NASA launched the Cassini-Huygens spacecraft  In 1997, NASA launched the Cassini-Huygens spacecraft
140  on a mission to Saturn. Before the launch, the mission  on a mission to Saturn. Before the launch, the mission
# Line 198  if the shoulders keep rotting away? Line 157  if the shoulders keep rotting away?
157  alleviates these concerns, but it introduces  alleviates these concerns, but it introduces
158  a single point of failure for the *entire* Web!)  a single point of failure for the *entire* Web!)
159    
 .. Links shouldn't break when documents move or  
    publishers lose interest  
   
 .. <<<There are two reasons for broken links: Either the original  
    publisher has moved the target document to a new address,  
    or they have stopped publishing it, usually because keeping  
    up a Web page requires some amount of maintenance and they  
    have lost interest.>>>  
   
160  .. <<<We don't propose that every byte of information ever published  .. <<<We don't propose that every byte of information ever published
161     on the Web has to be kept around forever. However,     on the Web has to be kept around forever. However,
162     we do believe that as long as someone does keep a copy,     we do believe that as long as someone does keep a copy,
163     data should remain accessible, like in a file-sharing system,     data should remain accessible, like in a file-sharing system,
164     and links should continue to work.>>>     and links should continue to work.>>>
165    
 .. Location-independent, semantic-free, *self-verifying*  
    identifiers (ref SFR paper [balakrishnan03semanticfree]_,  
    [walfish03dns]_); example: hash-based (ref  
    ``hash`` URN namespace Internet-Draft; ref Freenet & others)  
   
    History of location-dependence: `TBL ref`_ (like in HT'03 paper)  
   
 .. <<<This can be accomplished by replacing URIs that include  
    a server name by URIs that are  
   
    - location-independent: do not refer to a particular server  
      that the file is to be downloaded from;  
    - semantic-free: don't include human-readable information;  
      if an identifier is semantic-free, there is no incentive  
      to change it when a site is re-designed;  
    - self-verifying: after downloading an alleged copy of a document,  
      there is a cryptographical algorithm to test whether  
      this is *really* a copy of this document.>>>  
   
 .. <<<In 1996, Tim Berners-Lee [name-myth]_ argued that  
    using location-independent, semantic-free identifiers  
    is not viable on a global scale:  
    "[I]f you put information in a name, it decreases its longevity;  
    if you don't you can't dereference it to a resource.">>>  
   
 .. <<<However, as observed in [fallenstein03storm]_,  
    with the advent of efficient peer-to-peer lookup mechanisms such as  
    distributed hashtables (DHTs), this observation  
    is no longer true. A DHT is quite able to resolve a  
    hash-based identifier on a global scale,  
    as evidenced by applications like the Cooperative  
    File System (CFS, [dabek01widearea]_) and  
    the Overnet file sharing client [overneturl]_.>>>  
   
 .. SFR (semantic-free referencing) not all that close,  
    though semantic-free idea shared (SFR takes along  
    many problems of the Web)  
   
 .. <<<(Using DHTs  
    to resolve location-independent identifiers on the Web  
    has been proposed by Balakrishnan et.al.  
    [balakrishnan03semanticfree-andalso-walfish03dns]_.  
    However, in their work, the location-independent identifier  
    merely points to a Web server administered by the publisher  
    of a Web page; if the original publisher discontinues  
    maintenance of the page, it would still drop off the Web.)>>>  
   
    XXX move to related work?  
   
 .. Proposal: A location-independent Web <<<(closest thing is Freenet (ref))>>>  
   
 .. <<<The project that is currently closest to this goal is Freenet,  
    a XXX>>>  
   
 .. Benefits of hash-based addressing:  
    - Pages easily movable between servers  
    - Data accessible as long as anyone keeps a copy  
    - Load balancing (download from everyone who has a copy)  
    - Can use one addressing scheme with different protocols,  
      searching different networks for the content behind a hash  
    - Verifiable  
    - Same namespace for local and for non-local data  
   
166  .. <<<Other projects exploit some of the advantages of hash-based  .. <<<Other projects exploit some of the advantages of hash-based
167     (storage systems: CFS, PAST; web caching: Squirrel),     (storage systems: CFS, PAST; web caching: Squirrel),
168     but don't address the Web.>>>     but don't address the Web.>>>
169    
 .. <<<The infrastructure behind CFS, PAST and Squirrel: Peer-to-Peer>>>  
   
 .. <<<Quite recently, several Peer-to-Peer architectures have been  
    proposed that use hash-based, loc.ind. ids>>>  
   
170  .. Possibility of desktop integration in ways that the location-dependent  .. Possibility of desktop integration in ways that the location-dependent
171     Web cannot archieve, through the novel combination of     Web cannot archieve, through the novel combination of
172     network transparency and location independence (ref ourselves).     network transparency and location independence (ref ourselves).
173    
 .. However, there's a problem with this: versioning -----  
    Basic problem: Hash-based addressing allows no updates  
   
 .. Contributions; structure of this paper ----  
   
 .. Main contrib: Pointer records for implementing updating  
   
174  The main contribution of our paper are *pointer records*,  The main contribution of our paper are *pointer records*,
175  a versioning mechanism which is similar to Oceanstore's heartbeats,  a versioning mechanism which is similar to Oceanstore's heartbeats,
176  but makes the clients download and store the pointer records  but makes the clients download and store the pointer records
# Line 335  could be originally edited in Oceanstore Line 210  could be originally edited in Oceanstore
210  in Gnutella or a DHT-based system, using an anonymized system  in Gnutella or a DHT-based system, using an anonymized system
211  like Achord [XXXref] if it contains controversial content.  like Achord [XXXref] if it contains controversial content.
212    
 .. Other contribs:  
    - The idea of a location-independent Web including  
      location-independent version management  
    - Diffs  
   
213  An additional contribution of this paper is XXX diffs  An additional contribution of this paper is XXX diffs
214    
 .. Structure of this paper  
   
215  The remainder of this paper is structured as follows.  The remainder of this paper is structured as follows.
216  In Section 2, we introduce pointer records.  In Section 2, we introduce pointer records.
217  In Section 3, we propose a simple, hash-based data model  In Section 3, we propose a simple, hash-based data model
218  that can be used by P2P Web servers and clients.  that can be used by P2P Web servers and clients.
219  In Section 4, we introduce a scheme for storing only  In Section 4 we discuss other possible applications
220  the differences between versions, built on our basic  of pointer records, and Section 5 gives an overview of our
221  data model. In Section 5 we discuss other possible applications  implementation. Section 6 concludes.
222  of pointer records, and Section 6 gives an overview of our  
223  implementation. Section 7 concludes.  .. In Section 4, we introduce a scheme for storing only
224       the differences between versions, built on our basic
225       data model.
   
 .. Related work  
    ============  
   
    In this section, we briefly summarize how existing peer-to-peer  
    systems deal with versioning. We have tried to classify peer-to-peer  
    system into four different categories based on their versioning  
    model below. We conclude that existing peer-to-peer do not provide all the  
    benefits of hash-based addressing scheme.  
   
     
    No versioning model  
    -------------------  
   
    PAST [rowstron01storage]_ is a persistent storage system  
    that uses pastry [rowston01pastry]_  
    for locating data in a Peer-to-Peer environment.  
    Nodes and data items are distributed uniformly based on the hash  
    identifier in a PAST network. Free Haven [dingledine00free]_  
    provides a distributed anonymous persistent data storage. It uses  
    both cryptography and routing techniques to provide anonymity for  
    the participating peers and splits a file to a number of shares  
    which are distributed through a network.  
   
    .. Regular filesharing apps:  
    .. Gnutella  
    .. Fasttrack stack (Kazaa/Morpheus)  
    .. Shareaza (magnet uri's)  
    .. Overnet/eDonkey2000/eMule/MlDonkey (have location-independent identifiers, MD4 hashes)  
    .. BitTorrent  
   
    Centralized versioning model  
    ----------------------------  
   
    .. SFS is a network filesystem that does not support of searching  
       docs. IMHO it's not relevant w.r.t. the article (as Mnet is  
       not either)    
     
    Like Free Haven, Publius [pub00]_ focuses on anonymity of the  
    participating nodes. Compared to Free Haven, however, Publius  
    has a support for destructive updates. An issue with Publius  
    is that it requires a globally maintained list of participating  
    nodes currently available in a system.  
     
    OceanStore [kubiatowicz00oceanstore]_ is a global storage system  
    based on Tapestry [zhao01tapestry]_ routing algorithm. It  
    supports non-destructive, linearly versioned updates through a  
    centralized Byzantine agreement protocol.  
         
     
    Network-level destructive versioning  
    ------------------------------------  
   
    CFS [dabek01widearea]_ is based on Chord [stoica01chord]_ and  
    stores data blocks, fragments of files, and spreads blocks  
    uniformly through the network based on identifier of a block.  
    CFS has a support for versioning, but in a way that allows  
    only the publisher of a file system to do a destructive  
    versioning for a data item. The versioning takes place at  
    network-level since the hash of the data block determines  
    which host maintains a data block in the overlay.  
226    
227    
    Miscellaneous versioning models  
    -------------------------------  
   
    Freenet [freenet-ieee]_ uses a probabilistic routing scheme to  
    preserve the anonymity of the participating nodes in a network.  
    It uses the "edition" versioning model: one can link  
    version x to a link representing version y even if version y  
    does not exist in a system yet.  
   
    .. ??? XXX I don't understand the above AT ALL  
   
228    
229  Pointer records  Pointer records
230  ===============  ===============
# Line 570  using only the primitive datablock model Line 366  using only the primitive datablock model
366        algorithm)        algorithm)
367    
368    
369  Diffs  .. Diffs
370  =====     =====
371    
372  - when storing all past versions, space may be a problem     - when storing all past versions, space may be a problem
373  - (not for small text files-- practical experience: 30 MB     - (not for small text files-- practical experience: 30 MB
374    in half a year of use-- but for things where each version       in half a year of use-- but for things where each version
375    takes 500 KB)       takes 500 KB)
376  - old idea: storing only differences     - old idea: storing only differences
377  - XXX     - XXX
378    
379    
380  Applications  Applications

Legend:
Removed from v.1.75  
changed lines
  Added in v.1.76

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