Robert Brewer wrote:Eric S. Johansson wrote:
I have an application where I need a very simple database, effectively a very large dictionary. The very largeJust to clarify, you want shared-read until a write, at which point you
dictionary must be accessed from multiple processes
simultaneously. I need to be able to lock records within
the very large dictionary when records are written to.
want to lock just the item being written? Or would page or table locking
be acceptable at that point?
just the item/record. I'm doing arrival rate calculations. each record contains a set of arrival times and I am rewriting the record every time a new entry arrives. complete page or table locking will work in the sense that it will prevent collisions but it will have an increasing impact as load and simultaneous table but not record accesses increase.
---eric
Use Firebird as sql backend. Is designed as you request (readers not lock writers and writers not lock readers). Google for "firebird optimistic lock".
Off course, you have python driver: http://kinterbasdb.sf.net and can deploy on windows and linux with a very little footprint.
-- Olaf Zetanien -- http://mail.python.org/mailman/listinfo/python-list