diff options
author | zverevgeny <zverevgeny@ydb.tech> | 2024-02-01 07:34:46 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-01 07:34:46 +0300 |
commit | 9c7d88b7cf8205bbc4122f47933cb6b8dd71f34c (patch) | |
tree | 0465c70ff09c0c25f3365bace98bcc9d405db4cf | |
parent | cb5a70d8b3853161e83c262a0ba0253c3f975610 (diff) | |
download | ydb-9c7d88b7cf8205bbc4122f47933cb6b8dd71f34c.tar.gz |
Yql 17542 simplify alloc in compute actor (#1452)
* YQL-17542 Simplify allocator usage in ComputeActors
* fix build
* fix dup
3 files changed, 6 insertions, 21 deletions
diff --git a/ydb/library/yql/dq/actors/compute/dq_async_compute_actor.cpp b/ydb/library/yql/dq/actors/compute/dq_async_compute_actor.cpp index 4c2b2beedfc..46abf76845a 100644 --- a/ydb/library/yql/dq/actors/compute/dq_async_compute_actor.cpp +++ b/ydb/library/yql/dq/actors/compute/dq_async_compute_actor.cpp @@ -461,18 +461,6 @@ private: return inputChannel->FreeSpace; } - TGuard<NKikimr::NMiniKQL::TScopedAlloc> BindAllocator() override { - return TypeEnv->BindAllocator(); - } - - std::optional<TGuard<NKikimr::NMiniKQL::TScopedAlloc>> MaybeBindAllocator() override { - std::optional<TGuard<NKikimr::NMiniKQL::TScopedAlloc>> guard; - if (TypeEnv) { - guard.emplace(TypeEnv->BindAllocator()); - } - return guard; - } - void OnTaskRunnerCreated(NTaskRunnerActor::TEvTaskRunnerCreateFinished::TPtr& ev) { const auto& secureParams = ev->Get()->SecureParams; const auto& taskParams = ev->Get()->TaskParams; diff --git a/ydb/library/yql/dq/actors/compute/dq_compute_actor_impl.h b/ydb/library/yql/dq/actors/compute/dq_compute_actor_impl.h index 5b4a3fa5979..e0d3d3fa297 100644 --- a/ydb/library/yql/dq/actors/compute/dq_compute_actor_impl.h +++ b/ydb/library/yql/dq/actors/compute/dq_compute_actor_impl.h @@ -477,7 +477,7 @@ protected: } { - auto guard = MaybeBindAllocator(); // Source/Sink could destroy mkql values inside PassAway, which requires allocator to be bound + auto guard = BindAllocator(); // Source/Sink could destroy mkql values inside PassAway, which requires allocator to be bound for (auto& [_, source] : SourcesMap) { if (source.Actor) { @@ -1087,12 +1087,8 @@ protected: TerminateSources(TIssues({TIssue(message)}), success); } - virtual TGuard<NKikimr::NMiniKQL::TScopedAlloc> BindAllocator() { - return TaskRunner->BindAllocator(); - } - - virtual std::optional<TGuard<NKikimr::NMiniKQL::TScopedAlloc>> MaybeBindAllocator() { - return TaskRunner->BindAllocator(); + TGuard<NKikimr::NMiniKQL::TScopedAlloc> BindAllocator() { + return Guard(GetAllocator()); } virtual bool SayHelloOnBootstrap() { @@ -1503,7 +1499,7 @@ protected: .TypeEnv = typeEnv, .HolderFactory = holderFactory, .TaskCounters = TaskCounters, - .Alloc = TaskRunner ? Alloc : nullptr, + .Alloc = Alloc, .MemoryQuotaManager = MemoryLimits.MemoryQuotaManager, .SourceSettings = (!settings.empty() ? settings.at(inputIndex) : nullptr), .Arena = Task.GetArena(), diff --git a/ydb/library/yql/dq/actors/compute/dq_sync_compute_actor_base.h b/ydb/library/yql/dq/actors/compute/dq_sync_compute_actor_base.h index 8d2ffb00924..eb69e10eea8 100644 --- a/ydb/library/yql/dq/actors/compute/dq_sync_compute_actor_base.h +++ b/ydb/library/yql/dq/actors/compute/dq_sync_compute_actor_base.h @@ -51,8 +51,9 @@ protected: void PrepareTaskRunner(const IDqTaskRunnerExecutionContext& execCtx) { YQL_ENSURE(this->TaskRunner); - auto guard = this->TaskRunner->BindAllocator(this->MemoryQuota->GetMkqlMemoryLimit()); + auto guard = TBase::BindAllocator(); auto* alloc = guard.GetMutex(); + alloc->SetLimit(this->MemoryQuota->GetMkqlMemoryLimit()); this->MemoryQuota->TrySetIncreaseMemoryLimitCallback(alloc); |