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

Reply via email to