[Zodb-checkins] SVN: ZODB/branches/3.3/ News about ZEO protocol changes.

Tim Peters tim.one at comcast.net
Fri Apr 1 11:20:43 EST 2005


Log message for revision 29784:
  News about ZEO protocol changes.
  

Changed:
  U   ZODB/branches/3.3/NEWS.txt
  U   ZODB/branches/3.3/README.txt

-=-
Modified: ZODB/branches/3.3/NEWS.txt
===================================================================
--- ZODB/branches/3.3/NEWS.txt	2005-04-01 16:08:47 UTC (rev 29783)
+++ ZODB/branches/3.3/NEWS.txt	2005-04-01 16:20:43 UTC (rev 29784)
@@ -43,7 +43,18 @@
 depending on platform, and should suffer far fewer (if any) intermittent
 "timed out waiting for storage to connect" failures.
 
+ZEO protocol and compatibility
+------------------------------
 
+ZODB 3.3 introduced multiversion concurrency control (MVCC), which required
+changes to the ZEO protocol.  The first 3.3 release should have increased
+the internal ZEO protocol version number (used by ZEO protocol negotiation
+when a client connects), but neglected to.  This has been repaired.
+
+Compatibility between pre-3.3 and post-3.3 ZEO clients and servers remains
+very limited.  See the newly updated ``Compatibility`` section in
+``README.txt`` for details.
+
 FileStorage
 -----------
 

Modified: ZODB/branches/3.3/README.txt
===================================================================
--- ZODB/branches/3.3/README.txt	2005-04-01 16:08:47 UTC (rev 29783)
+++ ZODB/branches/3.3/README.txt	2005-04-01 16:20:43 UTC (rev 29784)
@@ -19,7 +19,7 @@
 - ZConfig -- a Zope configuration language
 - documentation
 
-Our primary development platforms are Linux and Windows 2000.  The
+Our primary development platforms are Linux and Windows XP.  The
 test suite should pass without error on all of these platforms,
 although it can take a long time on Windows -- longer if you use
 ZoneAlarm.  Many particularly slow tests are skipped unless you pass
@@ -30,15 +30,33 @@
 
 ZODB 3.3.1 requires Python 2.3.4 or later.
 
-The Zope 2.8 and X3 releases should be compatible with this version of ZODB.
-Note that Zope 2.7 and higher includes ZEO, so this package should only be
-needed to run a ZEO server.
+The Zope X3 release should be compatible with this version of ZODB.  Zope 3
+and Zope 2.8 have moved to ZODB 3.4.  Note that Zope 2.7 and higher includes
+ZEO, so this package should only be needed to run a ZEO server.
 
-The ZEO server in ZODB 3.3.1 is currently incompatible with earlier
-versions of ZODB.  If you want to test the software, you must be
-running this release for both client and server.  A backwards
-compatibility mechanism will be provided in a later release.
+The ZEO in ZODB 3.3 is only partly compatible with earlier versions of ZODB.
+ZODB 3.3 uses multiversion concurrency control (MVCC), which is new in 3.3,
+and earlier ZEO servers do not support MVCC:  a 3.3 ZEO client cannot talk
+with an older ZEO server.  In the other direction, a 3.3 ZEO server can talk
+with older ZEO clients, but because the names of some basic classes have
+changed, if any 3.3 clients commit modifications to the database it's likely
+that the database will contain instances of classes that don't exist in
+(can't be loaded by) older ZEO clients.  For example, the database root
+object was an instance of ``ZODB.PersistentMapping.PersistentMapping`` before
+ZODB 3.3, but is an instance of ``persistent.mapping.PersistentMapping`` in
+ZODB 3.3.  A 3.3.1 client can still load a
+``ZODB.PersistentMapping.PersistentMapping`` object, but is this just an alias
+for ``persistent.mapping.PersistentMapping``, and an object of the latter
+type will be stored if a 3.3 client commits a change to the root object.  An
+older ZEO client cannot load the root object so changed.
 
+This limits migration possibilities:  a 3.3 ZEO server can be used with
+older ZEO clients and serve an older database, so long as no 3.3 ZEO
+clients commit changes to the database.  The most practical upgrade path
+is to bring up both servers and clients using 3.3.1, not trying to mix
+pre-3.3 and post-3.3 ZEO clients and servers.
+
+
 Prerequisites
 -------------
 



More information about the Zodb-checkins mailing list