about summary refs log tree commit homepage
path: root/lib/PublicInbox/IMAPTracker.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/PublicInbox/IMAPTracker.pm')
-rw-r--r--lib/PublicInbox/IMAPTracker.pm7
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/PublicInbox/IMAPTracker.pm b/lib/PublicInbox/IMAPTracker.pm
index 102a74ce..92f21584 100644
--- a/lib/PublicInbox/IMAPTracker.pm
+++ b/lib/PublicInbox/IMAPTracker.pm
@@ -29,7 +29,12 @@ sub dbh_new ($) {
                 sqlite_use_immediate_transaction => 1,
         });
         $dbh->{sqlite_unicode} = 1;
-        $dbh->do('PRAGMA journal_mode = TRUNCATE');
+
+        # TRUNCATE reduces I/O compared to the default (DELETE).
+        # Allow and preserve user-overridden WAL, but don't force it.
+        my $jm = $dbh->selectrow_array('PRAGMA journal_mode');
+        $dbh->do('PRAGMA journal_mode = TRUNCATE') if $jm ne 'wal';
+
         create_tables($dbh);
         $dbh;
 }