aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ydb/public/lib/ydb_cli/commands/ydb_service_import.cpp7
-rw-r--r--ydb/public/lib/ydb_cli/commands/ydb_service_import.h1
-rw-r--r--ydb/public/lib/ydb_cli/import/import.cpp7
-rw-r--r--ydb/public/lib/ydb_cli/import/import.h4
4 files changed, 14 insertions, 5 deletions
diff --git a/ydb/public/lib/ydb_cli/commands/ydb_service_import.cpp b/ydb/public/lib/ydb_cli/commands/ydb_service_import.cpp
index d9e2ac6041..c2d9f5a321 100644
--- a/ydb/public/lib/ydb_cli/commands/ydb_service_import.cpp
+++ b/ydb/public/lib/ydb_cli/commands/ydb_service_import.cpp
@@ -170,6 +170,10 @@ void TCommandImportFileBase::Config(TConfig& config) {
config.Opts->SetTrailingArgTitle("<input files...>",
"One or more file paths to import from");
+ config.Opts->AddLongOption("timeout", "Operation timeout. Operation should be executed on server within this timeout. "
+ "There could also be a delay up to 200ms to receive timeout error from server")
+ .RequiredArgument("VAL").StoreResult(&OperationTimeout).DefaultValue(TDuration::Seconds(5 * 60));
+
config.Opts->AddLongOption('p', "path", "Database path to table")
.Required().RequiredArgument("STRING").StoreResult(&Path);
config.Opts->AddLongOption('i', "input-file").AppendTo(&FilePaths).Hidden();
@@ -245,6 +249,7 @@ void TCommandImportFromCsv::Config(TConfig& config) {
int TCommandImportFromCsv::Run(TConfig& config) {
TImportFileSettings settings;
+ settings.OperationTimeout(OperationTimeout);
settings.Format(InputFormat);
settings.MaxInFlightRequests(MaxInFlightRequests);
settings.BytesPerRequest(NYdb::SizeFromString(BytesPerRequest));
@@ -288,6 +293,7 @@ void TCommandImportFromJson::Parse(TConfig& config) {
int TCommandImportFromJson::Run(TConfig& config) {
TImportFileSettings settings;
+ settings.OperationTimeout(OperationTimeout);
settings.Format(InputFormat);
settings.MaxInFlightRequests(MaxInFlightRequests);
settings.BytesPerRequest(NYdb::SizeFromString(BytesPerRequest));
@@ -306,6 +312,7 @@ void TCommandImportFromParquet::Config(TConfig& config) {
int TCommandImportFromParquet::Run(TConfig& config) {
TImportFileSettings settings;
+ settings.OperationTimeout(OperationTimeout);
settings.Format(InputFormat);
settings.MaxInFlightRequests(MaxInFlightRequests);
settings.BytesPerRequest(NYdb::SizeFromString(BytesPerRequest));
diff --git a/ydb/public/lib/ydb_cli/commands/ydb_service_import.h b/ydb/public/lib/ydb_cli/commands/ydb_service_import.h
index 501a851eaf..bcb4f2681d 100644
--- a/ydb/public/lib/ydb_cli/commands/ydb_service_import.h
+++ b/ydb/public/lib/ydb_cli/commands/ydb_service_import.h
@@ -62,6 +62,7 @@ protected:
TString BytesPerRequest;
ui64 MaxInFlightRequests = 1;
ui64 Threads = 0;
+ TDuration OperationTimeout;
};
class TCommandImportFromCsv : public TCommandImportFileBase {
diff --git a/ydb/public/lib/ydb_cli/import/import.cpp b/ydb/public/lib/ydb_cli/import/import.cpp
index 44e9c8d572..0171046007 100644
--- a/ydb/public/lib/ydb_cli/import/import.cpp
+++ b/ydb/public/lib/ydb_cli/import/import.cpp
@@ -232,9 +232,6 @@ TImportFileClient::TImportFileClient(const TDriver& driver, const TClientCommand
, SchemeClient(std::make_shared<NScheme::TSchemeClient>(driver))
, TableClient(std::make_shared<NTable::TTableClient>(driver))
{
- UpsertSettings
- .OperationTimeout(TDuration::Seconds(TImportFileSettings::OperationTimeoutSec))
- .ClientTimeout(TDuration::Seconds(TImportFileSettings::ClientTimeoutSec));
RetrySettings
.MaxRetries(TImportFileSettings::MaxRetries)
.Idempotent(true)
@@ -255,6 +252,10 @@ TStatus TImportFileClient::Import(const TVector<TString>& filePaths, const TStri
TStringBuilder() << result.GetIssues().ToString() << dbPath);
}
+ UpsertSettings
+ .OperationTimeout(settings.OperationTimeout_)
+ .ClientTimeout(settings.ClientTimeout_);
+
switch (settings.Format_) {
case EOutputFormat::Default:
case EOutputFormat::Csv:
diff --git a/ydb/public/lib/ydb_cli/import/import.h b/ydb/public/lib/ydb_cli/import/import.h
index a45ac02dc3..366d0e0394 100644
--- a/ydb/public/lib/ydb_cli/import/import.h
+++ b/ydb/public/lib/ydb_cli/import/import.h
@@ -35,11 +35,11 @@ struct TImportFileSettings : public TOperationRequestSettings<TImportFileSetting
static constexpr ui64 MaxBytesPerRequest = 8_MB;
static constexpr const char * DefaultDelimiter = ",";
- static constexpr ui32 OperationTimeoutSec = 5 * 60;
- static constexpr ui32 ClientTimeoutSec = OperationTimeoutSec + 5;
static constexpr ui32 MaxRetries = 10000;
// Allowed values: Csv, Tsv, JsonUnicode, JsonBase64. Default means Csv
+ FLUENT_SETTING_DEFAULT(TDuration, OperationTimeout, TDuration::Seconds(5 * 60));
+ FLUENT_SETTING_DEFAULT(TDuration, ClientTimeout, OperationTimeout_ + TDuration::Seconds(5));
FLUENT_SETTING_DEFAULT(EOutputFormat, Format, EOutputFormat::Default);
FLUENT_SETTING_DEFAULT(ui64, BytesPerRequest, 1_MB);
FLUENT_SETTING_DEFAULT(ui64, FileBufferSize, 2_MB);