On 7/31/2019 6:36 AM, test user wrote:
As an example, the client of this library could:
- A. Obtain a "read transaction", *without running any SELECTs*.
- B. Complete 20 write transactions in another process.
- C. Begin reading from the read transaction (A) at the point before the
transactions had occurred.
In the current world, that client would execute BEGIN, then wait a bit, then
start reading and discover the data written by another process. How does it
know that those writes occurred between BEGIN and SELECT, and not before BEGIN?
Why would that distinction matter to it in the first place?
Do you envision some other channel of communication and synchronization between
these two processes, outside the SQLite database, that would help establish
that writes occurred after BEGIN? With SQLite alone, it's impossible to tell
whether the sequence of events was A-B-C or B-A-C - both sequences produce the
exact same observable behavior. So guarding against B squeezing between A and C
seems rather pointless.
--
Igor Tandetnik
_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users