On 24 Sep 2015, at 5:37pm, Allen <allenpmd at gmail.com> wrote:

> I was under the apparently mistaken impression that starting any
> transaction would block writes, even in WAL mode.

In WAL mode, a writing connection writes to the journal.  Other connections 
will continue to read from the 'live' database.  When the writing connection 
commits its transaction

1) the database is locked
2) the 'live' database is updated with the changes in the journal
3) the journal is zero'd out
4) the database is unlocked again

[above is simplified]

This means you can take as long as you like in writing your updates since no 
changes are made until you commit.  But it also means that only one connection 
can make changes at a time, since the to allow two connections to make changes 
at the same time would violate ACID.

Simon.

Reply via email to