[Zodb-checkins] CVS: ZODB4/BDBStorage/Doc - NEWS.txt:1.1

Barry Warsaw barry@wooz.org
Wed, 4 Dec 2002 14:24:59 -0500

Update of /cvs-repository/ZODB4/BDBStorage/Doc
In directory cvs.zope.org:/tmp/cvs-serv12804

Added Files:
Log Message:
Updated for the high level ZODB4 port.

=== Added File ZODB4/BDBStorage/Doc/NEWS.txt ===
Changes to the Berkeley storages for ZODB3

3.0 (XX-XXX-200X)

    * 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.


      for details.

    - 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
      object revisions.

    - 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
      tpc_finish() call).

    - 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
      to it.

Local Variables:
mode: indented-text
indent-tabs-mode: nil