[Zodb-checkins] CVS: ZODB3/Doc - storages.html:1.2
Toby Dickenson
tdickenson at geminidataloggers.com
Tue Jun 17 04:32:51 EDT 2003
Update of /cvs-repository/ZODB3/Doc
In directory cvs.zope.org:/tmp/cvs-serv12327
Modified Files:
storages.html
Log Message:
merged feedback
=== ZODB3/Doc/storages.html 1.1 => 1.2 ===
--- ZODB3/Doc/storages.html:1.1 Tue Jun 17 02:39:51 2003
+++ ZODB3/Doc/storages.html Tue Jun 17 03:32:51 2003
@@ -3,12 +3,13 @@
<p>This is a feature matrix and comparison comparison of the various ZODB storages.</p>
-<p><b>status:</b> Currently it is incomplete. I (Toby Dickenson) have filled in the columns
-for the storages I know well, and rows for the features that differentiate them.
+<p><b>status:</b> Currently it is incomplete. It includes contributions from Toby Dickenson,
+Jeremy Hylton and Barry Warsaw.
Please update the other columns, add new columns, and particularly add new rows if any other
areas of comparison are important.</p>
-<p>Apologies in advance for any errors.</p>
+<p>Please note that this information is for comparison only. The documentation
+for individual storages is likely to contain more detail than is presented here.</p>
<style>
@@ -119,7 +120,7 @@
1
</td>
<td class="bdbstorage">
-2?
+2
</td>
<td class="ape">
1?
@@ -154,7 +155,7 @@
Unix only. Only linux is well tested.
</td>
<td class="bdbstorage">
-?
+Unix. Should work on Windows with a manual install.
</td>
<td class="ape">
?
@@ -223,10 +224,10 @@
<tr>
<td class="filestorage">
-High performance through low overheads. Extreme portability.
+Extreme portability. Simple file format.
</td>
<td class="dirstorage">
-Simplicity of implementation. Fault tolerance. Manageability.
+Simple of implementation. Fault tolerance. Manageability.
Disaster-Preparedness.
</td>
<td class="bdbstorage">
@@ -254,6 +255,7 @@
</td>
<td class="bdbstorage">
bsddb3Storage.Full supports undo and versions, while bsddb3Storage.Minimal does not.
+ZODB4's MemoryStorage is built on the BDBStorage code, with an in-memory compatibility layer to the bsddb module API.
</td>
<td class="ape">
?
@@ -273,7 +275,7 @@
of small files. The developers use reiserfs on linux.
</td>
<td class="bdbstorage">
-Sleepycat's Berkeley DB 4.0.14 and Robin Dunn's PyBSDDB 3.4 Python bindings.
+Sleepycat's Berkeley DB 4.0.14 and Robin Dunn's PyBSDDB Python bindings.
</td>
<td class="ape">
?
@@ -342,10 +344,10 @@
allow between 2% and 10% of the Data.fs size in RAM or performance will slow to a crawl.
</td>
<td class="dirstorage">
-Small, and independant of storage size.
+Small, and independant of storage size. The operating system provides caching.
</td>
<td class="bdbstorage">
-Small, and independant of storage size.
+Small, and independant of storage size. BerkeleyDB provides many ways to tune how memory is used for caching.
</td>
<td class="ape">
?
@@ -399,13 +401,13 @@
<tr>
<td class="filestorage">
-Not as standard. You can find some hairy home-brew scripts in the zodb-dev list archives.
+Yes, using repozo.py.
</td>
<td class="dirstorage">
-Yes, using a standard script with a tar backend. Incremental backups to tar.gz files.
+Yes, using a standard script with a tar backend.
</td>
<td class="bdbstorage">
-Yes, as Berkeley DB.
+Yes, as BerkeleyDB.
</td>
<td class="ape">
?
@@ -423,7 +425,7 @@
on another machine.
</td>
<td class="bdbstorage">
-No. (or does BDB help out here?)
+No.
</td>
<td class="ape">
?
@@ -434,13 +436,14 @@
<tr>
<td class="filestorage">
-A variety of tools in variety of places, for checking and fixing certain types of corruption.
+A variety of tools distributed as standard with ZODB, but not with Zope.
+Many can be run without shutting down the storage.
</td>
<td class="dirstorage">
checkds.py, a unified checking tool. Can be run without shutting down the storage.
</td>
<td class="bdbstorage">
-No (?)
+BerkelyDB provides tools for checking the tables, but there is no way to check storage-level details.
</td>
<td class="ape">
?
@@ -471,7 +474,8 @@
<tr>
<td class="filestorage">
On shutdown the index is written to disk, and reloaded on startup. This takes time proportional to storage size,
-but is quick. After an unclean shutdown it needs to rebuild the index, which is slow.</td>
+but is quick. After an unclean shutdown it needs to rebuild the index, which is slower. It may need to rebuild
+the full index (very slow) or just the changes since it was last updated.</td>
<td class="dirstorage">
Small, and independant of storage size.
</td>
@@ -489,7 +493,7 @@
<tr>
<td class="filestorage">
Automatically truncates the file to the last complete transaction, and copies
-the tail in a file for later inspection.<br>
+the tail into a file for later inspection.<br>
PartitionedFileStorage may need some manual tweaking, if you are very unlucky.
</td>
<td class="dirstorage">
@@ -503,15 +507,37 @@
</td>
</tr>
+<tr><th colspan=4 class=title>What happens if my disk eats a chunk of my data?</th></tr>
+
+<tr>
+<td class="filestorage">
+Use fsrecover.dy. This will remove the offending records. Attempts to access them in an application
+will raise a POSKeyError exception, which must be fixed manually from within the application.
+</td>
+<td class="dirstorage">
+If you cant restore a backup or switch to a replica, use checkds.py to find corrupt records and remove them by hand.
+Attempts to access them in an application will raise a POSKeyError exception. These can be fixed within the
+application, or, if you are an expert in the storage directory layout, by copying individual files from a
+slightly-out-of-date backup.
+</td>
+<td class="bdbstorage">
+?
+</td>
+<td class="ape">
+?
+</td>
+</tr>
+
<tr><th colspan=4 class=title>Administrative Overhead</th></tr>
<tr>
<td class="filestorage">
-None
+Administrators need to be careful when running tools that modify the
+storage while the storage is running.
</td>
<td class="dirstorage">
-None, after the seperate download and install.<br>
+Seperate download and install.<br>
</td>
<td class="bdbstorage">
As Berkeley DB. Learn the sleepycat tools.
@@ -549,6 +575,10 @@
<td class="dirstorage">
Automatically checks for dangling references on commit, to avoid several possible
causes of POSKeyError exceptions.
+<br>
+Access to object revision files through the filesystem.
+<br>
+All records have an md5 checksum.
</td>
<td class="bdbstorage">
None
More information about the Zodb-checkins
mailing list