[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