Stefan C. Kremer
skremer at q.cis.uoguelph.ca
Mon Oct 13 19:56:43 EST 2003
Hi, I have built a web-site that uses a persistent DB connection as suggested in the FAQ to store user passwords for my web-site. The existence of the separate connections (for each python process) is problematic in this case, because one hit on the web-page will initialize the password (or change it) with an SQL update and then another hit to the same page (but on a different PID) may or may not get the lastest version of the password with SELECT. I understand that this is a product of the multiversion model concurrency control (MVCC) which is generally desirable and specifically desirable for my web-site except for the password UPDATE and SELECT commands and the persistent connections I'm using with mod_python. I've been poring over the documentaion and am still a little bit unsure of what the easiest way to approach this is (serializable isolation lever, table-level locks, row-level locks, SELECT FOR UPDATE) and where to apply it (during the UPDATE statement, SELECT statement, or both). The problem is complicated by the fact that I can't easily test it because I never know when the transactions will be autocommitted and which PID my http get will get. I'm looking for a nice simple solution that will work with this rare case (i.e. please don't suggest switching to a different DB, using mod_perl instead ;), etc.). I'm hoping that someone else has tried something similar and can offer a suggestion or pointer (or even a snippit of SQL). FYI the DB is Postgres-7.3 (built from source), mod_python is 3.0 (built from source), DBA is PoPy 2.0.11 (built from source) all living on top of an otherwise stock RH 9.0. Thanks in advance, Stefan -- -- Permanently Temporarily (Until Aug. 2004) Dr. Stefan C. Kremer, Associate Prof. Visiting Researcher Reynolds Building, 106 307 Computer Science/Engineering Bldg Dept. of Computing & Info. Science School of Info. & Computer Science University of Guelph, Guelph, Ontario U of California at Irvine, Irvine, CA N1G 2W1 92697-3425 Tel: (519)824-4120 Ext.58913 Fax: (519)837-0323 WWW: http://q.cis.uoguelph.ca/~skremer E-mail: skremer at uoguelph.ca
|