[Checkins] [zopefoundation/ZODB] 290913: Abstract ZODB's MVCC implementation into a storage...

GitHub noreply at github.com
Wed Jun 15 22:42:05 CEST 2016


  Branch: refs/heads/no-more-load
  Home:   https://github.com/zopefoundation/ZODB
  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.


Compare: https://github.com/zopefoundation/ZODB/compare/9bcd944e633e...b64344f837aa


More information about the checkins mailing list