From e02a9a69b9bcee9cbec6dc31e38841b52b9c69b9 Mon Sep 17 00:00:00 2001 From: Joonatan Korpela Date: Thu, 15 Aug 2024 08:54:28 +0300 Subject: [PATCH] fix: Do housekeeping for authmanager at regular intervals --- include/housekeeper.h | 1 + src/housekeeper.cpp | 14 +++++++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/include/housekeeper.h b/include/housekeeper.h index 89c70717..10b09546 100644 --- a/include/housekeeper.h +++ b/include/housekeeper.h @@ -10,6 +10,7 @@ private: std::atomic quit = false; std::atomic hnsw_repair_interval_s = 1800; + std::atomic remove_expired_keys_interval_s = 3600; HouseKeeper() {} diff --git a/src/housekeeper.cpp b/src/housekeeper.cpp index 109d418c..d75138de 100644 --- a/src/housekeeper.cpp +++ b/src/housekeeper.cpp @@ -5,6 +5,9 @@ void HouseKeeper::run() { uint64_t prev_hnsw_repair_s = std::chrono::duration_cast( std::chrono::system_clock::now().time_since_epoch()).count(); + uint64_t prev_remove_expired_keys_s = std::chrono::duration_cast( + std::chrono::system_clock::now().time_since_epoch()).count(); + uint64_t prev_db_compaction_s = std::chrono::duration_cast( std::chrono::system_clock::now().time_since_epoch()).count(); @@ -48,13 +51,18 @@ void HouseKeeper::run() { LOG(INFO) << "Ran housekeeping for " << coll_names.size() << " collections."; } - //do housekeeping for authmanager - CollectionManager::get_instance().getAuthManager().do_housekeeping(); - prev_hnsw_repair_s = std::chrono::duration_cast( std::chrono::system_clock::now().time_since_epoch()).count(); }*/ + if (now_ts_seconds - prev_remove_expired_keys_s >= remove_expired_keys_interval_s) { + // Do housekeeping for authmanager + CollectionManager::get_instance().getAuthManager().do_housekeeping(); + + prev_remove_expired_keys_s = std::chrono::duration_cast( + std::chrono::system_clock::now().time_since_epoch()).count(); + } + lk.unlock(); } }