On Aug 9, 2010, at 12:07 PM, Dan Kennedy wrote: > > On Aug 9, 2010, at 11:30 AM, David Barrett wrote: > >> I'm reading up on the new write-ahead logging feature, and I'm >> unclear >> on one point: does WAL only help alleviate multi-threaded locking (by >> allowing other threads to continue reading while one is writing), or >> does WAL also help between multiple processes? >> >> My understanding could be completely wrong, but I think the following >> statements are true -- can you help fact check me? (I've read >> http://www.sqlite.org/lockingv3.html but it doesn't seem to have been >> updated for WAL -- assuming any updates are even needed.) >> >> 1) Two processes can read from the same database at the same time. >> >> 2) However, one process cannot read from the database while another >> is >> writing -- WAL is irrelevant here. >> >> 3) One process can have two threads that read from the database from >> the >> same time. >> >> 4) And thanks to WAL, now one process can have one thread writing and >> any number of threads reading at the same time. >> >> 5) However, WAL does not allow multiple threads to write at the same >> time. >> >> Is this right? Or am I totally off? Are there any good pages >> outlining >> the intersection between multi-process database locking and WAL? >> Thanks! > > Unless shared-cache mode is turned on, multiple threads each using > their own sqlite3* connection should behave in the same way as > multiple processes do wrt to sqlite locking.
I should be clearer: The above was meant to imply that (2) is not a true statement. The others are all correct. _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users