Reenable the nosync options for the database

fixes #1355

So far we haven't seen any reduction in issues about database
corruption, so presumably this is unrelated and the lag is annoying.
This commit is contained in:
Nicolas Werner 2023-02-23 21:34:55 +01:00
parent 4372742bc1
commit d46a67f64b
No known key found for this signature in database
GPG key ID: C8D75E610773F2D9

View file

@ -290,7 +290,12 @@ Cache::setup()
// //
// 2022-10-28: Disable the nosync flags again in the hope to crack down on some database // 2022-10-28: Disable the nosync flags again in the hope to crack down on some database
// corruption. // corruption.
env_.open(cacheDirectory_.toStdString().c_str()); //, MDB_NOMETASYNC | MDB_NOSYNC); // 2023-02-23: Reenable the nosync flags. There was no measureable benefit to resiliency,
// but sync causes frequent lag sometimes even for the whole system. Possibly the data
// corruption is an lmdb or filesystem bug. See
// https://github.com/Nheko-Reborn/nheko/issues/1355
// https://github.com/Nheko-Reborn/nheko/issues/1303
env_.open(cacheDirectory_.toStdString().c_str(), MDB_NOMETASYNC | MDB_NOSYNC);
} catch (const lmdb::error &e) { } catch (const lmdb::error &e) {
if (e.code() != MDB_VERSION_MISMATCH && e.code() != MDB_INVALID) { if (e.code() != MDB_VERSION_MISMATCH && e.code() != MDB_INVALID) {
throw std::runtime_error("LMDB initialization failed" + std::string(e.what())); throw std::runtime_error("LMDB initialization failed" + std::string(e.what()));