aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorazevaykin <azevaykin@yandex-team.com>2023-06-23 12:06:30 +0300
committerazevaykin <azevaykin@yandex-team.com>2023-06-23 12:06:30 +0300
commitcf5721e6720a858911ba779b066590df89d6b35c (patch)
tree256a8002a428271eac92434828fd28d581a82c1e
parent1a9848795e99198bc8fcba5dc558a49056cc6e76 (diff)
downloadydb-cf5721e6720a858911ba779b066590df89d6b35c.tar.gz
Add sleep before writer thread start. Increase default TotalSec & WarmupSec.
-rw-r--r--ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_reader.cpp2
-rw-r--r--ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_reader.h2
-rw-r--r--ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_run_full.cpp19
-rw-r--r--ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_run_full.h3
-rw-r--r--ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_run_read.cpp16
-rw-r--r--ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_run_read.h3
-rw-r--r--ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_run_write.cpp17
-rw-r--r--ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_run_write.h3
-rw-r--r--ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_stats.h5
-rw-r--r--ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_stats_collector.cpp10
-rw-r--r--ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_stats_collector.h4
-rw-r--r--ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_writer.cpp18
-rw-r--r--ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_writer.h5
-rw-r--r--ydb/public/lib/ydb_cli/commands/ydb_workload.cpp14
-rw-r--r--ydb/public/lib/ydb_cli/commands/ydb_workload.h4
15 files changed, 55 insertions, 70 deletions
diff --git a/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_reader.cpp b/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_reader.cpp
index 0c0945e2db..c76717fc3f 100644
--- a/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_reader.cpp
+++ b/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_reader.cpp
@@ -34,7 +34,7 @@ void TTopicWorkloadReader::ReaderLoop(TTopicWorkloadReaderParams&& params) {
(*params.StartedCount)++;
- const TInstant endTime = Now() + TDuration::Seconds(params.Seconds + 3);
+ const TInstant endTime = Now() + TDuration::Seconds(params.TotalSec + 3);
while (Now() < endTime && !*params.ErrorFlag) {
TInstant st = TInstant::Now();
diff --git a/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_reader.h b/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_reader.h
index 69f507b5d6..3fe3c39e07 100644
--- a/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_reader.h
+++ b/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_reader.h
@@ -11,7 +11,7 @@
namespace NYdb {
namespace NConsoleClient {
struct TTopicWorkloadReaderParams {
- size_t Seconds;
+ size_t TotalSec;
NYdb::TDriver* Driver;
std::shared_ptr<TLog> Log;
std::shared_ptr<TTopicWorkloadStatsCollector> StatsCollector;
diff --git a/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_run_full.cpp b/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_run_full.cpp
index 4f0d577147..ee878d6800 100644
--- a/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_run_full.cpp
+++ b/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_run_full.cpp
@@ -36,11 +36,11 @@ void TCommandWorkloadTopicRunFull::Config(TConfig& config) {
// Common params
config.Opts->AddLongOption('s', "seconds", "Seconds to run workload.")
- .DefaultValue(10)
- .StoreResult(&Seconds);
+ .DefaultValue(60)
+ .StoreResult(&TotalSec);
config.Opts->AddLongOption('w', "window", "Output window duration in seconds.")
.DefaultValue(1)
- .StoreResult(&WindowDurationSec);
+ .StoreResult(&WindowSec);
config.Opts->AddLongOption('q', "quiet", "Quiet mode. Doesn't print statistics each second.")
.StoreTrue(&Quiet);
config.Opts->AddLongOption("print-timestamp", "Print timestamp each second with statistics.")
@@ -49,8 +49,8 @@ void TCommandWorkloadTopicRunFull::Config(TConfig& config) {
.DefaultValue(50)
.StoreResult(&Percentile);
config.Opts->AddLongOption("warmup", "Warm-up time in seconds.")
- .DefaultValue(1)
- .StoreResult(&Warmup);
+ .DefaultValue(5)
+ .StoreResult(&WarmupSec);
config.Opts->AddLongOption("topic", "Topic name.")
.DefaultValue(TOPIC)
.StoreResult(&TopicName);
@@ -91,7 +91,7 @@ void TCommandWorkloadTopicRunFull::Parse(TConfig& config)
if (Percentile > 100 || Percentile <= 0) {
throw TMisuseException() << "--percentile should be in range (0,100].";
}
- if (Warmup >= Seconds) {
+ if (WarmupSec >= TotalSec) {
throw TMisuseException() << "--warmup should be less than --seconds.";
}
}
@@ -101,7 +101,7 @@ int TCommandWorkloadTopicRunFull::Run(TConfig& config) {
Log->SetFormatter(GetPrefixLogFormatter(""));
Driver = std::make_unique<NYdb::TDriver>(CreateDriver(config, CreateLogBackend("cerr", TClientCommand::TConfig::VerbosityLevelToELogPriority(config.VerbosityLevel))));
- StatsCollector = std::make_shared<TTopicWorkloadStatsCollector>(ProducerThreadCount, ConsumerCount * ConsumerThreadCount, Quiet, PrintTimestamp, WindowDurationSec, Seconds, Warmup, Percentile, ErrorFlag);
+ StatsCollector = std::make_shared<TTopicWorkloadStatsCollector>(ProducerThreadCount, ConsumerCount * ConsumerThreadCount, Quiet, PrintTimestamp, WindowSec, TotalSec, WarmupSec, Percentile, ErrorFlag);
StatsCollector->PrintHeader();
std::vector<TString> generatedMessages = TTopicWorkloadWriterWorker::GenerateMessages(MessageSize);
@@ -115,7 +115,7 @@ int TCommandWorkloadTopicRunFull::Run(TConfig& config) {
for (ui32 consumerIdx = 0; consumerIdx < ConsumerCount; ++consumerIdx) {
for (ui32 consumerThreadIdx = 0; consumerThreadIdx < ConsumerThreadCount; ++consumerThreadIdx) {
TTopicWorkloadReaderParams readerParams{
- .Seconds = Seconds,
+ .TotalSec = TotalSec,
.Driver = Driver.get(),
.Log = Log,
.StatsCollector = StatsCollector,
@@ -135,7 +135,8 @@ int TCommandWorkloadTopicRunFull::Run(TConfig& config) {
auto producerStartedCount = std::make_shared<std::atomic_uint>();
for (ui32 writerIdx = 0; writerIdx < ProducerThreadCount; ++writerIdx) {
TTopicWorkloadWriterParams writerParams{
- .Seconds = Seconds,
+ .TotalSec = TotalSec,
+ .WarmupSec = WarmupSec,
.Driver = Driver.get(),
.Log = Log,
.StatsCollector = StatsCollector,
diff --git a/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_run_full.h b/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_run_full.h
index 3137de8ccf..ce73272bae 100644
--- a/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_run_full.h
+++ b/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_run_full.h
@@ -17,8 +17,7 @@ namespace NYdb {
private:
TString TopicName;
- ui32 Seconds;
- ui32 Warmup;
+ ui32 WarmupSec;
double Percentile;
size_t MessageRate;
diff --git a/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_run_read.cpp b/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_run_read.cpp
index af590c3718..d6ea6a6039 100644
--- a/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_run_read.cpp
+++ b/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_run_read.cpp
@@ -33,11 +33,11 @@ void TCommandWorkloadTopicRunRead::Config(TConfig& config) {
// Common params
config.Opts->AddLongOption('s', "seconds", "Seconds to run workload.")
- .DefaultValue(10)
- .StoreResult(&Seconds);
+ .DefaultValue(60)
+ .StoreResult(&TotalSec);
config.Opts->AddLongOption('w', "window", "Output window duration in seconds.")
.DefaultValue(1)
- .StoreResult(&WindowDurationSec);
+ .StoreResult(&WindowSec);
config.Opts->AddLongOption('q', "quiet", "Quiet mode. Doesn't print statistics each second.")
.StoreTrue(&Quiet);
config.Opts->AddLongOption("print-timestamp", "Print timestamp each second with statistics.")
@@ -46,8 +46,8 @@ void TCommandWorkloadTopicRunRead::Config(TConfig& config) {
.DefaultValue(50)
.StoreResult(&Percentile);
config.Opts->AddLongOption("warmup", "Warm-up time in seconds.")
- .DefaultValue(1)
- .StoreResult(&Warmup);
+ .DefaultValue(5)
+ .StoreResult(&WarmupSec);
config.Opts->AddLongOption("topic", "Topic name.")
.DefaultValue(TOPIC)
.StoreResult(&TopicName);
@@ -70,7 +70,7 @@ void TCommandWorkloadTopicRunRead::Parse(TConfig& config)
if (Percentile > 100 || Percentile <= 0) {
throw TMisuseException() << "--percentile should be in range (0,100].";
}
- if (Warmup >= Seconds) {
+ if (WarmupSec >= TotalSec) {
throw TMisuseException() << "--warmup should be less than --seconds.";
}
}
@@ -80,7 +80,7 @@ int TCommandWorkloadTopicRunRead::Run(TConfig& config) {
Log->SetFormatter(GetPrefixLogFormatter(""));
Driver = std::make_unique<NYdb::TDriver>(CreateDriver(config, CreateLogBackend("cerr", TClientCommand::TConfig::VerbosityLevelToELogPriority(config.VerbosityLevel))));
- StatsCollector = std::make_shared<TTopicWorkloadStatsCollector>(0, ConsumerCount * ConsumerThreadCount, Quiet, PrintTimestamp, WindowDurationSec, Seconds, Warmup, Percentile, ErrorFlag);
+ StatsCollector = std::make_shared<TTopicWorkloadStatsCollector>(0, ConsumerCount * ConsumerThreadCount, Quiet, PrintTimestamp, WindowSec, TotalSec, WarmupSec, Percentile, ErrorFlag);
StatsCollector->PrintHeader();
std::vector<std::future<void>> threads;
@@ -89,7 +89,7 @@ int TCommandWorkloadTopicRunRead::Run(TConfig& config) {
for (ui32 consumerIdx = 0; consumerIdx < ConsumerCount; ++consumerIdx) {
for (ui32 consumerThreadIdx = 0; consumerThreadIdx < ConsumerThreadCount; ++consumerThreadIdx) {
TTopicWorkloadReaderParams readerParams{
- .Seconds = Seconds,
+ .TotalSec = TotalSec,
.Driver = Driver.get(),
.Log = Log,
.StatsCollector = StatsCollector,
diff --git a/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_run_read.h b/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_run_read.h
index 75c46caa6f..7f7a30bd88 100644
--- a/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_run_read.h
+++ b/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_run_read.h
@@ -17,8 +17,7 @@ namespace NYdb {
private:
TString TopicName;
- ui32 Seconds;
- ui32 Warmup;
+ ui32 WarmupSec;
double Percentile;
ui32 ConsumerThreadCount;
diff --git a/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_run_write.cpp b/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_run_write.cpp
index a2c5a39279..a55cc0bdc7 100644
--- a/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_run_write.cpp
+++ b/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_run_write.cpp
@@ -35,11 +35,11 @@ void TCommandWorkloadTopicRunWrite::Config(TConfig& config) {
// Common params
config.Opts->AddLongOption('s', "seconds", "Seconds to run workload.")
- .DefaultValue(10)
- .StoreResult(&Seconds);
+ .DefaultValue(60)
+ .StoreResult(&TotalSec);
config.Opts->AddLongOption('w', "window", "Output window duration in seconds.")
.DefaultValue(1)
- .StoreResult(&WindowDurationSec);
+ .StoreResult(&WindowSec);
config.Opts->AddLongOption('q', "quiet", "Quiet mode. Doesn't print statistics each second.")
.StoreTrue(&Quiet);
config.Opts->AddLongOption("print-timestamp", "Print timestamp each second with statistics.")
@@ -48,8 +48,8 @@ void TCommandWorkloadTopicRunWrite::Config(TConfig& config) {
.DefaultValue(50)
.StoreResult(&Percentile);
config.Opts->AddLongOption("warmup", "Warm-up time in seconds.")
- .DefaultValue(1)
- .StoreResult(&Warmup);
+ .DefaultValue(5)
+ .StoreResult(&WarmupSec);
config.Opts->AddLongOption("topic", "Topic name.")
.DefaultValue(TOPIC)
.StoreResult(&TopicName);
@@ -85,7 +85,7 @@ void TCommandWorkloadTopicRunWrite::Parse(TConfig& config)
if (Percentile > 100 || Percentile <= 0) {
throw TMisuseException() << "--percentile should be in range (0,100].";
}
- if (Warmup >= Seconds) {
+ if (WarmupSec >= TotalSec) {
throw TMisuseException() << "--warmup should be less than --seconds.";
}
}
@@ -94,7 +94,7 @@ int TCommandWorkloadTopicRunWrite::Run(TConfig& config) {
Log = std::make_shared<TLog>(CreateLogBackend("cerr", TClientCommand::TConfig::VerbosityLevelToELogPriority(config.VerbosityLevel)));
Log->SetFormatter(GetPrefixLogFormatter(""));
Driver = std::make_unique<NYdb::TDriver>(CreateDriver(config, CreateLogBackend("cerr", TClientCommand::TConfig::VerbosityLevelToELogPriority(config.VerbosityLevel))));
- StatsCollector = std::make_shared<TTopicWorkloadStatsCollector>(ProducerThreadCount, 0, Quiet, PrintTimestamp, WindowDurationSec, Seconds, Warmup, Percentile, ErrorFlag);
+ StatsCollector = std::make_shared<TTopicWorkloadStatsCollector>(ProducerThreadCount, 0, Quiet, PrintTimestamp, WindowSec, TotalSec, WarmupSec, Percentile, ErrorFlag);
StatsCollector->PrintHeader();
std::vector<TString> generatedMessages = TTopicWorkloadWriterWorker::GenerateMessages(MessageSize);
@@ -107,7 +107,8 @@ int TCommandWorkloadTopicRunWrite::Run(TConfig& config) {
auto producerStartedCount = std::make_shared<std::atomic_uint>();
for (ui32 writerIdx = 0; writerIdx < ProducerThreadCount; ++writerIdx) {
TTopicWorkloadWriterParams writerParams{
- .Seconds = Seconds,
+ .TotalSec = TotalSec,
+ .WarmupSec = WarmupSec,
.Driver = Driver.get(),
.Log = Log,
.StatsCollector = StatsCollector,
diff --git a/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_run_write.h b/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_run_write.h
index 99def712d1..d9b0e38960 100644
--- a/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_run_write.h
+++ b/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_run_write.h
@@ -16,8 +16,7 @@ namespace NYdb {
virtual int Run(TConfig& config) override;
private:
TString TopicName;
- ui32 Seconds;
- ui32 Warmup;
+ ui32 WarmupSec;
double Percentile;
size_t MessageRate;
diff --git a/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_stats.h b/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_stats.h
index 59ec9c0a2a..d7c85fbffb 100644
--- a/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_stats.h
+++ b/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_stats.h
@@ -11,19 +11,14 @@ namespace NYdb {
ui64 WriteTime;
ui64 InflightMessages;
};
- typedef THolder<WriterEvent> WriterEventRef;
-
struct ReaderEvent {
ui64 MessageSize;
ui64 FullTime;
};
- typedef THolder<ReaderEvent> ReaderEventRef;
-
struct LagEvent {
ui64 LagMessages;
ui64 LagTime;
};
- typedef THolder<LagEvent> LagEventRef;
TTopicWorkloadStats();
diff --git a/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_stats_collector.cpp b/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_stats_collector.cpp
index 355de9c107..57881a1b8d 100644
--- a/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_stats_collector.cpp
+++ b/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_stats_collector.cpp
@@ -16,8 +16,8 @@ TTopicWorkloadStatsCollector::TTopicWorkloadStatsCollector(
, ReaderCount(readerCount)
, Quiet(quiet)
, PrintTimestamp(printTimestamp)
- , WindowDurationSec(windowDurationSec)
- , TotalDurationSec(totalDurationSec)
+ , WindowSec(windowDurationSec)
+ , TotalSec(totalDurationSec)
, WarmupSec(warmupSec)
, Percentile(percentile)
, ErrorFlag(errorFlag)
@@ -63,9 +63,9 @@ void TTopicWorkloadStatsCollector::PrintHeader(bool total) const {
void TTopicWorkloadStatsCollector::PrintWindowStatsLoop() {
auto StartTime = Now();
- auto StopTime = StartTime + TDuration::Seconds(TotalDurationSec + 1);
+ auto StopTime = StartTime + TDuration::Seconds(TotalSec + 1);
int windowIt = 1;
- auto windowDuration = TDuration::Seconds(WindowDurationSec);
+ auto windowDuration = TDuration::Seconds(WindowSec);
while (Now() < StopTime && !*ErrorFlag) {
if (Now() > StartTime + windowIt * windowDuration && !*ErrorFlag) {
CollectThreadEvents(windowIt);
@@ -91,7 +91,7 @@ void TTopicWorkloadStatsCollector::PrintStats(TMaybe<ui32> windowIt) const {
return;
const auto& stats = windowIt.Empty() ? TotalStats : *WindowStats;
- double seconds = windowIt.Empty() ? TotalDurationSec : WindowDurationSec;
+ double seconds = windowIt.Empty() ? TotalSec - WarmupSec : WindowSec;
TString totalIt = windowIt.Empty() ? "Total" : std::to_string(windowIt.GetRef());
Cout << totalIt;
diff --git a/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_stats_collector.h b/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_stats_collector.h
index 4ce7716359..2a30cb815b 100644
--- a/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_stats_collector.h
+++ b/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_stats_collector.h
@@ -53,8 +53,8 @@ namespace NYdb {
bool Quiet;
bool PrintTimestamp;
- double WindowDurationSec;
- double TotalDurationSec;
+ double WindowSec;
+ double TotalSec;
double WarmupSec;
double Percentile;
diff --git a/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_writer.cpp b/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_writer.cpp
index 7c0e26e39d..71da2fa2d8 100644
--- a/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_writer.cpp
+++ b/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_writer.cpp
@@ -11,7 +11,6 @@ TTopicWorkloadWriterWorker::TTopicWorkloadWriterWorker(
, StatsCollector(params.StatsCollector)
{
- Closed = std::make_shared<std::atomic<bool>>(false);
CreateWorker();
}
@@ -21,15 +20,6 @@ TTopicWorkloadWriterWorker::~TTopicWorkloadWriterWorker()
WriteSession->Close();
}
-void TTopicWorkloadWriterWorker::CreateWorker() {
- WRITE_LOG(Params.Log, ELogPriority::TLOG_INFO, TStringBuilder() << "Create writer worker for ProducerId " << Params.ProducerId << " PartitionId " << Params.PartitionId);
-
- if (WriteSession)
- WriteSession->Close();
-
- CreateTopicWorker();
-}
-
void TTopicWorkloadWriterWorker::Close() {
Closed->store(true);
if (WriteSession)
@@ -90,7 +80,9 @@ bool TTopicWorkloadWriterWorker::WaitForInitSeqNo()
}
void TTopicWorkloadWriterWorker::Process() {
- const TInstant endTime = TInstant::Now() + TDuration::Seconds(Params.Seconds);
+ Sleep(TDuration::Seconds((float)Params.WarmupSec * Params.WriterIdx / Params.ProducerThreadCount));
+
+ const TInstant endTime = TInstant::Now() + TDuration::Seconds(Params.TotalSec);
StartTimestamp = Now();
WRITE_LOG(Params.Log, ELogPriority::TLOG_DEBUG, TStringBuilder() << "StartTimestamp " << StartTimestamp);
@@ -212,8 +204,8 @@ bool TTopicWorkloadWriterWorker::ProcessSessionClosedEvent(
return false;
}
-void TTopicWorkloadWriterWorker::CreateTopicWorker() {
- WRITE_LOG(Params.Log, ELogPriority::TLOG_INFO, "Creating writer worker...");
+void TTopicWorkloadWriterWorker::CreateWorker() {
+ WRITE_LOG(Params.Log, ELogPriority::TLOG_INFO, TStringBuilder() << "Create writer worker for ProducerId " << Params.ProducerId << " PartitionId " << Params.PartitionId);
Y_VERIFY(Params.Driver);
NYdb::NTopic::TWriteSessionSettings settings;
settings.Codec((NYdb::NTopic::ECodec)Params.Codec);
diff --git a/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_writer.h b/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_writer.h
index 8c6b6ae960..4cb0f716e1 100644
--- a/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_writer.h
+++ b/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_writer.h
@@ -12,7 +12,8 @@ namespace NYdb {
namespace NConsoleClient {
struct TTopicWorkloadWriterParams {
- size_t Seconds;
+ size_t TotalSec;
+ ui32 WarmupSec;
NYdb::TDriver* Driver;
std::shared_ptr<TLog> Log;
std::shared_ptr<TTopicWorkloadStatsCollector> StatsCollector;
@@ -42,8 +43,6 @@ namespace NYdb {
void CreateWorker();
- void CreateTopicWorker();
-
bool ProcessAckEvent(const NYdb::NTopic::TWriteSessionEvent::TAcksEvent& event);
bool ProcessReadyToAcceptEvent(NYdb::NTopic::TWriteSessionEvent::TReadyToAcceptEvent& event);
diff --git a/ydb/public/lib/ydb_cli/commands/ydb_workload.cpp b/ydb/public/lib/ydb_cli/commands/ydb_workload.cpp
index 637c5fb1b6..7640a167d5 100644
--- a/ydb/public/lib/ydb_cli/commands/ydb_workload.cpp
+++ b/ydb/public/lib/ydb_cli/commands/ydb_workload.cpp
@@ -46,12 +46,12 @@ TCommandWorkload::TCommandWorkload()
TWorkloadCommand::TWorkloadCommand(const TString& name, const std::initializer_list<TString>& aliases, const TString& description)
: TYdbCommand(name, aliases, description)
- , Seconds(0)
+ , TotalSec(0)
, Threads(0)
, ClientTimeoutMs(0)
, OperationTimeoutMs(0)
, CancelAfterTimeoutMs(0)
- , WindowDurationSec(0)
+ , WindowSec(0)
, Quiet(false)
, PrintTimestamp(false)
, WindowHist(60000, 2) // highestTrackableValue 60000ms = 60s, precision 2
@@ -66,7 +66,7 @@ void TWorkloadCommand::Config(TConfig& config) {
TYdbCommand::Config(config);
config.Opts->AddLongOption('s', "seconds", "Seconds to run workload.")
- .DefaultValue(10).StoreResult(&Seconds);
+ .DefaultValue(10).StoreResult(&TotalSec);
config.Opts->AddLongOption('t', "threads", "Number of parallel threads in workload.")
.DefaultValue(10).StoreResult(&Threads);
config.Opts->AddLongOption("quiet", "Quiet mode. Doesn't print statistics each second.")
@@ -80,7 +80,7 @@ void TWorkloadCommand::Config(TConfig& config) {
config.Opts->AddLongOption("cancel-after", "Cancel after timeout in ms.")
.DefaultValue(800).StoreResult(&CancelAfterTimeoutMs);
config.Opts->AddLongOption("window", "Window duration in seconds.")
- .DefaultValue(1).StoreResult(&WindowDurationSec);
+ .DefaultValue(1).StoreResult(&WindowSec);
}
void TWorkloadCommand::PrepareForRun(TConfig& config) {
@@ -183,7 +183,7 @@ int TWorkloadCommand::RunWorkload(TWorkloadQueryGenPtr workloadGen, const int ty
}, 0, Threads, NPar::TLocalExecutor::MED_PRIORITY);
int windowIt = 1;
- auto windowDuration = TDuration::Seconds(WindowDurationSec);
+ auto windowDuration = TDuration::Seconds(WindowSec);
while (Now() < StopTime) {
if (StartTime + windowIt * windowDuration < Now()) {
PrintWindowStats(windowIt++);
@@ -199,7 +199,7 @@ int TWorkloadCommand::RunWorkload(TWorkloadQueryGenPtr workloadGen, const int ty
auto stats = GetWorkloadStats(TotalHist);
std::cout << std::endl << "Txs\tTxs/Sec\tRetries\tErrors\tp50(ms)\tp95(ms)\tp99(ms)\tpMax(ms)" << std::endl
- << stats.OpsCount << "\t" << std::setw(7) << stats.OpsCount / (Seconds * 1.0) << "\t" << TotalRetries.load() << "\t"
+ << stats.OpsCount << "\t" << std::setw(7) << stats.OpsCount / (TotalSec * 1.0) << "\t" << TotalRetries.load() << "\t"
<< TotalErrors.load() << "\t" << stats.Percentile50 << "\t" << stats.Percentile95 << "\t"
<< stats.Percentile99 << "\t" << stats.Percentile100 << std::endl;
@@ -215,7 +215,7 @@ void TWorkloadCommand::PrintWindowStats(int windowIt) {
WindowHist.Reset();
}
if (!Quiet) {
- std::cout << windowIt << "\t" << std::setw(7) << stats.OpsCount / WindowDurationSec << "\t" << retries << "\t"
+ std::cout << windowIt << "\t" << std::setw(7) << stats.OpsCount / WindowSec << "\t" << retries << "\t"
<< errors << "\t" << stats.Percentile50 << "\t" << stats.Percentile95 << "\t"
<< stats.Percentile99 << "\t" << stats.Percentile100;
if (PrintTimestamp) {
diff --git a/ydb/public/lib/ydb_cli/commands/ydb_workload.h b/ydb/public/lib/ydb_cli/commands/ydb_workload.h
index 6ea3abce25..59145fc419 100644
--- a/ydb/public/lib/ydb_cli/commands/ydb_workload.h
+++ b/ydb/public/lib/ydb_cli/commands/ydb_workload.h
@@ -44,12 +44,12 @@ protected:
std::unique_ptr<NYdb::TDriver> Driver;
std::unique_ptr<NTable::TTableClient> TableClient;
- size_t Seconds;
+ size_t TotalSec;
size_t Threads;
unsigned int ClientTimeoutMs;
unsigned int OperationTimeoutMs;
unsigned int CancelAfterTimeoutMs;
- unsigned int WindowDurationSec;
+ unsigned int WindowSec;
bool Quiet;
bool PrintTimestamp;