gzz-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gzz-commits] manuscripts/storm article.rst


From: Benja Fallenstein
Subject: [Gzz-commits] manuscripts/storm article.rst
Date: Sat, 25 Jan 2003 13:34:09 -0500

CVSROOT:        /cvsroot/gzz
Module name:    manuscripts
Changes by:     Benja Fallenstein <address@hidden>      03/01/25 13:34:09

Modified files:
        storm          : article.rst 

Log message:
        start section on block storage

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/manuscripts/storm/article.rst.diff?tr1=1.36&tr2=1.37&r1=text&r2=text

Patches:
Index: manuscripts/storm/article.rst
diff -u manuscripts/storm/article.rst:1.36 manuscripts/storm/article.rst:1.37
--- manuscripts/storm/article.rst:1.36  Sat Jan 25 12:51:33 2003
+++ manuscripts/storm/article.rst       Sat Jan 25 13:34:09 2003
@@ -103,11 +103,42 @@
 ================
 
 In our system, Storm (for *storage module*), all data is stored
-in *blocks*, byte sequences identified by a
-cryptographic hash. Blocks often have a similar granularity
-as files, but they are immutable, since any change to the
+in *blocks*, byte sequences identified by a SHA-1 cryptographic hash 
+[ref SHA-1 and our ht'02 paper]. Blocks often have a similar granularity
+as regular files, but they are immutable, since any change to the
 byte sequence would change the hash (and thus create a different block).
+Mutable data structures are built on top of the immutable blocks
+(see Section 5).
 
+Block storage makes it easy to replicate data between systems.
+Different versions of the same document can easily coexist at this level,
+stored in different blocks. To replicate all data from computer A
+on computer B, it suffices to copy all blocks from A to B that B
+does not already store.
+
+Storm blocks are MIME messages [ref MIME], i.e., objects with
+a header and body as used in Internet mail or HTTP.
+This allows them to carry any metadata that can be carried
+in a MIME header, most importantly a content type.
+
+Collections of Storm blocks are called *pools*. Pools provide
+the following interface::
+
+    getIds() -> list
+    get(id) -> block
+    add(block)
+    delete(block)
+
+Implementations may store blocks in RAM, in individual files,
+in a Zip archive, in a database or through other means.
+We have implemented the first three (using hexadecimal
+representations of the block ids for file names).
+
+When used in a network environment, Storm ids do not provide
+a hint as to where in the network the matching block can be found.
+However, current peer-to-peer systems could be used to
+find blocks in a distributed fashion; for example, Freenet [ref]
+and some Gnutella clients [ref] also use SHA-1-based identifiers.
 
 
 3. Xanalogical storage




reply via email to

[Prev in Thread] Current Thread [Next in Thread]