diff options
-rw-r--r-- | ydb/public/lib/ydb_cli/commands/ydb_service_import.cpp | 7 | ||||
-rw-r--r-- | ydb/public/lib/ydb_cli/commands/ydb_service_import.h | 1 | ||||
-rw-r--r-- | ydb/public/lib/ydb_cli/import/import.cpp | 7 | ||||
-rw-r--r-- | ydb/public/lib/ydb_cli/import/import.h | 4 |
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); |