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

Reply via email to