A quick introduction: I'm a software developer in Tucson AZ, and I'm a new
sqlite user (version 3.4.2). I'm really very impressed with this software.
Thank you very much to everyone who has contributed to it!
I have an application that requires separate processes (under Linux) to
concurrently update records in some shared tables (multiple SELECTs and
UPDATEs inside of a transaction). Unfortunately, when I have PRAGMA
synchronous = 1 or 2, it is too slow for my needs, while synchronous = 0 is
plenty fast enough.
It is very likely that I *will* lose power when my application is running.
When this happens, I can live with losing the last few minutes of
transactions, but a corrupted database file that lost all data would cause
much grief to my users (and therefore me).
So my questions are:
With synchronous = 0, are transactions still atomic across processes?
Is running with synchronous=0 likely to non-recoverably corrupt the
database file on power failure?
Are there any recovery tools that can restore consistancy?
I apologise if this has been answered somewhere else (an hour or two of
googling didn't find anything that specifically covered synchronous = 0).
Thank you in advance for any replies!
Cheers,
-Scott