[Checkins] [zopefoundation/ZODB] 227953: Simplify MVCC by determining transaction start tim...
GitHub
noreply at github.com
Thu Jun 16 21:49:00 CEST 2016
Branch: refs/heads/master
Home: https://github.com/zopefoundation/ZODB
Commit: 227953b977a9e195c4ce9bbb9acd9c5ee60c333a
https://github.com/zopefoundation/ZODB/commit/227953b977a9e195c4ce9bbb9acd9c5ee60c333a
Author: Jim Fulton <jim at zope.com>
Date: 2016-05-04 (Wed, 04 May 2016)
Changed paths:
M src/ZODB/ActivityMonitor.py
M src/ZODB/BaseStorage.py
M src/ZODB/Connection.py
M src/ZODB/DB.py
M src/ZODB/DemoStorage.py
M src/ZODB/FileStorage/FileStorage.py
M src/ZODB/MappingStorage.py
M src/ZODB/tests/BasicStorage.py
M src/ZODB/tests/MTStorage.py
M src/ZODB/tests/MVCCMappingStorage.py
M src/ZODB/tests/PackableStorage.py
M src/ZODB/tests/StorageTestBase.py
M src/ZODB/tests/blob_packing.txt
M src/ZODB/tests/blob_tempdir.txt
M src/ZODB/tests/blobstorage_packing.txt
M src/ZODB/tests/dbopen.txt
M src/ZODB/tests/synchronizers.txt
M src/ZODB/tests/testConnection.py
M src/ZODB/tests/testDB.py
M src/ZODB/tests/testDemoStorage.py
M src/ZODB/tests/testFileStorage.py
M src/ZODB/tests/testMVCCMappingStorage.py
M src/ZODB/tests/test_doctest_files.py
M src/ZODB/tests/test_fsdump.py
M src/ZODB/tests/test_storage.py
M src/ZODB/tests/testblob.py
M src/ZODB/tests/testmvcc.py
M src/ZODB/tests/util.py
M src/ZODB/utils.py
Log Message:
-----------
Simplify MVCC by determining transaction start time using lastTransaction.
This implements: https://github.com/zopefoundation/ZODB/issues/50
Rather than watching invalidations, simply use 1 + the storages
lastTransaction, which is equivalent to but much simpler than waiting
for the first invalidation after a transaction starts.
More importantly, it means we can always use loadBefore and get away
from load. We no longer have to worry about ordering of invalidations
and load() results.
Much thanks to NEO for pointing the way toward this simplification!
Implementing this initially caused a deadlock, because DB.open()
called Connection.open() while holding a database lock and
Connection.open() now calls IStotage.lastTransaction(), which acquires a
storage lock. (It's not clear that lastTransaction() really needs a
storage lock.) Meanwhile, IStotage.tpc_finish() calls a DB function
that requires the DB lock while holding the storage lock. Fixing this
required moving the call to Connection.open() outside the region where
the DB lock was held.
To debug the problem above, I greatly improved lock-debugging
support. Now all of the ZODB code imports Lock, RLock and Condition
from ZODB.utils. If the DEBUG_LOCKING is set to a non-empty value,
then these are wrapped in such a way that debugging information is
printed as they are used. This made spotting the nature of the
deadlock easier.
Of course, a change this basic broke lots of tests. Most of the
breakage arises from the fact that connections now call
lastTransaction on storages at transaction boundaries. Lots of tests
didn't clean up databases and connections properly. I fixed many
tests, but ultimately gave up and added some extra cleanup code that
violated transaction-manager underware (and the underware's privates)
to clear transaction synchonizers in test setup and tear-down. I plan
to add a transaction manager API for this and to use it in a
subsequent PR.
This tests makes database and connection hygiene a bit more important,
especially for tests, because a connection will continue to interact
with storages if it isn't properly closed, which can lead to errors if
the storage is closed. I chose not to swallow these errors in
Connection, choosing rather to clean up tests.
The thread debugging and test changes make this PR larger than I would
have liked. Apologies in advance to the reviewers.
Commit: 1b6f71567a2e8c4c5a8f8e145499cf26d0d2c1c1
https://github.com/zopefoundation/ZODB/commit/1b6f71567a2e8c4c5a8f8e145499cf26d0d2c1c1
Author: Jim Fulton <jim at zope.com>
Date: 2016-05-04 (Wed, 04 May 2016)
Changed paths:
M src/ZODB/interfaces.py
M src/ZODB/utils.py
Log Message:
-----------
Update IStorage.load to reflect it's diminished status
Commit: 69e78b3f5ef535873d5cc77b4cf176b9d5005545
https://github.com/zopefoundation/ZODB/commit/69e78b3f5ef535873d5cc77b4cf176b9d5005545
Author: Jim Fulton <jim at zope.com>
Date: 2016-05-04 (Wed, 04 May 2016)
Changed paths:
M src/ZODB/DemoStorage.py
Log Message:
-----------
Removed debugging print
Commit: f2922e4cc6ea5ca4d7e3ba0f18c970485c1d3c8b
https://github.com/zopefoundation/ZODB/commit/f2922e4cc6ea5ca4d7e3ba0f18c970485c1d3c8b
Author: Jim Fulton <jim at zope.com>
Date: 2016-05-04 (Wed, 04 May 2016)
Changed paths:
M src/ZODB/tests/MVCCMappingStorage.py
Log Message:
-----------
When creating a "new_instance", copy loadBefore, as well s pack.
This is needed because pack temporarily deletes data from the data
structure that loadBefore reads.
Note that in the new scheme of things, we avoid using load, but
instead use loadBefore. This we bypass the _data_snapshot
shenanigans, which makes me think we aren't testing what we should be,
but I have no confidence that the machinery in MVCCMappingStorage
actually reflects anything meaningful.
Commit: 2729f3a928ea1bf0cc73cce56bd6bc77c032db30
https://github.com/zopefoundation/ZODB/commit/2729f3a928ea1bf0cc73cce56bd6bc77c032db30
Author: Jim Fulton <jim at zope.com>
Date: 2016-05-04 (Wed, 04 May 2016)
Changed paths:
M src/ZODB/Connection.py
M src/ZODB/tests/MVCCMappingStorage.py
M src/ZODB/tests/PackableStorage.py
Log Message:
-----------
Better IMVCCStorage support
The previous commit, made in anger, made a test pass, but wasn't
really the right fix.
This commit fixes MVCCMappingStorage's loadBefore implementation by
fixing handling of the internal _ltid variable so that it's updated
during poll_invalidations. This allowed the base class version of
loadBefore to be used and, I'm 97% sure has the right semantics.
Fixing this revealed a problem with the Connection changes.
Fixed Connection.py to poll for invalidations before computing
_txn_time by calling lastTransaction, so as to get a current value.
We still apply invalidations after computing _txn_time, so that
persistent classes can be loaded correctly when they are invalidated.
This was accomplished by weaving _flush_invalidations into
newTransaction.
Commit: d90a0243989000906d0fe0d8f762d1c49847e957
https://github.com/zopefoundation/ZODB/commit/d90a0243989000906d0fe0d8f762d1c49847e957
Author: Jim Fulton <jim at zope.com>
Date: 2016-05-04 (Wed, 04 May 2016)
Changed paths:
M src/ZODB/tests/MVCCMappingStorage.py
Log Message:
-----------
OK, copying loadBefore was the right fix to the checkPackLotsWhileWriting failure
Even though the previous commit otherwise made MVCCMappingStorage and
IMVCCStorage handling better.
Commit: 1a0f448ee3a73755705e3eb1f8b9ff20d49a443f
https://github.com/zopefoundation/ZODB/commit/1a0f448ee3a73755705e3eb1f8b9ff20d49a443f
Author: Jim Fulton <jim at zope.com>
Date: 2016-05-05 (Thu, 05 May 2016)
Changed paths:
M setup.py
M src/ZODB/FileStorage/FileStorage.py
Log Message:
-----------
Merge remote-tracking branch 'origin/master' into no-more-load
Commit: d297efda3810f2be7aa34e834f2320916e5342be
https://github.com/zopefoundation/ZODB/commit/d297efda3810f2be7aa34e834f2320916e5342be
Author: Jim Fulton <jim at zope.com>
Date: 2016-05-05 (Thu, 05 May 2016)
Changed paths:
M src/ZODB/tests/util.py
Log Message:
-----------
Updated to use transaction test API
Commit: c1d79d72ee4ce37bda5985fbd16e3e28324dd30c
https://github.com/zopefoundation/ZODB/commit/c1d79d72ee4ce37bda5985fbd16e3e28324dd30c
Author: Jim Fulton <jim at zope.com>
Date: 2016-05-17 (Tue, 17 May 2016)
Changed paths:
M src/ZODB/Connection.py
Log Message:
-----------
Pass True to the storage sync method whe we have an IMVCCStorage
This and https://github.com/zodb/relstorage/pull/31 make RelStorage
pass with this branch (as much as they pass with master).
Commit: 6c0b5609369e9e57d2b5a4809360ad8c65b8b8c0
https://github.com/zopefoundation/ZODB/commit/6c0b5609369e9e57d2b5a4809360ad8c65b8b8c0
Author: Jim Fulton <jim at zope.com>
Date: 2016-06-06 (Mon, 06 Jun 2016)
Changed paths:
M CHANGES.rst
M setup.py
M src/ZODB/ConflictResolution.py
M src/ZODB/DemoStorage.py
M src/ZODB/FileStorage/FileStorage.py
M src/ZODB/MappingStorage.py
M src/ZODB/tests/HistoryStorage.py
M src/ZODB/tests/TransactionalUndoStorage.py
M src/ZODB/tests/testDemoStorage.py
Log Message:
-----------
Merge remote-tracking branch 'origin/master' into no-more-load
Commit: 7a75ba7aa86ebda0e4ff8cb0fb07a6b2a7705d09
https://github.com/zopefoundation/ZODB/commit/7a75ba7aa86ebda0e4ff8cb0fb07a6b2a7705d09
Author: Jim Fulton <jim at zope.com>
Date: 2016-06-07 (Tue, 07 Jun 2016)
Changed paths:
M src/ZODB/tests/util.py
Log Message:
-----------
Clear transaction syncs earlier
To mitigate errors during tearDown.
Lots of tests are sloppy about closing connection (because they could
be), but storages tend to get closed and transactions aborted. This
has the effedt of calling afterCompletion on connections which tries
to call storage lastTransaction, which causes errors.
Commit: 5bb8a81034dd3ac1d10998a15fa8aea80afc6ba3
https://github.com/zopefoundation/ZODB/commit/5bb8a81034dd3ac1d10998a15fa8aea80afc6ba3
Author: Jim Fulton <jim at zope.com>
Date: 2016-06-07 (Tue, 07 Jun 2016)
Changed paths:
M src/ZODB/interfaces.py
Log Message:
-----------
typo
Commit: baee84a6d2949cb58fdd338c882a7a5cc2ff8f27
https://github.com/zopefoundation/ZODB/commit/baee84a6d2949cb58fdd338c882a7a5cc2ff8f27
Author: Jim Fulton <jim at zope.com>
Date: 2016-06-07 (Tue, 07 Jun 2016)
Changed paths:
M src/ZODB/utils.py
Log Message:
-----------
Fixed maxtid, copying value from ZEO.
Changed it to the value corresponding to the maximim *signed*
big-endian 64-bit integer, because of LxBTrees.
Note that this value isn't used anywhere in ZODB yet.
Maybe it should be.
Commit: 36df7e061e2e1878c746451a180f88c8257ef5b9
https://github.com/zopefoundation/ZODB/commit/36df7e061e2e1878c746451a180f88c8257ef5b9
Author: Jim Fulton <jim at zope.com>
Date: 2016-06-09 (Thu, 09 Jun 2016)
Changed paths:
M src/ZODB/Connection.py
Log Message:
-----------
Be more careful about calling close callbacks
By resetting self.__onCloseCallbacks before calling the close
callbacks to forestall infinite recursion (as can be the case when a
close callback is the database close methos).
Commit: 44d71a17b9836f9b1e7b72740fc2f5c6abbff2a4
https://github.com/zopefoundation/ZODB/commit/44d71a17b9836f9b1e7b72740fc2f5c6abbff2a4
Author: Jim Fulton <jim at zope.com>
Date: 2016-06-09 (Thu, 09 Jun 2016)
Changed paths:
M src/ZODB/DB.py
Log Message:
-----------
typo
Commit: bd98008308436a81842bc4731c9d6b47330e89fa
https://github.com/zopefoundation/ZODB/commit/bd98008308436a81842bc4731c9d6b47330e89fa
Author: Jim Fulton <jim at zope.com>
Date: 2016-06-10 (Fri, 10 Jun 2016)
Changed paths:
M src/ZODB/Connection.py
Log Message:
-----------
Fixed a small race by processing invalidations after calling lastTransaction.
Commit: a07bcec808c544ca90f5d31c9294b315b9473c74
https://github.com/zopefoundation/ZODB/commit/a07bcec808c544ca90f5d31c9294b315b9473c74
Author: Jim Fulton <jim at zope.com>
Date: 2016-06-10 (Fri, 10 Jun 2016)
Changed paths:
M setup.py
Log Message:
-----------
let the version convey development status
It's too hard to remember to update the meta data (we've been in beta
for a long long time).
Commit: 03a326be7fc86aa402fb969883168c55c3776faf
https://github.com/zopefoundation/ZODB/commit/03a326be7fc86aa402fb969883168c55c3776faf
Author: Jim Fulton <jim at zope.com>
Date: 2016-06-11 (Sat, 11 Jun 2016)
Changed paths:
M setup.py
M src/ZODB/Connection.py
M src/ZODB/tests/synchronizers.txt
Log Message:
-----------
Updated to only call storage synchronizers on explicit transaction begin
And in special case where a connectin is opened while a transaction is
active (Zope2).
Commit: eab75a6746b4f63fd37bfd0d77860b4c7455cd55
https://github.com/zopefoundation/ZODB/commit/eab75a6746b4f63fd37bfd0d77860b4c7455cd55
Author: Jim Fulton <jim at zope.com>
Date: 2016-06-11 (Sat, 11 Jun 2016)
Changed paths:
M src/ZODB/DB.py
Log Message:
-----------
Removed comment that should have been removed with te code it went with.
Commit: 69c9aeaeb1c395ae3ce5f96167f04f440ce9931e
https://github.com/zopefoundation/ZODB/commit/69c9aeaeb1c395ae3ce5f96167f04f440ce9931e
Author: Jim Fulton <jim at zope.com>
Date: 2016-06-11 (Sat, 11 Jun 2016)
Changed paths:
M src/ZODB/tests/testmvcc.py
Log Message:
-----------
added missing works
Commit: 9bcd944e633e462ede78ed89d71e69e5df578582
https://github.com/zopefoundation/ZODB/commit/9bcd944e633e462ede78ed89d71e69e5df578582
Author: Jim Fulton <jim at zope.com>
Date: 2016-06-11 (Sat, 11 Jun 2016)
Changed paths:
M src/ZODB/tests/testmvcc.py
Log Message:
-----------
wording
Commit: 290913744bfc72a6af2bc16f6ad892642fd6a53c
https://github.com/zopefoundation/ZODB/commit/290913744bfc72a6af2bc16f6ad892642fd6a53c
Author: Jim Fulton <jim at zope.com>
Date: 2016-06-14 (Tue, 14 Jun 2016)
Changed paths:
M setup.py
M src/ZODB/Connection.py
M src/ZODB/DB.py
M src/ZODB/historical_connections.txt
M src/ZODB/interfaces.py
A src/ZODB/mvccadapter.py
M src/ZODB/tests/blob_connection.txt
M src/ZODB/tests/testConnection.py
M src/ZODB/tests/testDB.py
M src/ZODB/tests/testblob.py
M src/ZODB/tests/testmvcc.py
Log Message:
-----------
Abstract ZODB's MVCC implementation into a storage adapter.
That's applied to storages other than RelStorage.
See: https://groups.google.com/forum/#!topic/zodb/QJYmvF0eUUM
Commit: 1731c16fa70604158dc6285ac3bb45d74303d823
https://github.com/zopefoundation/ZODB/commit/1731c16fa70604158dc6285ac3bb45d74303d823
Author: Jim Fulton <jim at zope.com>
Date: 2016-06-15 (Wed, 15 Jun 2016)
Changed paths:
M src/ZODB/mvccadapter.py
Log Message:
-----------
Added a lock on the adapter
To prevent modifying the set of instances while iterating over them.
Commit: 4a269eaf007d6c563e1fad01ebdc3a079b6a7176
https://github.com/zopefoundation/ZODB/commit/4a269eaf007d6c563e1fad01ebdc3a079b6a7176
Author: Jim Fulton <jim at zope.com>
Date: 2016-06-15 (Wed, 15 Jun 2016)
Changed paths:
M src/ZODB/mvccadapter.py
Log Message:
-----------
Fixed: tpc_vote return wasn't handled correctly.
I'd lazily assumed that undo and tpc_vote has the same sorts of
returns, but they don't. When tpc_vote isn't None (ZEO), the retrun
is a list of oid and serial pairs.
Commit: e9c4ca4089bd36676f62fe0afa20e25fb72891d9
https://github.com/zopefoundation/ZODB/commit/e9c4ca4089bd36676f62fe0afa20e25fb72891d9
Author: Jim Fulton <jim at zope.com>
Date: 2016-06-15 (Wed, 15 Jun 2016)
Changed paths:
M src/ZODB/interfaces.py
Log Message:
-----------
reverted IStorage decomposition.
It wasn't really needed or used and caused a stupid ZEO test failure.
I do think the storage API needs to be thought about and refined at
some point, but now, it's not a priority.
Commit: 44eac704ab283bd8a2d2b9eb01809a68b21f9e9b
https://github.com/zopefoundation/ZODB/commit/44eac704ab283bd8a2d2b9eb01809a68b21f9e9b
Author: Jim Fulton <jim at zope.com>
Date: 2016-06-15 (Wed, 15 Jun 2016)
Changed paths:
M src/ZODB/mvccadapter.py
Log Message:
-----------
Use Lock from utils, rather than threading to ease future debugging
Commit: c7e99e3de151fee77f6d4c7ac7debe2d2ea4c274
https://github.com/zopefoundation/ZODB/commit/c7e99e3de151fee77f6d4c7ac7debe2d2ea4c274
Author: Jim Fulton <jim at zope.com>
Date: 2016-06-15 (Wed, 15 Jun 2016)
Changed paths:
M src/ZODB/mvccadapter.py
Log Message:
-----------
Make method copying lazy
This allows us to not worry about method overriding and avoids
creating wrapper methods (some of which were broken).
My guess is that performance is a wash. We take a tiny hit on the
first access, because ``__getattr__``, but we don't have to copy
methods we never use.
Commit: 48885fe66de1248a383910240bc46e024ab53db4
https://github.com/zopefoundation/ZODB/commit/48885fe66de1248a383910240bc46e024ab53db4
Author: Jim Fulton <jim at zope.com>
Date: 2016-06-15 (Wed, 15 Jun 2016)
Changed paths:
M src/ZODB/interfaces.py
Log Message:
-----------
restored old IStorage method order and cleaned up registerDB
Commit: 1594dc10177e166dae6b172feb769155ed15ff5a
https://github.com/zopefoundation/ZODB/commit/1594dc10177e166dae6b172feb769155ed15ff5a
Author: Jim Fulton <jim at zope.com>
Date: 2016-06-15 (Wed, 15 Jun 2016)
Changed paths:
M src/ZODB/interfaces.py
Log Message:
-----------
Fixed the documentation of release()
I'd started to edit it to remove implementation details and got
distracted, leaving it half edited.
Commit: e06b62e803282e03350bd7e1f4df7946e0455a5a
https://github.com/zopefoundation/ZODB/commit/e06b62e803282e03350bd7e1f4df7946e0455a5a
Author: Jim Fulton <jim at zope.com>
Date: 2016-06-15 (Wed, 15 Jun 2016)
Changed paths:
M src/ZODB/mvccadapter.py
Log Message:
-----------
Define _modified at class level
Hopefully, this will make linters happier.
Commit: fad84bd68dc606a271c3e8a403c4ae9c3b1d9b0c
https://github.com/zopefoundation/ZODB/commit/fad84bd68dc606a271c3e8a403c4ae9c3b1d9b0c
Author: Jim Fulton <jim at zope.com>
Date: 2016-06-15 (Wed, 15 Jun 2016)
Changed paths:
M src/ZODB/mvccadapter.py
Log Message:
-----------
Be more paranoid about hanling _modified
Commit: ad25595e1518ab2a45ad7024e4366581a3df1235
https://github.com/zopefoundation/ZODB/commit/ad25595e1518ab2a45ad7024e4366581a3df1235
Author: Jim Fulton <jim at zope.com>
Date: 2016-06-15 (Wed, 15 Jun 2016)
Changed paths:
M src/ZODB/Connection.py
M src/ZODB/mvccadapter.py
Log Message:
-----------
Refactred the way historical connections work to work with RelStorage
Commit: ebbe9fdd23f8cd61d3b084800d3e2a66536ffa00
https://github.com/zopefoundation/ZODB/commit/ebbe9fdd23f8cd61d3b084800d3e2a66536ffa00
Author: Jim Fulton <jim at zope.com>
Date: 2016-06-15 (Wed, 15 Jun 2016)
Changed paths:
M src/ZODB/Connection.py
M src/ZODB/mvccadapter.py
Log Message:
-----------
Changed the historical-connection implementation to always use new instances.
Commit: 61d2c751620f8f0bb3345e47d8effc2af67ce213
https://github.com/zopefoundation/ZODB/commit/61d2c751620f8f0bb3345e47d8effc2af67ce213
Author: Jim Fulton <jim at zope.com>
Date: 2016-06-15 (Wed, 15 Jun 2016)
Changed paths:
M src/ZODB/Connection.py
M src/ZODB/mvccadapter.py
Log Message:
-----------
Better historical connection implementation
- Lower-weight instances when not using RelStorage
- Still works with new RelStorage instances.
- Doesn't make me include loadBefore in MVCCAdapterInstance objects. :)
Commit: b64344f837aa48fa634975575f038c89755b8579
https://github.com/zopefoundation/ZODB/commit/b64344f837aa48fa634975575f038c89755b8579
Author: Jim Fulton <jim at jimfulton.info>
Date: 2016-06-15 (Wed, 15 Jun 2016)
Changed paths:
M setup.py
M src/ZODB/Connection.py
M src/ZODB/DB.py
M src/ZODB/historical_connections.txt
M src/ZODB/interfaces.py
A src/ZODB/mvccadapter.py
M src/ZODB/tests/blob_connection.txt
M src/ZODB/tests/testConnection.py
M src/ZODB/tests/testDB.py
M src/ZODB/tests/testblob.py
M src/ZODB/tests/testmvcc.py
Log Message:
-----------
Merge pull request #66 from zopefoundation/MVCCAdapter
Abstract ZODB's MVCC implementation into a storage adapter.
Commit: 62c3e35ffb48f532f6bde4720c1d12547b75ee9c
https://github.com/zopefoundation/ZODB/commit/62c3e35ffb48f532f6bde4720c1d12547b75ee9c
Author: Jim Fulton <jim at zope.com>
Date: 2016-06-15 (Wed, 15 Jun 2016)
Changed paths:
M CHANGES.rst
M setup.py
M src/ZODB/tests/HistoryStorage.py
M src/ZODB/tests/testFileStorage.py
Log Message:
-----------
Merge remote-tracking branch 'origin/master' into no-more-load
Conflicts:
setup.py
src/ZODB/tests/synchronizers.txt
Commit: 7ed1a8f9ffc95ecf308a327d42a7b0264ce7b0c1
https://github.com/zopefoundation/ZODB/commit/7ed1a8f9ffc95ecf308a327d42a7b0264ce7b0c1
Author: Jim Fulton <jim at zope.com>
Date: 2016-06-16 (Thu, 16 Jun 2016)
Changed paths:
M src/ZODB/mvccadapter.py
Log Message:
-----------
Added missing self argument
Obviously the tests don't call this. This is probably because they use
DB.storage (rather than DB._mvcc_storage).
Commit: 7d81f21a76ed2bbe7aaa347282bd6a2915774b83
https://github.com/zopefoundation/ZODB/commit/7d81f21a76ed2bbe7aaa347282bd6a2915774b83
Author: Jim Fulton <jim at jimfulton.info>
Date: 2016-06-16 (Thu, 16 Jun 2016)
Changed paths:
M setup.py
M src/ZODB/ActivityMonitor.py
M src/ZODB/BaseStorage.py
M src/ZODB/Connection.py
M src/ZODB/DB.py
M src/ZODB/DemoStorage.py
M src/ZODB/FileStorage/FileStorage.py
M src/ZODB/MappingStorage.py
M src/ZODB/historical_connections.txt
M src/ZODB/interfaces.py
A src/ZODB/mvccadapter.py
M src/ZODB/tests/BasicStorage.py
M src/ZODB/tests/MTStorage.py
M src/ZODB/tests/MVCCMappingStorage.py
M src/ZODB/tests/PackableStorage.py
M src/ZODB/tests/StorageTestBase.py
M src/ZODB/tests/blob_connection.txt
M src/ZODB/tests/blob_packing.txt
M src/ZODB/tests/blob_tempdir.txt
M src/ZODB/tests/blobstorage_packing.txt
M src/ZODB/tests/dbopen.txt
M src/ZODB/tests/synchronizers.txt
M src/ZODB/tests/testConnection.py
M src/ZODB/tests/testDB.py
M src/ZODB/tests/testDemoStorage.py
M src/ZODB/tests/testFileStorage.py
M src/ZODB/tests/testMVCCMappingStorage.py
M src/ZODB/tests/test_doctest_files.py
M src/ZODB/tests/test_fsdump.py
M src/ZODB/tests/test_storage.py
M src/ZODB/tests/testblob.py
M src/ZODB/tests/testmvcc.py
M src/ZODB/tests/util.py
M src/ZODB/utils.py
Log Message:
-----------
Merge pull request #56 from zopefoundation/no-more-load
Simplify MVCC by determining transaction start time using lastTransac…
Compare: https://github.com/zopefoundation/ZODB/compare/4905bb85171a...7d81f21a76ed
More information about the checkins
mailing list