[Zodb-checkins] CVS: ZODB3 - NEWS.txt:1.27
Jeremy Hylton
jeremy@zope.com
Fri, 17 Jan 2003 13:31:36 -0500
Update of /cvs-repository/ZODB3
In directory cvs.zope.org:/tmp/cvs-serv31906
Modified Files:
NEWS.txt
Log Message:
Update NEWS to reflect most of the new development here.
=== ZODB3/NEWS.txt 1.26 => 1.27 ===
--- ZODB3/NEWS.txt:1.26 Tue Jan 7 14:51:47 2003
+++ ZODB3/NEWS.txt Fri Jan 17 13:31:33 2003
@@ -1,13 +1,130 @@
-What's new in ZODB3 3.2?
-========================
-Release date: ?
+What's new in ZODB3 3.2 alpha 1
+===============================
+Release date: 17-Jan-2003
-XXX These release notes need to be fleshed out more.
+Most of the changes in this release are performance and stability
+improvements to ZEO. A major packaging change is that there won't be
+a separate ZEO release. The new ZConfig is a noteworthy addtion (see
+below).
-It now takes less time to open an existing FileStorage.
+ZODB
+----
+
+An experimental new transaction API was added. The Connection class
+has a new method, setLocalTransaction(). ZODB applications can call
+this method to bind transactions to connections rather than threads.
+This is especially useful for GUI applications, which often have only
+one thread but multiple independent activities within that thread
+(generally one per window). Thanks to Christian Reis for championing
+this feature.
+
+Applications that take advantage of this feature should not use the
+get_transaction() function. Until now, ZODB itself sometimes assumed
+get_transaction() was the only way to get the transaction. Minor
+corrections have been added. The ZODB test suite, on the other hand,
+can continue to use get_transaction(), since it is free to assume that
+transactions are bound to threads.
+
+ZEO
+---
+
+There is a new recommended script for starting a storage server. We
+recommend using ZEO/runzeo.py instead of ZEO/start.py. The start.py
+script is still available in this release, but it will no longer be
+maintained and will eventually be removed.
+
+There is a new zdaemon implementation. This version is a separate
+script that runs an arbitrary daemon. To run the ZEO server as a
+daemon, you would run "zdaemon.py runzeo.py". There is also a simple
+shell, zdctl.py, that can be used to manage a daemon. Try
+"zdctl.py -p runzeo.py".
+
+There is a new version of the ZEO protocol in this release and a first
+stab at protocol negotiation. (It's a first stab because the protocol
+checking supporting in ZODB 3.1 was too primitive to support anything
+better.) A ZODB 3.2 ZEO client can talk to an old server, but a ZODB
+3.2 server can't talk to an old client. It's safe to upgrade all the
+clients first and upgrade the server last. The ZEO client cache
+format changed, so you'll need to delete persistent caches before
+restarting clients.
The ZEO cache verification protocol was revised to require many fewer
-messages in cases where a client or server restarts quickly.
+messages in cases where a client or server restarts quickly.
+
+The performance of full cache verification has improved dramatically.
+XXX Get measurements from Jim -- somewhere in 2x-5x recall. The
+implementation was fixed to use the very-fast getSerial() method on
+the storage instead of the comparatively slow load().
+
+The ZEO server has an optional timeout feature that will abort a
+connection that does not commit within a certain amount of time. The
+timeout works by closing the socket the client is using, causing both
+client and server to abort the transaction and continue. This is a
+drastic step, but can be useful to prevent a hung client or other bug
+from blocking a server indefinitely.
+
+A bug was fixed in the ZEO protocol that allowed clients to read stale
+cache data while cache verification was being performed. The fixed
+version prevents the client from using the storage until after
+verification completes.
+
+The ZEO server has an experimental monitoring interface that reports
+usage statistics for the storage server including number of connected
+clients and number of transactions active and committed. It can be
+enabled by passing the -m flag to runsvr.py.
+
+The ZEO ClientStorage no longer supports the environment variables
+CLIENT_HOME, INSTANCE_HOME, or ZEO_CLIENT.
+
+The ZEO1 package is still included with this release, but there is no
+longer an option to install it.
+
+BTrees
+------
+
+The BTrees package now has a check module that inspects a BTree to
+check internal invariants. Bugs in older versions of the code code
+leave a BTree in an inconsistent state. Calling BTrees.check.check()
+on a BTree object should verify its consistency. (See the NEWS
+section for 3.1 beta 1 below to for the old BTrees bugs.)
+
+Fixed a rare conflict resolution problem in the BTrees that could
+cause an segfault when the conflict resolution resulted in any
+empty bucket.
+
+Installation
+------------
+
+The distutils setup now installs several Python scripts. The
+runzeo.py and zdaemon.py scripts mentioned above and several fsXXX.py
+scripts from the Tools directory.
+
+The test.py script does not run all the ZEO tests by default, because
+the ZEO tests take a long time to run. Use --all to run all the
+tests. Otherwise a subset of the tests, mostly using MappingStorage,
+are run.
+
+Storages
+--------
+
+There are two new storages based on Sleepycat's BerkeleyDB in the
+BDBStorage package. Barry will have to write more here, because I
+don't know how different they are from the old bsddb3Storage
+storages. See Doc/BDBStorage.txt for more information.
+
+It now takes less time to open an existing FileStorage. The
+FileStorage uses a BTree-based index that is faster to pickle and
+unpickle. It also saves the index periodically so that subsequent
+opens will go fast even if the storage was not closed cleanly.
+
+Misc
+----
+
+The new ZConfig package, which will be used by Zope and ZODB, is
+included. ZConfig provides a configuration syntax, similar to
+Apache's syntax. The package can be used to configure the ZEO server
+and ZODB databases. See the module ZODB.config for functions to open
+the database from configuration. See ZConfig/doc for more info.
The zLOG package now uses the logging package by Vinay Sajip, which
will be included in Python 2.3.