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!

-david
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to