On Sat, Feb 23, 2013 at 11:20 AM, Dennis Lee Bieber <wlfr...@ix.netcom.com> wrote: > Problem: SQLite3 (and M$ JET/Access) are considered "file server" > databases. Each instance of the program accessing the database is > directly opening the database file(s). While SQLite3 has a fairly > complex locking system, the normal locking is NOT "per record". Instead > it allows for multiple readers to be active at once; the first > connection/cursor to attempt to write anything will block any new > attempts to read, and will be blocked until all other active readers > exit (and none of those other readers can attempt to write). When there > are no other open readers, the writer can finish and commit changes.
Also MySQL, when using the default MyISAM back-end. In contrast, PostgreSQL uses MVCC to permit lock-free reading in most cases (you keep reading the version you can "see", and a writer happily tinkers with a new version; until the writer COMMITs, its version is invisible to you). There's more overhead to the PostgreSQL system, but it scales better with multiple writers. (MySQL is primarily designed for dynamic web sites, where there are thousands of readers but only (relatively) occasional writers.) ChrisA -- http://mail.python.org/mailman/listinfo/python-list