@@ -288,7 +288,7 @@ void TColumnShard::Handle(TEvColumnShard::TEvWrite::TPtr& ev, const TActorContex
288288 writeData.MutableWriteMeta ().SetWriteMiddle1StartInstant (TMonotonic::Now ());
289289
290290 NOlap::TWritingContext context (TabletID (), SelfId (), snapshotSchema, StoragesManager, Counters.GetIndexationCounters ().SplitterCounters ,
291- Counters.GetCSCounters ().WritingCounters , GetLastTxSnapshot ());
291+ Counters.GetCSCounters ().WritingCounters , GetLastTxSnapshot (), std::make_shared<TAtomicCounter>( 1 ) );
292292 std::shared_ptr<NConveyor::ITask> task =
293293 std::make_shared<NOlap::TBuildBatchesTask>(BufferizationWriteActorId, std::move (writeData), context);
294294 NConveyor::TInsertServiceOperator::AsyncTaskToExecute (task);
@@ -460,6 +460,15 @@ void TColumnShard::Handle(NEvents::TDataEvents::TEvWrite::TPtr& ev, const TActor
460460 const auto & record = ev->Get ()->Record ;
461461 const auto source = ev->Sender ;
462462 const auto cookie = ev->Cookie ;
463+
464+ if (!TablesManager.GetPrimaryIndex ()) {
465+ Counters.GetTabletCounters ()->IncCounter (COUNTER_WRITE_FAIL);
466+ auto result = NEvents::TDataEvents::TEvWriteResult::BuildError (
467+ TabletID (), 0 , NKikimrDataEvents::TEvWriteResult::STATUS_BAD_REQUEST, " schema not ready for writing" );
468+ ctx.Send (source, result.release (), 0 , cookie);
469+ return ;
470+ }
471+
463472 const auto behaviourConclusion = TOperationsManager::GetBehaviour (*ev->Get ());
464473 AFL_TRACE (NKikimrServices::TX_COLUMNSHARD_WRITE)(" ev_write" , record.DebugString ());
465474 if (behaviourConclusion.IsFail ()) {
@@ -482,6 +491,7 @@ void TColumnShard::Handle(NEvents::TDataEvents::TEvWrite::TPtr& ev, const TActor
482491 ctx.Send (source, result.release (), 0 , cookie);
483492 };
484493 if (behaviour == EOperationBehaviour::CommitWriteLock) {
494+ TMemoryProfileGuard mpg1 (" NEvents::TDataEvents::TEvWrite::1" );
485495 auto commitOperation = std::make_shared<TCommitOperation>(TabletID ());
486496 auto conclusionParse = commitOperation->Parse (*ev->Get ());
487497 if (conclusionParse.IsFail ()) {
@@ -513,6 +523,7 @@ void TColumnShard::Handle(NEvents::TDataEvents::TEvWrite::TPtr& ev, const TActor
513523 return ;
514524 }
515525
526+ TMemoryProfileGuard mpg2 (" NEvents::TDataEvents::TEvWrite::2" );
516527 if (record.GetOperations ().size () != 1 ) {
517528 Counters.GetTabletCounters ()->IncCounter (COUNTER_WRITE_FAIL);
518529 auto result = NEvents::TDataEvents::TEvWriteResult::BuildError (
@@ -521,6 +532,7 @@ void TColumnShard::Handle(NEvents::TDataEvents::TEvWrite::TPtr& ev, const TActor
521532 return ;
522533 }
523534
535+ TMemoryProfileGuard mpg3 (" NEvents::TDataEvents::TEvWrite::3" );
524536 const auto & operation = record.GetOperations ()[0 ];
525537 const std::optional<NEvWrite::EModificationType> mType =
526538 TEnumOperator<NEvWrite::EModificationType>::DeserializeFromProto (operation.GetType ());
@@ -535,6 +547,7 @@ void TColumnShard::Handle(NEvents::TDataEvents::TEvWrite::TPtr& ev, const TActor
535547 return ;
536548 }
537549
550+ TMemoryProfileGuard mpg4 (" NEvents::TDataEvents::TEvWrite::4" );
538551 auto schema = TablesManager.GetPrimaryIndex ()->GetVersionedIndex ().GetSchemaOptional (operation.GetTableId ().GetSchemaVersion ());
539552 if (!schema) {
540553 sendError (" unknown schema version" , NKikimrDataEvents::TEvWriteResult::STATUS_BAD_REQUEST);
@@ -550,12 +563,14 @@ void TColumnShard::Handle(NEvents::TDataEvents::TEvWrite::TPtr& ev, const TActor
550563
551564 Counters.GetColumnTablesCounters ()->GetPathIdCounter (pathId)->OnWriteEvent ();
552565
566+ TMemoryProfileGuard mpg5 (" NEvents::TDataEvents::TEvWrite::5" );
553567 auto arrowData = std::make_shared<TArrowData>(schema);
554568 if (!arrowData->Parse (operation, NEvWrite::TPayloadReader<NEvents::TDataEvents::TEvWrite>(*ev->Get ()))) {
555569 sendError (" parsing data error" , NKikimrDataEvents::TEvWriteResult::STATUS_BAD_REQUEST);
556570 return ;
557571 }
558572
573+ TMemoryProfileGuard mpg5_1 (" NEvents::TDataEvents::TEvWrite::5_1" );
559574 auto overloadStatus = CheckOverloaded (pathId);
560575 if (overloadStatus != EOverloadStatus::None) {
561576 std::unique_ptr<NActors::IEventBase> result = NEvents::TDataEvents::TEvWriteResult::BuildError (
@@ -564,6 +579,9 @@ void TColumnShard::Handle(NEvents::TDataEvents::TEvWrite::TPtr& ev, const TActor
564579 return ;
565580 }
566581
582+ TMemoryProfileGuard mpg6 (" NEvents::TDataEvents::TEvWrite::6" );
583+ AFL_WARN (NKikimrServices::TX_COLUMNSHARD_WRITE)(" writing_size" , arrowData->GetSize ())(
584+ " in_flight" , Counters.GetWritesMonitor ()->GetWritesInFlight ())(" sizE_in_flight" , Counters.GetWritesMonitor ()->GetWritesSizeInFlight ());
567585 Counters.GetWritesMonitor ()->OnStartWrite (arrowData->GetSize ());
568586
569587 std::optional<ui32> granuleShardingVersionId;
@@ -578,18 +596,20 @@ void TColumnShard::Handle(NEvents::TDataEvents::TEvWrite::TPtr& ev, const TActor
578596 lockId = record.GetLockTxId ();
579597 }
580598
599+ TMemoryProfileGuard mpg7 (" NEvents::TDataEvents::TEvWrite::7" );
581600 if (!AppDataVerified ().ColumnShardConfig .GetWritingEnabled ()) {
582601 sendError (" writing disabled" , NKikimrDataEvents::TEvWriteResult::STATUS_OVERLOADED);
583602 return ;
584603 }
585604
605+ TMemoryProfileGuard mpg8 (" NEvents::TDataEvents::TEvWrite::8" );
586606 OperationsManager->RegisterLock (lockId, Generation ());
587607 auto writeOperation = OperationsManager->RegisterOperation (
588608 pathId, lockId, cookie, granuleShardingVersionId, *mType , AppDataVerified ().FeatureFlags .GetEnableWritePortionsOnInsert ());
589609 Y_ABORT_UNLESS (writeOperation);
590610 writeOperation->SetBehaviour (behaviour);
591611 NOlap::TWritingContext wContext (pathId, SelfId (), schema, StoragesManager, Counters.GetIndexationCounters ().SplitterCounters ,
592- Counters.GetCSCounters ().WritingCounters , NOlap::TSnapshot::Max ());
612+ Counters.GetCSCounters ().WritingCounters , NOlap::TSnapshot::Max (), writeOperation-> GetActivityChecker () );
593613 arrowData->SetSeparationPoints (GetIndexAs<NOlap::TColumnEngineForLogs>().GetGranulePtrVerified (pathId)->GetBucketPositions ());
594614 writeOperation->Start (*this , arrowData, source, wContext);
595615}
0 commit comments