Skip to content

Commit 2560e5f

Browse files
committed
review fixes
1 parent a1888c7 commit 2560e5f

File tree

2 files changed

+12
-5
lines changed

2 files changed

+12
-5
lines changed

ydb/_topic_reader/datatypes.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from collections import deque
88
from dataclasses import dataclass, field
99
import datetime
10-
from typing import Union, Any, List, Dict, Deque, Optional
10+
from typing import Union, Any, List, Dict, Deque, Optional, Tuple
1111

1212
from ydb._grpc.grpcwrapper.ydb_topic import OffsetsRange, Codec
1313
from ydb._topic_reader import topic_reader_asyncio
@@ -171,3 +171,11 @@ def alive(self) -> bool:
171171

172172
def pop_message(self) -> PublicMessage:
173173
return self.messages.pop(0)
174+
175+
def _extend(self, batch: PublicBatch) -> None:
176+
self.messages.extend(batch.messages)
177+
self._bytes_size += batch._bytes_size
178+
179+
def _pop(self) -> Tuple[List[PublicMessage], bool]:
180+
msgs_left = True if len(self.messages) > 1 else False
181+
return self.messages.pop(0), msgs_left

ydb/_topic_reader/topic_reader_asyncio.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -384,9 +384,9 @@ def receive_message_nowait(self):
384384

385385
part_sess_id, batch = self._get_first_batch()
386386

387-
message = batch.messages.pop(0)
387+
message, msgs_left = batch._pop()
388388

389-
if len(batch.messages) == 0:
389+
if not msgs_left:
390390
self._buffer_release_bytes(batch._bytes_size)
391391
else:
392392
# TODO: we should somehow release bytes from single message as well
@@ -620,8 +620,7 @@ async def _decode_batches_loop(self):
620620
def _add_batch_to_queue(self, batch: datatypes.PublicBatch):
621621
part_sess_id = batch._partition_session.id
622622
if part_sess_id in self._message_batches:
623-
self._message_batches[part_sess_id].messages.extend(batch.messages)
624-
self._message_batches[part_sess_id]._bytes_size += batch._bytes_size
623+
self._message_batches[part_sess_id]._extend(batch)
625624
return
626625

627626
self._message_batches[part_sess_id] = batch

0 commit comments

Comments
 (0)