Commit 1bbd6215 authored by Kirill Smelkov's avatar Kirill Smelkov

.

parent 851636d1
...@@ -20,6 +20,20 @@ and later again by https://github.com/zopefoundation/ZEO/commit/94f275c3 . ...@@ -20,6 +20,20 @@ and later again by https://github.com/zopefoundation/ZEO/commit/94f275c3 .
NEO NEO
--- ---
There is no load vs invalidation race on NEO but the protection is implicit:
- client app maintains .last_tid which is updated by poller thread upon
receiving invalidations.
- when load() is called without specifing @head (the case we are considering),
it uses .last_tid for @at with which to ask storage node.
- even if client.load() observes .last_tid which was updated for simultaneously
committed transaction and not yet invalidated cache the following happens:
* client sends AskObject packet to a storage node.
* ask _locks_ corresponding connection to the storage. XXX _not_ to master from which we should have received invalidation message !
- client.app.load
XXX load vs invalidation race is there on ZODB4 and ZODB3, but on ZODB5 there is XXX load vs invalidation race is there on ZODB4 and ZODB3, but on ZODB5 there is
another open vs invalidation race. another open vs invalidation race.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment