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