On 28 Feb 2015, at 7:02pm, Olivier Vidal <paxdo at mac.com> wrote: > According to this paragraph http://www.sqlite.org/faq.html#q5, multiple > applications or multiple instances of the same application can access the > *same* database at the *same time*. Even in WAL mode?
Yes. Assuming that you are talking about lots of applications on one computer, with the database accessed stored on that computer rather than being accessed across a network. WAL mode is actually better than this than the original journal mode. > If I have understood correctly, all applications will be able to read the > sqlite database at the same time, but there will be only one thread (one > thread of one application) who will write at the same time (in WAL mode). In WAL mode there is no need for serialisation until something needs to write to the database. Any amount of reading can happen very quickly until something starts to write. Only then does SQLite have to start worrying about multiple access problems. (This description is simplified. Sorry about that.) > According to your experience, it is reliable? Serialization is still > correctly performed through applications? It works as advertised. Even with multiple applications doing writing it works as advertised. It just means that when one application starts writing the others are blocked until that one is finished. Do not forget to set an acceptable timeout value using the PRAGMA or C function. A minute or two is usually a good value. SQLite has no reliability problems we're aware of unless you do the things listed here: <https://www.sqlite.org/howtocorrupt.html> Simon.