summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimo Kösters <timo@koesters.xyz>2023-07-27 06:12:31 +0000
committerTimo Kösters <timo@koesters.xyz>2023-07-27 06:12:31 +0000
commit2a100412faee33df3c3b05c673f23060251340b0 (patch)
tree179198b3986dcd58e7b2e1c82fbf1e76018ed31b
parent3e7652909be0ee76752801a80cc49fbbcf5ddcbc (diff)
parent9fb849806783c82934dc74d32849e194e224ed90 (diff)
downloadconduit-2a100412faee33df3c3b05c673f23060251340b0.zip
Merge branch 'relax-rocksdb' into 'next'
relax recovery mode See merge request famedly/conduit!516
-rw-r--r--src/database/abstraction/rocksdb.rs7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/database/abstraction/rocksdb.rs b/src/database/abstraction/rocksdb.rs
index f0b5f2a..b40c439 100644
--- a/src/database/abstraction/rocksdb.rs
+++ b/src/database/abstraction/rocksdb.rs
@@ -49,6 +49,13 @@ fn db_options(max_open_files: i32, rocksdb_cache: &rocksdb::Cache) -> rocksdb::O
db_opts.set_max_background_jobs(6);
db_opts.set_bytes_per_sync(1048576);
+ // https://github.com/facebook/rocksdb/wiki/WAL-Recovery-Modes#ktoleratecorruptedtailrecords
+ //
+ // Unclean shutdowns of a Matrix homeserver are likely to be fine when
+ // recovered in this manner as it's likely any lost information will be
+ // restored via federation.
+ db_opts.set_wal_recovery_mode(rocksdb::DBRecoveryMode::TolerateCorruptedTailRecords);
+
let prefix_extractor = rocksdb::SliceTransform::create_fixed_prefix(1);
db_opts.set_prefix_extractor(prefix_extractor);