On 25/01/16 14:14, Richard Hipp wrote: > On 1/19/16, Meinlschmidt Stefan <Stefan.Meinlschmidt at esolutions.de> wrote: >> >> Shutting down power right after a successfully committed >> transaction rolls back that transaction on next startup. > > Patches checked in: > > https://www.sqlite.org/src/info/30671345b1c1ee55 > https://www.sqlite.org/draft/compile.html#extra_durable
Does this mean that if I use SQLite SQLITE_EXTRA_DURABLE=0, PRAGMA journal_mode=DELETE and PRAGMA synchronous=FULL, SQLite could loose a transaction that it said to be committed depending on the VFS? If so, why isn't SQLITE_EXTRA_DURABLE=1 the default? Should correctness be more important than performance, except when the constraints are such that correctness has to be sacrificed for performance? The trade-off that is described in the description of SQLite SQLITE_EXTRA_DURABLE reads like an excerpt from the MySQL manual when MyISAM was still widely used. Perhaps I'm also too irritated by discussions with advocates of MySQL who would argue against the fact that proper transactions were necessary because the DBMS would be faster without them. That is not to say that the ACID properties and transactions solve every concurrency or correctness problem but they help significantly. - Matthias-Christian