[Top][All Lists]
[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):
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gzz-commits] gzz doc/Gzz_Storm.rst doc/uml/storm.uml test/gz...,
Benja Fallenstein <=