On Tue, 22 Jan 2019 at 12:51, Rahul Jayaraman <rahul.jayara...@hotmail.com>
wrote:

> > I think "single writer, multiple readers" is the simplest way to describe
> sqlite's approach to isolation
>
> I’m not sure if this summarization paints enough of a picture about how
> SQLite restricts interleaving of read & write operations between concurrent
> transactions, to guarantee isolation. For eg, in Rollback journal, a
> writing transaction looking to commit blocks other readers (as you
> mentioned), but WAL does not.
>

True, it's not the full story. But both "single writer" and "multiple
readers" remain true regardless of the journal mode in use. And the same
isolation semantics are provided either way, no? Transactions cannot see
any updates which occur after they have begun, and writers are serialised.

As you say, the details of how readers and writers interact differ. In
rollback mode, a writer trying to COMMIT prevents new readers from
starting. And in WAL mode, a long-running reader prevents a CHECKPOINT from
proceeding.

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

Reply via email to