Shane Hathaway wrote at 2008-1-31 01:08 -0700:
> ...
>I admit that polling for invalidations probably limits scalability, but 
>I have not yet found a better way to match ZODB with relational 
>databases.  Polling in both PostgreSQL and Oracle appears to cause no 
>delays right now, but if the polling becomes a problem, within 
>RelStorage I can probably find ways to reduce the impact of polling, 
>such as limiting the polling frequency.

I am surprised that you think to be able to play with the polling

  Postgres will deliver objects as they have been when the
  transaction started.
  Therefore, when you start a postgres transaction
  you must invalidate any object in your cache that
  has been modified between load time and the begin of this
  transaction. Otherwise, your cache can deliver stale state
  not fitting with the objects loaded directly from Postgres.

  I read this as you do not have much room for manouver.
  You must ask Postgres about invalidations when the transaction

  Of course, you can in addition ask Postgres periodically
  in order to have a smaller and (hopefully) faster result
  when the transaction starts.

For more information about ZODB, see the ZODB Wiki:

ZODB-Dev mailing list  -

Reply via email to