[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gzz-commits] manuscripts/pointers article.rst style.tex
From: |
Tuomas J. Lukka |
Subject: |
[Gzz-commits] manuscripts/pointers article.rst style.tex |
Date: |
Fri, 31 Oct 2003 01:16:18 -0500 |
CVSROOT: /cvsroot/gzz
Module name: manuscripts
Branch:
Changes by: Tuomas J. Lukka <address@hidden> 03/10/31 01:16:18
Modified files:
pointers : article.rst style.tex
Log message:
sync
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/manuscripts/pointers/article.rst.diff?tr1=1.39&tr2=1.40&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/manuscripts/pointers/style.tex.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
Patches:
Index: manuscripts/pointers/article.rst
diff -u manuscripts/pointers/article.rst:1.39
manuscripts/pointers/article.rst:1.40
--- manuscripts/pointers/article.rst:1.39 Thu Oct 30 09:24:32 2003
+++ manuscripts/pointers/article.rst Fri Oct 31 01:16:17 2003
@@ -2,7 +2,9 @@
Versioning for a location-independent Web: Stopping the shoulders of giants
from rotting away
=============================================================================================
-.. (tentative title)
+META:
+
+(tentative title)
Title suggestions and comments:
@@ -11,6 +13,27 @@
Works even in ad hoc environments
...
+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:
Abstract
========
@@ -255,8 +278,9 @@
No versioning model
-------------------
-PAST [rowstron01storage]_ is a persistent storage system that use
-[rowston01pastry]_ for locating data in a Peer-to-Peer environment.
+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
@@ -351,7 +375,13 @@
blocks is available.
The benefits of starting from this basic model are numerous:
-XXX
+
+- simple to implement - existing models cover this well
+
+- can be made to work with peers that join and leave small
+ ad hoc networks often (and the global "net" less often)
+
+- robust - all state of the system is in the blocks
In this framework, we shall define a system of *pointers*:
some types of identifiers that refer to a block but whose
@@ -376,22 +406,51 @@
This Section gives our main contribution: a way
to implement a persistent, distributed versioning
-system relying only on the abstraction presented
+system relying only on the block abstraction presented
in the previous section.
-Our system is based on adding blocks to the system
+Our system is based on adding *pointer record*
+blocks to the system. Pointer record blocks are similar
+to Oceanstore's heartbeats but the important difference
+in our system is that they are also represented as simple
+data blocks.
The PointerID is a combination of a public key of the
owner of the pointer (possibly a certificate)
and an identifier. The association of the PointerID to
-a particular data block is specified by adding a special
-*pointer block* into the system, which contains
+a particular data block is specified by adding a
+pointer block into the system, which contains
- the PointerID
-- the block ID
-- a timestamp
-- (optionally) a list of pointer blocks *obsoleted* by this pointer block
+- the pointee: a block ID
+- a way to sequence pointer blocks: either a
+ timestamp,
+ a list of pointer blocks *obsoleted* by this pointer block, or both
+- a digital signature of all the above data, using the private
+ key corresponding to the public key in the PointerID
+
+Then we can define, using the reverse indexing framework
+of the block abstraction, index functions such as the following:
+
+- all pointer blocks with the given PointerID
+- all pointer blocks with the given PointerID with timestamps in the given
range
+- the latest (timestamp / unobsoleted) pointer block with the given PointerID
+ (this index will benefit from the ability to determine locally the "relevant"
+ blocks for a given index)
+
+The choice between timestamps and obsoletion lists or both allows
+some latitude in the semantics of pointers; timestamps define
+a strictly linear version order, whereas obsoletion lists
+allow branching, i.e. having more than one "current" version.
+(XXX Also possible: timestamp and time of the latest version timestamp
+and we obsolete all versions we know with timestamps after that time -
+gives more "coverage")
+The obsoletion lists are most relevant in a context such as blogging where
+a user might sometimes submit new entries using a mobile device and sometimes
on a
+desktop machine. If the blocks do not obsolete each other, the software
+can notice this and help the user bring the versions back to synch.
+
.. - In this section, we discuss a particular way
of implementing pointers (this is our main contribution)
@@ -469,6 +528,10 @@
- will be there only if someone *wants* to store those versions
unwanted versions get purged
+ - spam with a stolen key?
+
+ - formulas for efficiency?
+
- spamming with new versions (only author due to DS, but still)
- Copyright issues
@@ -491,8 +554,9 @@
-Notes
-=====
+
+.. NOTES =================================================================
+
.. [#cassini] ``http://www.seds.org/spaceviews/cassini/rtg.html``
@@ -505,3 +569,6 @@
are generally not circular, making this domain map neatly
to the properties of hash-based referencing.
XXX Except for "in press", "unpublished manuscripts", ...
+
+
+
Index: manuscripts/pointers/style.tex
diff -u manuscripts/pointers/style.tex:1.2 manuscripts/pointers/style.tex:1.3
--- manuscripts/pointers/style.tex:1.2 Thu Oct 30 05:29:47 2003
+++ manuscripts/pointers/style.tex Fri Oct 31 01:16:17 2003
@@ -21,6 +21,8 @@
XXX}
\newcommand{\hyp}{\discretionary{}{}{}}
+\setlength{\extrarowheight}{0pt}
+
\renewcommand{\url}[1]{{\sf #1}}
\def\hypertarget#1#2{}