@@ -571,6 +571,15 @@ void TColumnShard::Handle(NEvents::TDataEvents::TEvWrite::TPtr& ev, const TActor
571571 return ;
572572 }
573573
574+ auto overloadStatus = CheckOverloadedImmediate (pathId);
575+ if (overloadStatus != EOverloadStatus::None) {
576+ std::unique_ptr<NActors::IEventBase> result = NEvents::TDataEvents::TEvWriteResult::BuildError (
577+ TabletID (), 0 , NKikimrDataEvents::TEvWriteResult::STATUS_OVERLOADED, " overload data error" );
578+ OverloadWriteFail (overloadStatus, NEvWrite::TWriteMeta (0 , pathId, source, {}, TGUID::CreateTimebased ().AsGuidString ()),
579+ arrowData->GetSize (), cookie, std::move (result), ctx);
580+ return ;
581+ }
582+
574583 std::optional<ui32> granuleShardingVersionId;
575584 if (record.HasGranuleShardingVersionId ()) {
576585 granuleShardingVersionId = record.GetGranuleShardingVersionId ();
@@ -583,8 +592,7 @@ void TColumnShard::Handle(NEvents::TDataEvents::TEvWrite::TPtr& ev, const TActor
583592 lockId = record.GetLockTxId ();
584593 }
585594
586- WriteTasksQueue->TryEnqueue (
587- this , ctx, TWriteTask (arrowData, schema, source, granuleShardingVersionId, pathId, cookie, lockId, *mType , behaviour));
595+ WriteTasksQueue->Enqueue (TWriteTask (arrowData, schema, source, granuleShardingVersionId, pathId, cookie, lockId, *mType , behaviour));
588596 WriteTasksQueue->Drain (false , ctx);
589597}
590598
0 commit comments