@@ -958,8 +958,7 @@ TWriteSessionImpl::TProcessSrvMessageResult TWriteSessionImpl::ProcessServerMess
958
958
FirstTokenSent = true ;
959
959
}
960
960
// Kickstart send after session reestablishment
961
- FormGrpcMessagesImpl ();
962
- SendGrpcMessages ();
961
+ SendImpl ();
963
962
break ;
964
963
}
965
964
case TServerMessage::kWriteResponse : {
@@ -1147,15 +1146,13 @@ void TWriteSessionImpl::CompressImpl(TBlock&& block_) {
1147
1146
1148
1147
void TWriteSessionImpl::OnCompressed (TBlock&& block, bool isSyncCompression) {
1149
1148
TMemoryUsageChange memoryUsage;
1150
- if (isSyncCompression) {
1151
- // The Lock is already held somewhere up the stack.
1152
- memoryUsage = OnCompressedImpl (std::move (block));
1153
- } else {
1149
+ if (!isSyncCompression) {
1154
1150
with_lock (Lock) {
1155
1151
memoryUsage = OnCompressedImpl (std::move (block));
1156
1152
}
1153
+ } else {
1154
+ memoryUsage = OnCompressedImpl (std::move (block));
1157
1155
}
1158
- SendGrpcMessages ();
1159
1156
if (memoryUsage.NowOk && !memoryUsage.WasOk ) {
1160
1157
EventsQueue->PushEvent (TWriteSessionEvent::TReadyToAcceptEvent{IssueContinuationToken ()});
1161
1158
}
@@ -1171,7 +1168,7 @@ TMemoryUsageChange TWriteSessionImpl::OnCompressedImpl(TBlock&& block) {
1171
1168
(*Counters->BytesInflightCompressed ) += block.Data .size ();
1172
1169
1173
1170
PackedMessagesToSend.emplace (std::move (block));
1174
- FormGrpcMessagesImpl ();
1171
+ SendImpl ();
1175
1172
return memoryUsage;
1176
1173
}
1177
1174
@@ -1288,7 +1285,7 @@ size_t TWriteSessionImpl::WriteBatchImpl() {
1288
1285
}
1289
1286
CurrentBatch.Reset ();
1290
1287
if (skipCompression) {
1291
- FormGrpcMessagesImpl ();
1288
+ SendImpl ();
1292
1289
}
1293
1290
return size;
1294
1291
}
@@ -1352,16 +1349,7 @@ bool TWriteSessionImpl::TxIsChanged(const Ydb::Topic::StreamWriteMessage_WriteRe
1352
1349
return GetTransactionId (*writeRequest) != GetTransactionId (OriginalMessagesToSend.front ().Tx );
1353
1350
}
1354
1351
1355
- void TWriteSessionImpl::SendGrpcMessages () {
1356
- with_lock (ProcessorLock) {
1357
- TClientMessage message;
1358
- while (GrpcMessagesToSend.Dequeue (&message)) {
1359
- Processor->Write (std::move (message));
1360
- }
1361
- }
1362
- }
1363
-
1364
- void TWriteSessionImpl::FormGrpcMessagesImpl () {
1352
+ void TWriteSessionImpl::SendImpl () {
1365
1353
Y_ABORT_UNLESS (Lock.IsLocked ());
1366
1354
1367
1355
// External cycle splits ready blocks into multiple gRPC messages. Current gRPC message size hard limit is 64MiB.
@@ -1431,7 +1419,7 @@ void TWriteSessionImpl::FormGrpcMessagesImpl() {
1431
1419
<< OriginalMessagesToSend.size () << " left), first sequence number is "
1432
1420
<< writeRequest->messages (0 ).seq_no ()
1433
1421
);
1434
- GrpcMessagesToSend. Enqueue (std::move (clientMessage));
1422
+ Processor-> Write (std::move (clientMessage));
1435
1423
}
1436
1424
}
1437
1425
@@ -1493,7 +1481,6 @@ void TWriteSessionImpl::HandleWakeUpImpl() {
1493
1481
with_lock (self->Lock ) {
1494
1482
self->HandleWakeUpImpl ();
1495
1483
}
1496
- self->SendGrpcMessages ();
1497
1484
}
1498
1485
};
1499
1486
if (TInstant::Now () - LastTokenUpdate > UPDATE_TOKEN_PERIOD) {
0 commit comments