Skip to content

Commit 71f892e

Browse files
authored
Call ByteSizeLong on each WriteRequest separately (#7678)
1 parent d9b7f37 commit 71f892e

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

ydb/public/sdk/cpp/client/ydb_topic/impl/write_session_impl.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1351,8 +1351,11 @@ void TWriteSessionImpl::SendImpl() {
13511351
TClientMessage clientMessage;
13521352
auto* writeRequest = clientMessage.mutable_write_request();
13531353
ui32 prevCodec = 0;
1354+
1355+
ui64 currentSize = 0;
1356+
13541357
// Send blocks while we can without messages reordering.
1355-
while (IsReadyToSendNextImpl() && clientMessage.ByteSizeLong() < GetMaxGrpcMessageSize()) {
1358+
while (IsReadyToSendNextImpl() && currentSize < GetMaxGrpcMessageSize()) {
13561359
const auto& block = PackedMessagesToSend.top();
13571360
Y_ABORT_UNLESS(block.Valid);
13581361
if (writeRequest->messages_size() > 0 && prevCodec != block.CodecID) {
@@ -1400,6 +1403,8 @@ void TWriteSessionImpl::SendImpl() {
14001403
moveBlock.Move(block);
14011404
SentPackedMessage.emplace(std::move(moveBlock));
14021405
PackedMessagesToSend.pop();
1406+
1407+
currentSize += writeRequest->ByteSizeLong();
14031408
}
14041409
UpdateTokenIfNeededImpl();
14051410
LOG_LAZY(DbDriverState->Log,

0 commit comments

Comments
 (0)