[ZODB-Dev] Speedy RelStorage/PostgreSQL
Dieter Maurer
dieter at handshake.de
Thu Jan 31 14:09:25 EST 2008
Shane Hathaway wrote at 2008-1-31 11:35 -0700:
>Dieter Maurer wrote:
>> Shane Hathaway wrote at 2008-1-31 00:12 -0700:
>>> ...
>>> 1. Download ZODB and patch it with poll-invalidation-1-zodb-3-8-0.patch
>>
>> What does "poll invalidation" mean?
>>
>> The RelStorage maintains a sequence of (object) invalidations ordered
>> by "transaction-id" and the client can ask "give me all invalidations
>> above this given transaction id"? It does so at the start of each
>> transaction?
>>
>> In this case, how does the storage know when it can forget
>> invalidations?
>
>That's not quite right--RelStorage does not maintain any per-client
>notification list. Instead, each client asks whether any transactions
>have committed since the last poll. The transaction ID of the last poll
>is tracked by the storage instance bound to the connection. If any
>transactions have committed, then the client gets a list of OIDs changed
>by those transactions and invalidates the corresponding objects.
Then the storage (backend) must maintain all object invalidations down to
the latest transaction id that might be used in a poll.
If it does not, some invalidations may be missing when this poll
asks.
--
Dieter
More information about the ZODB-Dev
mailing list