From 7a5fc9f8a90d616a14d746fbf1d955c6c2b1674e Mon Sep 17 00:00:00 2001 From: Francesco Mazzoli Date: Mon, 25 Mar 2024 16:08:54 +0000 Subject: [PATCH] Allow to disable shuckle stat inserting --- cpp/cdc/CDC.cpp | 4 +++- cpp/cdc/CDC.hpp | 1 + cpp/shard/Shard.cpp | 4 +++- cpp/shard/Shard.hpp | 1 + cpp/shard/eggsshard.cpp | 4 ++++ 5 files changed, 12 insertions(+), 2 deletions(-) diff --git a/cpp/cdc/CDC.cpp b/cpp/cdc/CDC.cpp index 20668565..006e30b3 100644 --- a/cpp/cdc/CDC.cpp +++ b/cpp/cdc/CDC.cpp @@ -1094,7 +1094,9 @@ void runCDC(const std::string& dbDir, const CDCOptions& options) { threads.emplace_back(LoopThread::Spawn(std::make_unique(logger, xmon, options, shared))); threads.emplace_back(LoopThread::Spawn(std::make_unique(logger, xmon, options, shared))); - threads.emplace_back(LoopThread::Spawn(std::make_unique(logger, xmon, options, shared))); + if (options.shuckleStats) { + threads.emplace_back(LoopThread::Spawn(std::make_unique(logger, xmon, options, shared))); + } if (options.metrics) { threads.emplace_back(LoopThread::Spawn(std::make_unique(logger, xmon, shared))); } diff --git a/cpp/cdc/CDC.hpp b/cpp/cdc/CDC.hpp index c65fc451..0509672b 100644 --- a/cpp/cdc/CDC.hpp +++ b/cpp/cdc/CDC.hpp @@ -18,6 +18,7 @@ struct CDCOptions { bool xmon = false; bool xmonProd = false; bool metrics = false; + bool shuckleStats = false; ReplicaId replicaId = 0; ReplicaId leaderReplicaId = 0; }; diff --git a/cpp/shard/Shard.cpp b/cpp/shard/Shard.cpp index 95ec1ded..593a6a09 100644 --- a/cpp/shard/Shard.cpp +++ b/cpp/shard/Shard.cpp @@ -1483,7 +1483,9 @@ void runShard(ShardReplicaId shrid, const std::string& dbDir, ShardOptions& opti threads.emplace_back(LoopThread::Spawn(std::make_unique(logger, xmon, shrid, options, shared))); threads.emplace_back(LoopThread::Spawn(std::make_unique(logger, xmon, shrid, options, shared))); threads.emplace_back(LoopThread::Spawn(std::make_unique(logger, xmon, shrid, options, shared))); - threads.emplace_back(LoopThread::Spawn(std::make_unique(logger, xmon, shrid, options, shared))); + if (options.shuckleStats) { + threads.emplace_back(LoopThread::Spawn(std::make_unique(logger, xmon, shrid, options, shared))); + } if (options.metrics) { threads.emplace_back(LoopThread::Spawn(std::make_unique(logger, xmon, shrid, shared))); } diff --git a/cpp/shard/Shard.hpp b/cpp/shard/Shard.hpp index 0876d167..bf816af4 100644 --- a/cpp/shard/Shard.hpp +++ b/cpp/shard/Shard.hpp @@ -27,6 +27,7 @@ struct ShardOptions { bool xmon = false; bool xmonProd = false; bool metrics = false; + bool shuckleStats = false; Duration transientDeadlineInterval = DEFAULT_DEADLINE_INTERVAL; // LogsDB settings diff --git a/cpp/shard/eggsshard.cpp b/cpp/shard/eggsshard.cpp index 5e6f3950..5f6c985f 100644 --- a/cpp/shard/eggsshard.cpp +++ b/cpp/shard/eggsshard.cpp @@ -43,6 +43,8 @@ static void usage(const char* binary) { fprintf(stderr, " Force forward last released. Used for manual leader election. Can not be combined with starting in any LEADER mode\n"); fprintf(stderr, " -clear-logsdb-data\n"); fprintf(stderr, " Removes all data in LogsDB. It can not be used in combination with -use-logsdb to avoid accidental use.\n"); + fprintf(stderr, " -shuckle-stats\n"); + fprintf(stderr, " Insert shuckle histogram stats.\n"); } static double parseDouble(const std::string& arg) { @@ -196,6 +198,8 @@ int main(int argc, char** argv) { } } else if (arg == "-metrics") { options.metrics = true; + } else if (arg == "-shuckle-stats") { + options.shuckleStats = true; } else if (arg == "-transient-deadline-interval") { options.transientDeadlineInterval = parseDuration(getNextArg()); } else if (arg == "-use-logsdb") {