gzz-commits
[Top][All Lists]
Advanced

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

[Gzz-commits] gzz doc/Gzz_Storm.rst doc/uml/storm.uml test/gz...


From: Benja Fallenstein
Subject: [Gzz-commits] gzz doc/Gzz_Storm.rst doc/uml/storm.uml test/gz...
Date: Thu, 09 Jan 2003 19:23:38 -0500

CVSROOT:        /cvsroot/gzz
Module name:    gzz
Changes by:     Benja Fallenstein <address@hidden>      03/01/09 19:23:38

Modified files:
        doc            : Gzz_Storm.rst 
        doc/uml        : storm.uml 
        test/gzz/mem   : partition.test 

Log message:
        Doccing

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/doc/Gzz_Storm.rst.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/doc/uml/storm.uml.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/test/gzz/mem/partition.test.diff?tr1=1.5&tr2=1.6&r1=text&r2=text

Patches:
Index: gzz/doc/Gzz_Storm.rst
diff -u gzz/doc/Gzz_Storm.rst:1.1 gzz/doc/Gzz_Storm.rst:1.2
--- gzz/doc/Gzz_Storm.rst:1.1   Wed Dec 18 10:58:47 2002
+++ gzz/doc/Gzz_Storm.rst       Thu Jan  9 19:23:37 2003
@@ -2,16 +2,58 @@
 Gzz Storm
 =========
 
-Storm, the Gzz storage module, is a rewrite-in-progress of the
-current Mediaserver package. The technology is documented in
-`../Documentation/Mediaserver/`__; this only describes the architecture
-of the re-written package.
+---------------------------
+Introduction: What Storm is
+---------------------------
 
-.. _mediaserver: ../Documentation/Mediaserver/
+Storm is the Gzz "storage module." Storm provides an abstraction
+over storage both on a disk and on the network, meaning that
+everything above this layer usually doesn't know whether
+data is stored locally or on the 'net.
 
-__ mediaserver_
+Storm stores data in *blocks*. A block is an immutable sequence
+of bytes with a `MIME`_-like header. Blocks are identified
+by a `cryptographic hash`_ of their content. Because of this,
+you really cannot ever change the bytes in a block: If you did,
+the hash would change, thus the id would change, and thus
+you would be talking about a different block than before.
+Just for the flavor, an example block id looks like this: 
+``storm:block:01A83D35CADC52B61F125E9884859D0612B5E6BE05``.
 
-Here is a diagram of the interfaces in ``gzz.storm``:
+.. _MIME: http://www.nacs.uci.edu/indiv/ehood/MIME/MIME.html
+.. _cryptographic hash: http://www.rsasecurity.com/rsalabs/faq/2-1-6.html
+
+.. uml::
+
+    jlinkpackage gzz.storm
+    class Block
+        jlink
+
+    class BlockId
+        jlink
+        assoc multi(1) - multi(1) Block
+
+A block can be used pretty much like a file (where we know
+the type of the file not from its extension, but from the
+`Content-Type header`_ of the block), except that it cannot
+be modified. For example, we could store a KWord document
+in a Storm block, but if we changed anything in the document,
+we would have to create a new block. The information in a block
+cannot be updated.
+
+.. _Content-Type header: 
http://www.nacs.uci.edu/indiv/ehood/MIME/2045/rfc2045.html#5
+
+Storm supports *pointers* as references that can be updated.
+When we first put the document into Storm, we create a new pointer
+and make it point to the block. When we have changed the document,
+we create a new block and make the pointer point to it.
+After we have changed a pointer's target, its old target
+is still available on request. This allows us to access
+the old version of our document if we want to.
+
+(In reality, to save space, we will not the complete versions
+in different blocks; we'll only store the differences. The details
+of this are outside the scope of this document.)
 
 .. UML-refer:: storm
 
Index: gzz/doc/uml/storm.uml
diff -u gzz/doc/uml/storm.uml:1.1 gzz/doc/uml/storm.uml:1.2
--- gzz/doc/uml/storm.uml:1.1   Fri Aug 30 12:48:38 2002
+++ gzz/doc/uml/storm.uml       Thu Jan  9 19:23:38 2003
@@ -19,7 +19,7 @@
 
 class BlockId "final"
     jlink
-    assoc multi(1) - multi(*) Block
+    assoc multi(1) - multi(1) Block
     methods
         String getURI()
         byte[] getBytes()
Index: gzz/test/gzz/mem/partition.test
diff -u gzz/test/gzz/mem/partition.test:1.5 gzz/test/gzz/mem/partition.test:1.6
--- gzz/test/gzz/mem/partition.test:1.5 Thu Jan  9 02:06:24 2003
+++ gzz/test/gzz/mem/partition.test     Thu Jan  9 19:23:38 2003
@@ -4,21 +4,9 @@
 import gzz
 import java
 
-pool = gzz.mem.MemoryPartitioner(500)
+from test.gzz.mem.partitiontest import Reserver
 
-class Reserver(gzz.mem.MemoryConsumer):
-    def __init__(self):
-       self.rese = 0
-       self.qual = 0
-    def getMaxBytes(self, qual):
-       return 230
-    def setReservation(self, byt, qual, o):
-       self.rese = byt
-       self.qual = qual
-    def getReservation(self):
-       return self.rese
-    def getQuality(self):
-       return self.qual
+pool = gzz.mem.MemoryPartitioner(500)
 
 def waitFor(f, dontStop = 0):
     for i in range(0,20):




reply via email to

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