[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