Re: [SQLObject] load balancing and SQLObject cache
SQLObject is a Python ORM.
Brought to you by:
ianbicking,
phd
From: Егор С. <eg...@co...> - 2011-07-19 12:43:08
|
It does not seem to work. When I set cache to 0 and debug to 1 in uri DB URI ('postgres://host/db?cache=0&debug=1') f = db.Person.get(5) print f.name f1 = db.Person.get(5) print f1.name I don't see second select to the database on second get. Apparently, the value is fetched from expiredCache. Any suggestions? Thank you. On 7/19/2011 7:34 AM, Oleg Broytman wrote: > On Tue, Jul 19, 2011 at 12:21:32AM -0300, Егор Следов wrote: >> I have a web application with two load-balanced webservers and a separate postgres database server. >> >> When SQLObject instance is updated, the update is processed randomly through either of the servers. >> Sometimes user does the update on one server, and immediately opens object for reading on another. >> So, if caching is on, it looks like database is not getting updated. >> >> If I turn caching off by setting sqlmeta.cacheValues to False, then call to each and every property issues a separate SQL select, and this slows everything down a lot. >> >> What would be the right approach to minimize number of selects on a single webpage? >> Keeping cache on, but calling object.expire(), object.another.expire() after referencing any properties? Trying to lower cullFrequency parameter of cache? > > In SQLObject there are three ways of caching - attribute caching > (governed by sqlmeta.cacheValues), row caching (governed by > connection.cache), and update caching (governed by sqlmeta.lazyUpdates). > What you probably want is to stop row caching - every time the programs > fetches a row it asks the database, not the cache. So leave > sqlmeta.cacheValues and sqlmeta.lazyUpdates alone (their default values > are good for you) and set connection.cache.doCache=False. You can do it > from DB URI ('postgres://host/db?cache=0'); if the program opens > connection without an URI the parameter for PostgresConnection is > cache=False. > > Oleg. |