From cc1588ecfad115295a6eb1e65264d1dd9f038caf Mon Sep 17 00:00:00 2001 From: Kishore Nallan Date: Mon, 22 Jul 2024 21:29:32 +0530 Subject: [PATCH] Flush analytics store before snapshot. --- src/analytics_manager.cpp | 2 +- src/raft_server.cpp | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/analytics_manager.cpp b/src/analytics_manager.cpp index 2279ccac..b6d968fa 100644 --- a/src/analytics_manager.cpp +++ b/src/analytics_manager.cpp @@ -507,7 +507,7 @@ void AnalyticsManager::run(ReplicationState* raft_server) { std::unique_lock lk(mutex); cv.wait_for(lk, std::chrono::seconds(QUERY_COMPACTION_INTERVAL_S), [&] { return quit.load(); }); - //LOG(INFO) << "QuerySuggestions::run"; + //LOG(INFO) << "AnalyticsManager::run"; if(quit) { lk.unlock(); diff --git a/src/raft_server.cpp b/src/raft_server.cpp index 77788661..63294942 100644 --- a/src/raft_server.cpp +++ b/src/raft_server.cpp @@ -579,6 +579,9 @@ void ReplicationState::on_snapshot_save(braft::SnapshotWriter* writer, braft::Cl } if(analytics_store) { + // to ensure that in-memory table is sent to disk (we don't use WAL) + analytics_store->flush(); + rocksdb::Checkpoint* checkpoint2 = nullptr; status = analytics_store->create_check_point(&checkpoint2, analytics_db_snapshot_path); std::unique_ptr checkpoint_guard(checkpoint2);