[Checkins] [zopefoundation/ZEO] 062cbe: If vote fails with a conflict error, invalidate th...
GitHub
noreply at github.com
Thu Jul 7 17:04:23 CEST 2016
Branch: refs/heads/uvloop
Home: https://github.com/zopefoundation/ZEO
Commit: 062cbecc273b58ebbebd26eec1e8abae89795d0d
https://github.com/zopefoundation/ZEO/commit/062cbecc273b58ebbebd26eec1e8abae89795d0d
Author: Jim Fulton <jim at zope.com>
Date: 2016-07-01 (Fri, 01 Jul 2016)
Changed paths:
M src/ZEO/ClientStorage.py
Log Message:
-----------
If vote fails with a conflict error, invalidate the corresponding cache entry
This used to happen via the server calling serialnos, but ZEO 5
servers no longer do this. For the reason for invalidating the cache
entry, see the new comment.
Commit: 5e6fd05f0ae58eb30179a9ec47c83c5a00bd35d6
https://github.com/zopefoundation/ZEO/commit/5e6fd05f0ae58eb30179a9ec47c83c5a00bd35d6
Author: Jim Fulton <jim at zope.com>
Date: 2016-07-01 (Fri, 01 Jul 2016)
Changed paths:
M src/ZEO/cache.py
M src/ZEO/interfaces.py
Log Message:
-----------
Make the cache thread safe again. :/
There are some cases where we want to touch the cache outside of the
I/O thread. Including:
- ClientStorage wants to to invalidata cache entries if it gets a
conflict error in voting.
- loadBefore can probably be optimized by checking the cache in the
client thread. (This will be safe for loadBefore, because the intent
in practice is never to load current data.
Commit: 020a9f8c671ff5af253e8924e2f012b9a891164b
https://github.com/zopefoundation/ZEO/commit/020a9f8c671ff5af253e8924e2f012b9a891164b
Author: Jim Fulton <jim at zope.com>
Date: 2016-07-01 (Fri, 01 Jul 2016)
Changed paths:
M src/ZEO/StorageServer.py
M src/ZEO/asyncio/server.py
M src/ZEO/asyncio/tests.py
M src/ZEO/tests/forker.py
M src/ZEO/tests/protocols.test
M src/ZEO/tests/testZEO2.py
Log Message:
-----------
Simplified error handling during vote
ZEO's vote error handling was extremely and weirdly complicated.
There's a hysterical explanation: Originally, the ZEO protocol was
synchronous and mirrored the storage API. That was too slow, so store
was made asynchronous. But then there was no way to return new
serials, so we added a serialnos client API that the server called
during TPC. This was used both to serials and errors. Later, tpc_vote
was added, which is a synchronous method. That would have been an
execllent opportunity to fix this, but noooooooooo.
I'd like the server vote logic to get simpler, and we also want to get rid
of serialnos, as it makes it hard to commit multiple transactions at
once on the client. We can't get rid of serialnos now, because the
client needs to work with old servers.
Of course, nothing is easy. There was a special edge case where if the
client saw an unhandled conflict error, it would invalidate it's cache
for that object, allowing it to eventually recover when caches had
missed invalidations. This required a change to ClientStorage, which
meant that the server wouldn't work with older ZEO versions, which
meant that the server could only support protocol Z5, which in tern
affected protocol-negotiation tests....
Commit: 2529c25b267b89db96e43703055305b0f77b8c71
https://github.com/zopefoundation/ZEO/commit/2529c25b267b89db96e43703055305b0f77b8c71
Author: Jim Fulton <jim at zope.com>
Date: 2016-07-02 (Sat, 02 Jul 2016)
Changed paths:
M src/ZEO/tests/ConnectionTests.py
Log Message:
-----------
Removed a test that doesn't make sense any more
As it depends on getting serials from stpre or vote
Commit: 8b4689d59cb14d52940d8e953a8d8ebce06154da
https://github.com/zopefoundation/ZEO/commit/8b4689d59cb14d52940d8e953a8d8ebce06154da
Author: Jim Fulton <jim at zope.com>
Date: 2016-07-02 (Sat, 02 Jul 2016)
Changed paths:
M src/ZEO/ClientStorage.py
M src/ZEO/StorageServer.py
M src/ZEO/TransactionBuffer.py
M src/ZEO/tests/testZEO.py
M src/ZEO/tests/testZEO2.py
Log Message:
-----------
provide IMultiCommitStorage
Commit: 02bb6611597b603b5bf485803d33fe82141c5200
https://github.com/zopefoundation/ZEO/commit/02bb6611597b603b5bf485803d33fe82141c5200
Author: Jim Fulton <jim at zope.com>
Date: 2016-07-05 (Tue, 05 Jul 2016)
Changed paths:
M .travis.yml
A doc/README.rst
R doc/zeo.txt
M setup.py
M src/ZEO/ClientStorage.py
M src/ZEO/StorageServer.py
M src/ZEO/__init__.py
R src/ZEO/acceptor.py
A src/ZEO/asyncio/README.rst
M src/ZEO/asyncio/client.py
A src/ZEO/asyncio/mtacceptor.py
M src/ZEO/asyncio/server.py
M src/ZEO/asyncio/testing.py
M src/ZEO/component.xml
M src/ZEO/runzeo.py
M src/ZEO/schema.xml
A src/ZEO/server.xml
M src/ZEO/tests/CommitLockTests.py
M src/ZEO/tests/ConnectionTests.py
A src/ZEO/tests/client.pem
A src/ZEO/tests/client_key.pem
M src/ZEO/tests/dynamic_server_ports.test
M src/ZEO/tests/forker.py
M src/ZEO/tests/new_addr.test
A src/ZEO/tests/server.pem
A src/ZEO/tests/server_key.pem
A src/ZEO/tests/serverpw.pem
A src/ZEO/tests/serverpw_key.pem
M src/ZEO/tests/testConfig.py
M src/ZEO/tests/testConnection.py
M src/ZEO/tests/testZEO.py
A src/ZEO/tests/testssl.py
A src/ZEO/zconfig.py
M tox.ini
Log Message:
-----------
Merge branch 'ssl' into client-side-conflict-resolution
Conflicts:
src/ZEO/ClientStorage.py
Commit: 54c31e71bfa51085d6f093d6060bc901c5cdf555
https://github.com/zopefoundation/ZEO/commit/54c31e71bfa51085d6f093d6060bc901c5cdf555
Author: Jim Fulton <jim at zope.com>
Date: 2016-07-06 (Wed, 06 Jul 2016)
Changed paths:
M setup.py
Log Message:
-----------
require newer ZODB needed for tests to pass
Commit: 3d886d426243655b9f5a2528636e42b5c7662c19
https://github.com/zopefoundation/ZEO/commit/3d886d426243655b9f5a2528636e42b5c7662c19
Author: Jim Fulton <jim at zope.com>
Date: 2016-07-06 (Wed, 06 Jul 2016)
Changed paths:
M src/ZEO/asyncio/base.py
Log Message:
-----------
Try to make sure TCP_NODELAY is set on INET sockets.
This is a nasty work around for: https://bugs.python.org/issue27456
It can't always be applied. For example, it can't be applied to Linux
SSL sockets using the asyncio-provided loop.
Commit: b8711838912041078cb0bd1706e57b5c4b678c9e
https://github.com/zopefoundation/ZEO/commit/b8711838912041078cb0bd1706e57b5c4b678c9e
Author: Jim Fulton <jim at jimfulton.info>
Date: 2016-07-06 (Wed, 06 Jul 2016)
Changed paths:
M setup.py
M src/ZEO/ClientStorage.py
M src/ZEO/StorageServer.py
M src/ZEO/TransactionBuffer.py
M src/ZEO/asyncio/server.py
M src/ZEO/asyncio/tests.py
M src/ZEO/cache.py
M src/ZEO/interfaces.py
M src/ZEO/tests/ConnectionTests.py
M src/ZEO/tests/forker.py
M src/ZEO/tests/protocols.test
M src/ZEO/tests/testZEO.py
M src/ZEO/tests/testZEO2.py
Log Message:
-----------
Merge pull request #35 from zopefoundation/implement-IMultiCommitStorage
Implement iMultiCommitStorage
Commit: 2f0021335aabb9501a57b69e1c7ac5266de05624
https://github.com/zopefoundation/ZEO/commit/2f0021335aabb9501a57b69e1c7ac5266de05624
Author: Jim Fulton <jim at zope.com>
Date: 2016-07-06 (Wed, 06 Jul 2016)
Changed paths:
M setup.py
M src/ZEO/ClientStorage.py
M src/ZEO/StorageServer.py
M src/ZEO/TransactionBuffer.py
M src/ZEO/asyncio/server.py
M src/ZEO/asyncio/tests.py
M src/ZEO/cache.py
M src/ZEO/interfaces.py
M src/ZEO/tests/ConnectionTests.py
M src/ZEO/tests/forker.py
M src/ZEO/tests/protocols.test
M src/ZEO/tests/testZEO.py
M src/ZEO/tests/testZEO2.py
Log Message:
-----------
Merge remote-tracking branch 'origin/asyncio' into ssl
Conflicts:
src/ZEO/ClientStorage.py
Commit: 22615fb463cd57979a411cc636f30a7965886be4
https://github.com/zopefoundation/ZEO/commit/22615fb463cd57979a411cc636f30a7965886be4
Author: Jim Fulton <jim at zope.com>
Date: 2016-07-06 (Wed, 06 Jul 2016)
Changed paths:
M src/ZEO/StorageServer.py
Log Message:
-----------
removed some unused code
Commit: accd8c023b4c0aedbbd5d16faf63618095588351
https://github.com/zopefoundation/ZEO/commit/accd8c023b4c0aedbbd5d16faf63618095588351
Author: Jim Fulton <jim at zope.com>
Date: 2016-07-06 (Wed, 06 Jul 2016)
Changed paths:
M src/ZEO/StorageServer.py
A src/ZEO/tests/test_client_side_conflict_resolution.py
A src/ZEO/tests/utils.py
Log Message:
-----------
server side
Commit: dabcb601343869fabd1578ccef1b45e904e61a01
https://github.com/zopefoundation/ZEO/commit/dabcb601343869fabd1578ccef1b45e904e61a01
Author: Jim Fulton <jim at zope.com>
Date: 2016-07-06 (Wed, 06 Jul 2016)
Changed paths:
M src/ZEO/ClientStorage.py
M src/ZEO/StorageServer.py
M src/ZEO/TransactionBuffer.py
M src/ZEO/runzeo.py
M src/ZEO/server.xml
M src/ZEO/tests/forker.py
M src/ZEO/tests/test_client_side_conflict_resolution.py
Log Message:
-----------
client side and server config and tweaks
Commit: 4cdbf8b15796cfd2757e1737b63b55f412ba83d1
https://github.com/zopefoundation/ZEO/commit/4cdbf8b15796cfd2757e1737b63b55f412ba83d1
Author: Jim Fulton <jim at zope.com>
Date: 2016-07-06 (Wed, 06 Jul 2016)
Changed paths:
M src/ZEO/tests/CommitLockTests.py
M src/ZEO/tests/ConnectionTests.py
M src/ZEO/tests/testConversionSupport.py
M src/ZEO/tests/testZEO.py
Log Message:
-----------
fixed tests
Commit: 92e49851c8f430c6ff72b4fb4a7e24e0ef391de3
https://github.com/zopefoundation/ZEO/commit/92e49851c8f430c6ff72b4fb4a7e24e0ef391de3
Author: Jim Fulton <jim at zope.com>
Date: 2016-07-07 (Thu, 07 Jul 2016)
Changed paths:
M src/ZEO/tests/forker.py
M src/ZEO/tests/testZEO.py
Log Message:
-----------
run pre-defined conflict-resolution tests with client-side conflict resolution
Commit: af1e20040a4609510200eb2f204f74aa9bdd09ae
https://github.com/zopefoundation/ZEO/commit/af1e20040a4609510200eb2f204f74aa9bdd09ae
Author: Jim Fulton <jim at zope.com>
Date: 2016-07-07 (Thu, 07 Jul 2016)
Changed paths:
M src/ZEO/asyncio/base.py
Log Message:
-----------
Cleaner fix.
I'd missed that you could get a transport's socket using get_extra_info.
Commit: 1eb086dae13b17304f5d4b0614872be3bb4aa447
https://github.com/zopefoundation/ZEO/commit/1eb086dae13b17304f5d4b0614872be3bb4aa447
Author: Jim Fulton <jim at jimfulton.info>
Date: 2016-07-07 (Thu, 07 Jul 2016)
Changed paths:
M .travis.yml
A doc/README.rst
R doc/zeo.txt
M setup.py
M src/ZEO/ClientStorage.py
M src/ZEO/StorageServer.py
M src/ZEO/__init__.py
R src/ZEO/acceptor.py
A src/ZEO/asyncio/README.rst
M src/ZEO/asyncio/client.py
A src/ZEO/asyncio/mtacceptor.py
M src/ZEO/asyncio/server.py
M src/ZEO/asyncio/testing.py
M src/ZEO/component.xml
M src/ZEO/runzeo.py
M src/ZEO/schema.xml
A src/ZEO/server.xml
M src/ZEO/tests/CommitLockTests.py
M src/ZEO/tests/ConnectionTests.py
A src/ZEO/tests/client.pem
A src/ZEO/tests/client_key.pem
M src/ZEO/tests/dynamic_server_ports.test
M src/ZEO/tests/forker.py
M src/ZEO/tests/new_addr.test
A src/ZEO/tests/server.pem
A src/ZEO/tests/server_key.pem
A src/ZEO/tests/serverpw.pem
A src/ZEO/tests/serverpw_key.pem
M src/ZEO/tests/testConfig.py
M src/ZEO/tests/testConnection.py
M src/ZEO/tests/testZEO.py
A src/ZEO/tests/testssl.py
A src/ZEO/zconfig.py
M tox.ini
Log Message:
-----------
Merge pull request #32 from zopefoundation/ssl
Add SSL support +
It's sad no reviewer, but I suppose it can be reviewed even after a merge.
Commit: 5a5320e625fc6899fb3cfcf8d986c13f54848c94
https://github.com/zopefoundation/ZEO/commit/5a5320e625fc6899fb3cfcf8d986c13f54848c94
Author: Jim Fulton <jim at zope.com>
Date: 2016-07-07 (Thu, 07 Jul 2016)
Changed paths:
M setup.py
M src/ZEO/ClientStorage.py
M src/ZEO/StorageServer.py
Log Message:
-----------
Merge remote-tracking branch 'origin/asyncio' into client-side-conflict-resolution
Conflicts:
src/ZEO/ClientStorage.py
src/ZEO/StorageServer.py
Commit: 10d7f9ffa115ece8d94e51bbddc601a8d670a69e
https://github.com/zopefoundation/ZEO/commit/10d7f9ffa115ece8d94e51bbddc601a8d670a69e
Author: Jim Fulton <jim at zope.com>
Date: 2016-07-07 (Thu, 07 Jul 2016)
Changed paths:
M src/ZEO/tests/forker.py
Log Message:
-----------
fixed a waitpid call (unrelated to rest of branch, sorry)
Commit: 70f070e80f5290cf9ba28dc90d96bc27579b98c7
https://github.com/zopefoundation/ZEO/commit/70f070e80f5290cf9ba28dc90d96bc27579b98c7
Author: Jim Fulton <jim at zope.com>
Date: 2016-07-07 (Thu, 07 Jul 2016)
Changed paths:
M src/ZEO/asyncio/testing.py
Log Message:
-----------
need new transport extra
I'm losing my love of stubs. :(
Commit: fc41070f655a2e77e7e03857eaf1a370a319c18c
https://github.com/zopefoundation/ZEO/commit/fc41070f655a2e77e7e03857eaf1a370a319c18c
Author: Jim Fulton <jim at zope.com>
Date: 2016-07-07 (Thu, 07 Jul 2016)
Changed paths:
M setup.py
M src/ZEO/ClientStorage.py
M src/ZEO/StorageServer.py
M src/ZEO/TransactionBuffer.py
M src/ZEO/asyncio/server.py
M src/ZEO/asyncio/tests.py
M src/ZEO/cache.py
M src/ZEO/interfaces.py
M src/ZEO/tests/ConnectionTests.py
M src/ZEO/tests/forker.py
M src/ZEO/tests/protocols.test
M src/ZEO/tests/testZEO.py
M src/ZEO/tests/testZEO2.py
Log Message:
-----------
Merge remote-tracking branch 'origin/asyncio' into TCP_NODELAY
Commit: a0fa2fe71d22bc6af2c9b93bfe15847be06d0fe1
https://github.com/zopefoundation/ZEO/commit/a0fa2fe71d22bc6af2c9b93bfe15847be06d0fe1
Author: Jim Fulton <jim at zope.com>
Date: 2016-07-07 (Thu, 07 Jul 2016)
Changed paths:
M src/ZEO/tests/InvalidationTests.py
Log Message:
-----------
Work around bugs in DB root-object initialization
See: https://github.com/zopefoundation/ZODB/issues/84
Commit: bff1a14a161deb4a1b53a8d2e48643baddf5dae7
https://github.com/zopefoundation/ZEO/commit/bff1a14a161deb4a1b53a8d2e48643baddf5dae7
Author: Jim Fulton <jim at jimfulton.info>
Date: 2016-07-07 (Thu, 07 Jul 2016)
Changed paths:
M src/ZEO/asyncio/base.py
M src/ZEO/asyncio/testing.py
M src/ZEO/tests/InvalidationTests.py
Log Message:
-----------
Merge pull request #37 from zopefoundation/TCP_NODELAY
TCP_NODELAY
Commit: e5653d437904db4ab5809cef5257541677800c89
https://github.com/zopefoundation/ZEO/commit/e5653d437904db4ab5809cef5257541677800c89
Author: Jim Fulton <jim at jimfulton.info>
Date: 2016-07-07 (Thu, 07 Jul 2016)
Changed paths:
M src/ZEO/ClientStorage.py
M src/ZEO/StorageServer.py
M src/ZEO/TransactionBuffer.py
M src/ZEO/runzeo.py
M src/ZEO/server.xml
M src/ZEO/tests/CommitLockTests.py
M src/ZEO/tests/ConnectionTests.py
M src/ZEO/tests/forker.py
M src/ZEO/tests/testConversionSupport.py
M src/ZEO/tests/testZEO.py
A src/ZEO/tests/test_client_side_conflict_resolution.py
A src/ZEO/tests/utils.py
Log Message:
-----------
Merge pull request #38 from zopefoundation/client-side-conflict-resolution
Client side conflict resolution
Commit: e8bec203c38430de3809730901e2698595be6153
https://github.com/zopefoundation/ZEO/commit/e8bec203c38430de3809730901e2698595be6153
Author: Jim Fulton <jim at zope.com>
Date: 2016-07-07 (Thu, 07 Jul 2016)
Changed paths:
M src/ZEO/ClientStorage.py
M src/ZEO/StorageServer.py
M src/ZEO/TransactionBuffer.py
M src/ZEO/asyncio/base.py
M src/ZEO/asyncio/server.py
M src/ZEO/asyncio/testing.py
M src/ZEO/asyncio/tests.py
M src/ZEO/cache.py
M src/ZEO/interfaces.py
M src/ZEO/runzeo.py
M src/ZEO/server.xml
M src/ZEO/tests/CommitLockTests.py
M src/ZEO/tests/ConnectionTests.py
M src/ZEO/tests/InvalidationTests.py
M src/ZEO/tests/forker.py
M src/ZEO/tests/protocols.test
M src/ZEO/tests/testConversionSupport.py
M src/ZEO/tests/testZEO.py
M src/ZEO/tests/testZEO2.py
A src/ZEO/tests/test_client_side_conflict_resolution.py
A src/ZEO/tests/utils.py
Log Message:
-----------
Merge remote-tracking branch 'origin/asyncio' into uvloop
Conflicts:
setup.py
Compare: https://github.com/zopefoundation/ZEO/compare/b76fea7d3dc2...e8bec203c384
More information about the checkins
mailing list