aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorzverevgeny <zverevgeny@ydb.tech>2024-02-01 07:34:46 +0300
committerGitHub <noreply@github.com>2024-02-01 07:34:46 +0300
commit9c7d88b7cf8205bbc4122f47933cb6b8dd71f34c (patch)
tree0465c70ff09c0c25f3365bace98bcc9d405db4cf
parentcb5a70d8b3853161e83c262a0ba0253c3f975610 (diff)
downloadydb-9c7d88b7cf8205bbc4122f47933cb6b8dd71f34c.tar.gz
Yql 17542 simplify alloc in compute actor (#1452)
* YQL-17542 Simplify allocator usage in ComputeActors * fix build * fix dup
-rw-r--r--ydb/library/yql/dq/actors/compute/dq_async_compute_actor.cpp12
-rw-r--r--ydb/library/yql/dq/actors/compute/dq_compute_actor_impl.h12
-rw-r--r--ydb/library/yql/dq/actors/compute/dq_sync_compute_actor_base.h3
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);