Skip to content

Commit 01a0c19

Browse files
committed
Revert "Yql 17542 simplify alloc in compute actor (ydb-platform#1452)"
This reverts commit 9c7d88b.
1 parent 73d910d commit 01a0c19

File tree

3 files changed

+21
-6
lines changed

3 files changed

+21
-6
lines changed

ydb/library/yql/dq/actors/compute/dq_async_compute_actor.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -457,6 +457,18 @@ class TDqAsyncComputeActor : public TDqComputeActorBase<TDqAsyncComputeActor, TC
457457
return inputChannel->FreeSpace;
458458
}
459459

460+
TGuard<NKikimr::NMiniKQL::TScopedAlloc> BindAllocator() override {
461+
return TypeEnv->BindAllocator();
462+
}
463+
464+
std::optional<TGuard<NKikimr::NMiniKQL::TScopedAlloc>> MaybeBindAllocator() override {
465+
std::optional<TGuard<NKikimr::NMiniKQL::TScopedAlloc>> guard;
466+
if (TypeEnv) {
467+
guard.emplace(TypeEnv->BindAllocator());
468+
}
469+
return guard;
470+
}
471+
460472
void OnTaskRunnerCreated(NTaskRunnerActor::TEvTaskRunnerCreateFinished::TPtr& ev) {
461473
const auto& secureParams = ev->Get()->SecureParams;
462474
const auto& taskParams = ev->Get()->TaskParams;

ydb/library/yql/dq/actors/compute/dq_compute_actor_impl.h

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -447,7 +447,7 @@ class TDqComputeActorBase : public NActors::TActorBootstrapped<TDerived>
447447
}
448448

449449
{
450-
auto guard = BindAllocator(); // Source/Sink could destroy mkql values inside PassAway, which requires allocator to be bound
450+
auto guard = MaybeBindAllocator(); // Source/Sink could destroy mkql values inside PassAway, which requires allocator to be bound
451451

452452
for (auto& [_, source] : SourcesMap) {
453453
if (source.Actor) {
@@ -955,8 +955,12 @@ class TDqComputeActorBase : public NActors::TActorBootstrapped<TDerived>
955955
TerminateSources(TIssues({TIssue(message)}), success);
956956
}
957957

958-
TGuard<NKikimr::NMiniKQL::TScopedAlloc> BindAllocator() {
959-
return Guard(GetAllocator());
958+
virtual TGuard<NKikimr::NMiniKQL::TScopedAlloc> BindAllocator() {
959+
return TaskRunner->BindAllocator();
960+
}
961+
962+
virtual std::optional<TGuard<NKikimr::NMiniKQL::TScopedAlloc>> MaybeBindAllocator() {
963+
return TaskRunner->BindAllocator();
960964
}
961965

962966
virtual bool SayHelloOnBootstrap() {
@@ -1276,7 +1280,7 @@ class TDqComputeActorBase : public NActors::TActorBootstrapped<TDerived>
12761280
.TypeEnv = typeEnv,
12771281
.HolderFactory = holderFactory,
12781282
.TaskCounters = TaskCounters,
1279-
.Alloc = Alloc,
1283+
.Alloc = TaskRunner ? Alloc : nullptr,
12801284
.MemoryQuotaManager = MemoryLimits.MemoryQuotaManager,
12811285
.SourceSettings = (!settings.empty() ? settings.at(inputIndex) : nullptr),
12821286
.Arena = Task.GetArena(),

ydb/library/yql/dq/actors/compute/dq_sync_compute_actor_base.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -194,9 +194,8 @@ class TDqSyncComputeActorBase: public TDqComputeActorBase<TDerived, TComputeActo
194194
void PrepareTaskRunner(const IDqTaskRunnerExecutionContext& execCtx) {
195195
YQL_ENSURE(TaskRunner);
196196

197-
auto guard = TBase::BindAllocator();
197+
auto guard = this->TaskRunner->BindAllocator(this->MemoryQuota->GetMkqlMemoryLimit());
198198
auto* alloc = guard.GetMutex();
199-
alloc->SetLimit(this->MemoryQuota->GetMkqlMemoryLimit());
200199

201200
this->MemoryQuota->TrySetIncreaseMemoryLimitCallback(alloc);
202201

0 commit comments

Comments
 (0)