@@ -1649,14 +1649,11 @@ class TKqpBufferWriteActor :public TActorBootstrapped<TKqpBufferWriteActor>, pub
1649
1649
writeInfo.WriteTableActor ->Close (message.Token .Cookie );
1650
1650
}
1651
1651
1652
- if (!message.Close ) {
1653
- YQL_ENSURE (false );
1654
- AckQueue.push (TAckMessage{
1655
- .ForwardActorId = message.From ,
1656
- .Token = message.Token ,
1657
- .DataSize = 0 ,
1658
- });
1659
- }
1652
+ AckQueue.push (TAckMessage{
1653
+ .ForwardActorId = message.From ,
1654
+ .Token = message.Token ,
1655
+ .DataSize = 0 ,
1656
+ });
1660
1657
1661
1658
queue.pop ();
1662
1659
}
@@ -2493,6 +2490,7 @@ class TKqpBufferWriteActor :public TActorBootstrapped<TKqpBufferWriteActor>, pub
2493
2490
}
2494
2491
Y_UNUSED (dataSize);
2495
2492
if (TxManager->ConsumeCommitResult (shardId)) {
2493
+ CA_LOG_D (" Committed TxId=" << TxId.value_or (0 ));
2496
2494
OnOperationFinished (Counters->BufferActorCommitLatencyHistogram );
2497
2495
State = EState::FINISHED;
2498
2496
Send<ESendingType::Tail>(ExecuterActorId, new TEvKqpBuffer::TEvResult{
@@ -2710,15 +2708,29 @@ class TKqpForwardWriteActor : public TActorBootstrapped<TKqpForwardWriteActor>,
2710
2708
2711
2709
void Handle (TEvBufferWriteResult::TPtr& result) {
2712
2710
CA_LOG_D (" TKqpForwardWriteActor recieve EvBufferWriteResult from " << BufferActorId);
2711
+ InFlight = false ;
2712
+
2713
+ EgressStats.Bytes += DataSize;
2714
+ EgressStats.Chunks ++;
2715
+ EgressStats.Splits ++;
2716
+ EgressStats.Resume ();
2717
+
2718
+ Counters->ForwardActorWritesSizeHistogram ->Collect (DataSize);
2713
2719
2714
2720
WriteToken = result->Get ()->Token ;
2715
2721
DataSize = 0 ;
2716
2722
2717
- CA_LOG_D (" Resume with freeSpace=" << GetFreeSpace ());
2718
- Callbacks->ResumeExecution ();
2723
+ if (Closed) {
2724
+ CA_LOG_D (" Finished" );
2725
+ Callbacks->OnAsyncOutputFinished (GetOutputIndex ());
2726
+ } else {
2727
+ CA_LOG_D (" Resume with freeSpace=" << GetFreeSpace ());
2728
+ Callbacks->ResumeExecution ();
2729
+ }
2719
2730
}
2720
2731
2721
2732
void WriteToBuffer () {
2733
+ InFlight = true ;
2722
2734
auto ev = std::make_unique<TEvBufferWrite>();
2723
2735
2724
2736
ev->Data = Batcher->Build ();
@@ -2762,18 +2774,6 @@ class TKqpForwardWriteActor : public TActorBootstrapped<TKqpForwardWriteActor>,
2762
2774
2763
2775
CA_LOG_D (" Send data=" << DataSize << " , closed=" << Closed << " , bufferActorId=" << BufferActorId);
2764
2776
AFL_ENSURE (Send (BufferActorId, ev.release ()));
2765
-
2766
- EgressStats.Bytes += DataSize;
2767
- EgressStats.Chunks ++;
2768
- EgressStats.Splits ++;
2769
- EgressStats.Resume ();
2770
-
2771
- Counters->ForwardActorWritesSizeHistogram ->Collect (DataSize);
2772
-
2773
- if (Closed) {
2774
- CA_LOG_D (" Finished" );
2775
- Callbacks->OnAsyncOutputFinished (GetOutputIndex ());
2776
- }
2777
2777
}
2778
2778
2779
2779
void CommitState (const NYql::NDqProto::TCheckpoint&) final {};
@@ -2788,7 +2788,9 @@ class TKqpForwardWriteActor : public TActorBootstrapped<TKqpForwardWriteActor>,
2788
2788
}
2789
2789
2790
2790
i64 GetFreeSpace () const final {
2791
- return MessageSettings.MaxForwardedSize - DataSize;
2791
+ return InFlight
2792
+ ? std::numeric_limits<i64 >::min ()
2793
+ : MessageSettings.MaxForwardedSize - DataSize;
2792
2794
}
2793
2795
2794
2796
TMaybe<google::protobuf::Any> ExtraData () override {
@@ -2840,6 +2842,7 @@ class TKqpForwardWriteActor : public TActorBootstrapped<TKqpForwardWriteActor>,
2840
2842
2841
2843
i64 DataSize = 0 ;
2842
2844
bool Closed = false ;
2845
+ bool InFlight = false ;
2843
2846
2844
2847
const ui64 TxId;
2845
2848
const TTableId TableId;
0 commit comments