sgx/firefly: disable btrfs CoW on Firefly III sqlite directory
Random-write SQLite traffic fragments CoW filesystems quickly. The `h` tmpfiles directive sets +C on the database directory; new SQLite files (WAL, SHM, recreated main DB) inherit no-CoW automatically. No-op on non-btrfs filesystems. Migration of existing files must be done manually with checkpoint-first: systemctl stop phpfpm-firefly-iii.service sqlite3 .../database.sqlite 'PRAGMA wal_checkpoint(TRUNCATE);' # then recreate main file inside the +C dir systemctl start phpfpm-firefly-iii.service Skipping the wal_checkpoint and naively deleting .sqlite-wal will lose all writes that haven't been checkpointed (PHP-FPM SIGTERM does not trigger a checkpoint). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
81b9d2208c
commit
c1503b56aa
1 changed files with 6 additions and 0 deletions
|
|
@ -53,6 +53,12 @@ in
|
|||
"d ${inbox} 0700 firefly-iii-data-importer nginx -"
|
||||
"d ${importerHome}/.aqbanking/imexporters/csv/profiles 0700 firefly-iii-data-importer nginx -"
|
||||
"L+ ${importerHome}/.aqbanking/imexporters/csv/profiles/firefly.conf - - - - ${fireflyCsvProfile}"
|
||||
# Disable btrfs CoW on Firefly's SQLite directory — random-write
|
||||
# SQLite traffic fragments CoW filesystems quickly. New files in
|
||||
# this dir inherit the +C attribute. Existing database.sqlite,
|
||||
# -wal, -shm need a one-time recreate to apply (use sqlite3 .backup
|
||||
# into a fresh +C file). No-op on non-btrfs filesystems.
|
||||
"h /var/lib/firefly-iii/storage/database - - - - +C"
|
||||
];
|
||||
|
||||
services.firefly-sparda-fetch = {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue