[Zodb-checkins] CVS: ZODB4/BDBStorage/Doc - NEWS.txt:1.1
Wed, 4 Dec 2002 14:24:59 -0500
Update of /cvs-repository/ZODB4/BDBStorage/Doc
In directory cvs.zope.org:/tmp/cvs-serv12804
Updated for the high level ZODB4 port.
=== Added File ZODB4/BDBStorage/Doc/NEWS.txt ===
Changes to the Berkeley storages for ZODB3
* Ported the code to ZODB4, so at least Python 2.2.2 is required.
* The storages, modules, and packages have been renamed:
- Package bsddb3Storage renamed to BDBStorage
- Module Full.py renamed to BDBFullStorage.py
- Module Minimal.py renamed to BDBMinimalStorage.py
- Class Full renamed to BDBFullStorage
- Class Minimal renamed to BDBMinimalStorage
Also, the modules base.py, Packless.py, and MinimalReplicated.py
have been removed.
2.0 beta 2 (19-Nov-2002)
* Implemented checkpointing as a background thread, instead of as
a periodic nth ZODB transaction event. Automatic checkpointing
is only enabled if the config object has an interval > 0, which
by default it doesn't. I need to think about a more reasonable
value for interval.
* Added the lastTransaction() method which is required by recovery
(used in the test suite and in the Zope Replication Service).
* Bug fixes and refactoring.
2.0 beta 1 (11-Nov-2002)
All new implementations of Full and Minimal storages. Highlights
* No Berkeley lock exhaustion. Because we use application locks
instead of BerkeleyDB locks, there's no need to allocate huge
lock files, and no possibility that large transactions will
run out of locks.
* No temporary commit logs. Both storages now use an optimistic
write strategy to avoid the need for temporary log files.
This gives better disk and cpu performance.
* Easier configuration through a configuration instance passed
to the constructors. You may not need a DB_CONFIG file
* Autopacking (Full only). Automatic packing of both storages
is implemented in a separate thread. For Full storage,
autopacking is like "classic" pack except that it doesn't
normally do garbage collection. Since it only gets rid of old
object revisions, it should be faster than a classic pack.
You can specify packing policies, such as how often to
autopack, how far back in the past to pack to, and how often
you want the autopack thread to perform a full gc classic
Minimal storage also has an optional autopack thread, but that
always does a "classic pack" since there /are/ no older object
revisions to get rid of.
Note that there was no official 1.0 final release, although the
closest thing to a 1.0 final was included in the ZODB 3.1
release. However the table schemas are not compatible so if you
have to upgrade an existing storage to one of the new storages,
you will need to do a copyTransactionsFrom().
1.0 beta 5 (02-Nov-2001)
- New ZEO helper method getSerial() is implemented in a more
efficient way than what BaseStorage gives you.
- More bug fixes & more unit tests.
1.0 beta 4 (25-Jul-2001)
- getSize() returns "too hard to determine"
- Bug fixes.
1.0 beta 3 (18-Jun-2001)
- Application level conflict resolution has been added to Full.
- Support for the informal "storage iteration protocol" has been
added to Full. This is essentially a failsafe mechanism where
transaction records can be read out of the storage either for
replay back into a different storage (e.g. for migrating an
existing FileStorage to a Berkeley storage), or for backup
purposes. This isn't well documented, AFAIK.
- The history() method has been implemented for Full.
- docs/custom_zodb.sample was renamed to docs/custom_zodb.py
1.0 beta 2 (01-May-2001)
- Substantial re-organization of the directory structure for
conversion to Python distutils-style packaging.
- A significant number of PyUnit unit tests have been added,
flexing most aspects of the storage interface.
- Support for tpc_vote() has been added to both Full and Minimal.
- Reference counting garbage collection has been added to Full,
along with experimental support for automatic cyclic garbage
collection. Now packs are only necessary to get rid of old
- A more robust intermediate commit log has been implemented so
that changes cannot be lost between the time they are store()'d
and the time that the storage commits to Berkeley (during the
- A new style of undo, called TransactionalUndo has been added to
Full. This is essentially a redo-able non-destructive undo.
for details. Note that old style undo, as implemented in Zope
2.3.x is not supported. You either need to upgrade to Zope 2.4
or you can use undo with the Full storage.
- A new Minimal storage has been added, which is undo-less and
version-less similar to the Packless storage. Minimal shares
much code with Full, including the robust commit log, so it is
the wave of the future. It currently must still be packed, but
this will eventually be rectified by adding reference counting