According to the docs [1]:
WAL mode is safe from corruption with synchronous=NORMAL, and probably DELETE mode is safe too on modern filesystems. WAL mode is always consistent with synchronous=NORMAL, but WAL mode does lose durability. A transaction committed in WAL mode with synchronous=NORMAL might roll back following a power loss or system crash. Transactions are durable across application crashes regardless of the synchronous setting or journal mode.
Also:
You lose durability across power lose with synchronous NORMAL in WAL mode, but that is not important for most applications. Transactions are still atomic, consistent, and isolated, which are the most important characteristics in most use cases.
The tradeoff here is that SQLite will not aggressively fsync() after every transaction, so we should see less disk pressure.
[1] - https://sqlite.org/wal.html
According to the docs [1]:
WAL mode is safe from corruption with synchronous=NORMAL, and probably DELETE mode is safe too on modern filesystems. WAL mode is always consistent with synchronous=NORMAL, but WAL mode does lose durability. A transaction committed in WAL mode with synchronous=NORMAL might roll back following a power loss or system crash. Transactions are durable across application crashes regardless of the synchronous setting or journal mode.
Also:
You lose durability across power lose with synchronous NORMAL in WAL mode, but that is not important for most applications. Transactions are still atomic, consistent, and isolated, which are the most important characteristics in most use cases.
The tradeoff here is that SQLite will not aggressively fsync() after every transaction, so we should see less disk pressure.
[1] - https://sqlite.org/wal.html
Rebased on 1.6.1
I guess the link to the documentation would be https://www.sqlite.org/pragma.html.
Rebased
Makes sqlite PRAGMA flags configurable, maintaining the new defaults
WIP
Polish
Remove redundant tests for uppercase.
Changes:
- Fix commit typos and code fencing
Move config closer to db module, split out sqlite_ext.
Add changelog, clean up.
Changes:
- Add top-level CHANEGLOG entry
Changes:
- Rebase
- Fix JSON schema test