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 frequency. 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 starts. Of course, you can in addition ask Postgres periodically in order to have a smaller and (hopefully) faster result when the transaction starts. -- Dieter _______________________________________________ For more information about ZODB, see the ZODB Wiki: http://www.zope.org/Wikis/ZODB/ ZODB-Dev mailing list - ZODB-Dev@zope.org http://mail.zope.org/mailman/listinfo/zodb-dev