@@ -1002,17 +1002,23 @@ TWriteSessionImpl::TProcessSrvMessageResult TWriteSessionImpl::ProcessServerMess
1002
1002
writeStat->PartitionQuotedTime = durationConv (stat.partition_quota_wait_time ());
1003
1003
writeStat->TopicQuotedTime = durationConv (stat.topic_quota_wait_time ());
1004
1004
1005
- for (size_t messageIndex = 0 , endIndex = batchWriteResponse.acks_size (); messageIndex != endIndex; ++messageIndex ) {
1005
+ for (const auto & ack : batchWriteResponse.acks () ) {
1006
1006
// TODO: Fill writer statistics
1007
- auto ack = batchWriteResponse.acks (messageIndex);
1008
1007
uint64_t sequenceNumber = ack.seq_no ();
1009
1008
1010
- Y_ABORT_UNLESS (ack.has_written () || ack.has_skipped ());
1011
- auto msgWriteStatus = ack.has_written ()
1012
- ? TWriteSessionEvent::TWriteAck::EES_WRITTEN
1013
- : (ack.skipped ().reason () == Ydb::Topic::StreamWriteMessage_WriteResponse_WriteAck_Skipped_Reason::StreamWriteMessage_WriteResponse_WriteAck_Skipped_Reason_REASON_ALREADY_WRITTEN
1014
- ? TWriteSessionEvent::TWriteAck::EES_ALREADY_WRITTEN
1015
- : TWriteSessionEvent::TWriteAck::EES_DISCARDED);
1009
+ Y_ABORT_UNLESS (ack.has_written () || ack.has_skipped () || ack.has_written_in_tx ());
1010
+
1011
+ TWriteSessionEvent::TWriteAck::EEventState msgWriteStatus;
1012
+ if (ack.has_written_in_tx ()) {
1013
+ msgWriteStatus = TWriteSessionEvent::TWriteAck::EES_WRITTEN_IN_TX;
1014
+ } else if (ack.has_written ()) {
1015
+ msgWriteStatus = TWriteSessionEvent::TWriteAck::EES_WRITTEN;
1016
+ } else {
1017
+ msgWriteStatus =
1018
+ (ack.skipped ().reason () == Ydb::Topic::StreamWriteMessage_WriteResponse_WriteAck_Skipped_Reason::StreamWriteMessage_WriteResponse_WriteAck_Skipped_Reason_REASON_ALREADY_WRITTEN)
1019
+ ? TWriteSessionEvent::TWriteAck::EES_ALREADY_WRITTEN
1020
+ : TWriteSessionEvent::TWriteAck::EES_DISCARDED;
1021
+ }
1016
1022
1017
1023
uint64_t offset = ack.has_written () ? ack.written ().offset () : 0 ;
1018
1024
0 commit comments