From bab2e8f643e36ab4bc4241081947221b2cbcba95 Mon Sep 17 00:00:00 2001 From: Isabella Bosia Date: Fri, 21 Nov 2025 13:47:32 +0000 Subject: [PATCH] reduce false sharing in LogsDBStats --- cpp/core/LogsDB.hpp | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/cpp/core/LogsDB.hpp b/cpp/core/LogsDB.hpp index 58b34579..68f6f169 100644 --- a/cpp/core/LogsDB.hpp +++ b/cpp/core/LogsDB.hpp @@ -70,22 +70,31 @@ struct LogsDBResponse { std::ostream& operator<<(std::ostream& out, const LogsDBResponse& entry); struct LogsDBStats { + alignas(64) + std::atomic isLeader{false}; std::atomic idleTime{0}; std::atomic processingTime{0}; - std::atomic leaderLastActive{0}; - std::atomic appendWindow{0}; - std::atomic entriesReleased{0}; - std::atomic followerLag{0}; - std::atomic readerLag{0}; - std::atomic catchupWindow{0}; - std::atomic entriesRead{0}; std::atomic requestsReceived{0}; std::atomic responsesReceived{0}; + std::atomic appendWindow{0}; + + alignas(64) std::atomic requestsSent{0}; std::atomic responsesSent{0}; std::atomic requestsTimedOut{0}; + + alignas(64) + std::atomic entriesRead{0}; + std::atomic readerLag{0}; + + alignas(64) + std::atomic followerLag{0}; + std::atomic catchupWindow{0}; + + alignas(64) + std::atomic leaderLastActive{0}; std::atomic currentEpoch{0}; - std::atomic isLeader{false}; + std::atomic entriesReleased{0}; }; class LogsDBImpl;