[Checkins] [zopefoundation/ZEO] ab158e: Handle setting results on Delays who'd protocol we...
GitHub
noreply at github.com
Sat Jul 9 17:41:18 CEST 2016
Branch: refs/heads/simplify-server-commit-lock-management
Home: https://github.com/zopefoundation/ZEO
Commit: ab158e86d1ce73f4a9e0a6905fd5c9b48c8f2b33
https://github.com/zopefoundation/ZEO/commit/ab158e86d1ce73f4a9e0a6905fd5c9b48c8f2b33
Author: Jim Fulton <jim at zope.com>
Date: 2016-07-09 (Sat, 09 Jul 2016)
Changed paths:
M src/ZEO/asyncio/server.py
Log Message:
-----------
Handle setting results on Delays who'd protocol were never set
Because races
Commit: d4a4a7665c98ae2b04d0325675505ed3dd6cb991
https://github.com/zopefoundation/ZEO/commit/d4a4a7665c98ae2b04d0325675505ed3dd6cb991
Author: Jim Fulton <jim at zope.com>
Date: 2016-07-09 (Sat, 09 Jul 2016)
Changed paths:
M src/ZEO/tests/forker.py
Log Message:
-----------
Allow control over server debug logging via an environment variable
Commit: f4bcea77162efd9306003a872ec5ad448e2463c1
https://github.com/zopefoundation/ZEO/commit/f4bcea77162efd9306003a872ec5ad448e2463c1
Author: Jim Fulton <jim at zope.com>
Date: 2016-07-09 (Sat, 09 Jul 2016)
Changed paths:
M src/ZEO/StorageServer.py
M src/ZEO/asyncio/mtacceptor.py
M src/ZEO/tests/testConversionSupport.py
M src/ZEO/tests/testZEO2.py
Log Message:
-----------
Internal refactoring of the commit lock manager
In working on the next iteration of the lock manager to provide
object-level locking, I realized:
- It was saner let all waiting try to get locks when locks are
released, at least in the more complicated logic to follow.
- We really do almost certianly want a multi-threaded server, even if
it doesn't run faster (still an open question), because otherwise,
big commits will completely block loads.
- We don't really want to hold the lock-manager lock while calling the
callback. Again, this really only matters if we have a
multi-threaded server, but it also feels like a matter of hygiene :)
I decided to rework this branch:
- Don't hold lock-manager internal lock when calling the callnack.
- When releasing the lock, use call_soon_threadsafe to let all waiting
have a chance to get the lock.
- A little bit of factoring to DRY. (This factoring will be much more
useful in the follow-on branch.
This rework restores the workability of the thread-per-client model.
Compare: https://github.com/zopefoundation/ZEO/compare/9ef630e2ec16...f4bcea77162e
More information about the checkins
mailing list