On Wed, Jan 13, 2016 at 4:06 PM, Olivier Mascia <om at integral.be> wrote:

> Some kind of MVCC is very interesting to us for the purpose of running
> read transactions which would see a stable view of the data, not seeing at
> all the writes committed after the start of the read transactions. If I'm
> not misinterpreting http://www.sqlite.org/wal.html this is what SQLite
> gives us:
>
> "When a read operation begins on a WAL-mode database, it first remembers
> the location of the last valid commit record in the WAL. Call this point
> the "end mark". Because the WAL can be growing and adding new commit
> records while various readers connect to the database, each reader can
> potentially have its own end mark. But for any particular reader, the end
> mark is unchanged for the duration of the transaction, thus ensuring that a
> single read transaction only sees the database content as it existed at a
> single point in time."
>

That does sound like MVCC indeed. Although I guess a true MVCC DB allows
concurrent readers and writer(s), i.e. here new readers could grab the
"last" "end mark" before the write started. Does WAL mode support that? But
if your writes are as small as you say, perhaps reader can retry later with
the timeout feature of SQLite. --DD

Reply via email to