aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorazevaykin <azevaykin@yandex-team.com>2023-08-24 17:12:10 +0300
committerazevaykin <azevaykin@yandex-team.com>2023-08-24 17:31:21 +0300
commitb890c9f4f00efbc099a862b70c1dbc4c7db3dd2f (patch)
treec682102a9b59e66f2b619809e6c947c7cf2d1fd4
parent2491ba899bf158101666fd335447efd32e27cc34 (diff)
downloadydb-b890c9f4f00efbc099a862b70c1dbc4c7db3dd2f.tar.gz
workload topic DirectWriteToPartition
-rw-r--r--ydb/public/lib/ydb_cli/commands/topic_operations_scenario.cpp1
-rw-r--r--ydb/public/lib/ydb_cli/commands/topic_operations_scenario.h1
-rw-r--r--ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_run_full.cpp3
-rw-r--r--ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_run_write.cpp4
-rw-r--r--ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_writer.cpp1
-rw-r--r--ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_writer.h1
6 files changed, 10 insertions, 1 deletions
diff --git a/ydb/public/lib/ydb_cli/commands/topic_operations_scenario.cpp b/ydb/public/lib/ydb_cli/commands/topic_operations_scenario.cpp
index 9a9e170937..4f424d70c1 100644
--- a/ydb/public/lib/ydb_cli/commands/topic_operations_scenario.cpp
+++ b/ydb/public/lib/ydb_cli/commands/topic_operations_scenario.cpp
@@ -212,6 +212,7 @@ void TTopicOperationsScenario::StartProducerThreads(std::vector<std::future<void
.WriterIdx = writerIdx,
.ProducerId = TGUID::CreateTimebased().AsGuidString(),
.PartitionId = (partitionSeed + writerIdx) % partitionCount,
+ .Direct = Direct,
.Codec = Codec
};
diff --git a/ydb/public/lib/ydb_cli/commands/topic_operations_scenario.h b/ydb/public/lib/ydb_cli/commands/topic_operations_scenario.h
index f6e01bae30..b448701c61 100644
--- a/ydb/public/lib/ydb_cli/commands/topic_operations_scenario.h
+++ b/ydb/public/lib/ydb_cli/commands/topic_operations_scenario.h
@@ -52,6 +52,7 @@ public:
ui32 ProducerThreadCount = 0;
ui32 ConsumerThreadCount = 0;
ui32 ConsumerCount = 0;
+ bool Direct = false;
TString ConsumerPrefix;
size_t MessageSize;
size_t MessageRate;
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 e5d5693c07..04d0377f47 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
@@ -64,6 +64,9 @@ void TCommandWorkloadTopicRunFull::Config(TConfig& config)
.Optional()
.DefaultValue((TStringBuilder() << NTopic::ECodec::RAW))
.StoreMappedResultT<TString>(&Scenario.Codec, &TCommandWorkloadTopicParams::StrToCodec);
+ config.Opts->AddLongOption("direct", "Direct write to a partition node.")
+ .Hidden()
+ .StoreTrue(&Scenario.Direct);
config.Opts->MutuallyExclusive("message-rate", "byte-rate");
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 f6ec935273..4a8dba8167 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
@@ -55,7 +55,9 @@ void TCommandWorkloadTopicRunWrite::Config(TConfig& config)
.Optional()
.DefaultValue((TStringBuilder() << NTopic::ECodec::RAW))
.StoreMappedResultT<TString>(&Scenario.Codec, &TCommandWorkloadTopicParams::StrToCodec);
-
+ config.Opts->AddLongOption("direct", "Direct write to a partition node.")
+ .Hidden()
+ .StoreTrue(&Scenario.Direct);
config.Opts->MutuallyExclusive("message-rate", "byte-rate");
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 341c716f26..1766a25add 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
@@ -225,6 +225,7 @@ void TTopicWorkloadWriterWorker::CreateWorker() {
settings.Path(Params.TopicName);
settings.ProducerId(Params.ProducerId);
settings.PartitionId(Params.PartitionId);
+ settings.DirectWriteToPartition(Params.Direct);
WriteSession = NYdb::NTopic::TTopicClient(Params.Driver).CreateWriteSession(settings);
}
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 9b53dcbf18..2d42f31e90 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
@@ -27,6 +27,7 @@ namespace NYdb {
ui32 WriterIdx;
TString ProducerId;
ui32 PartitionId;
+ bool Direct;
ui32 Codec = 0;
};