[go: up one dir, main page]

Skip to content

Commit

Permalink
fix: batch at most 1,000 ack ids per request (#802)
Browse files Browse the repository at this point in the history
Co-authored-by: Anna Cocuzzo <63511057+acocuzzo@users.noreply.github.com>
Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
  • Loading branch information
3 people committed Oct 8, 2022
1 parent fa23503 commit 4361e67
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 11 deletions.
10 changes: 1 addition & 9 deletions google/cloud/pubsub_v1/subscriber/_protocol/dispatcher.py
Expand Up @@ -59,16 +59,8 @@
"""The maximum amount of time in seconds to wait for additional request items
before processing the next batch of requests."""

_ACK_IDS_BATCH_SIZE = 2500
_ACK_IDS_BATCH_SIZE = 1000
"""The maximum number of ACK IDs to send in a single StreamingPullRequest.
The backend imposes a maximum request size limit of 524288 bytes (512 KiB) per
acknowledge / modifyAckDeadline request. ACK IDs have a maximum size of 164
bytes, thus we cannot send more than o 524288/176 ~= 2979 ACK IDs in a single
StreamingPullRequest message.
Accounting for some overhead, we should thus only send a maximum of 2500 ACK
IDs at a time.
"""

_MIN_EXACTLY_ONCE_DELIVERY_ACK_MODACK_RETRY_DURATION_SECS = 1
Expand Down
4 changes: 2 additions & 2 deletions tests/unit/pubsub_v1/subscriber/test_dispatcher.py
Expand Up @@ -437,7 +437,7 @@ def test_ack_splitting_large_payload():
dispatcher_.ack(items)

calls = manager.send_unary_ack.call_args_list
assert len(calls) == 3
assert len(calls) == 6

all_ack_ids = {item.ack_id for item in items}
sent_ack_ids = collections.Counter()
Expand Down Expand Up @@ -689,7 +689,7 @@ def test_modify_ack_deadline_splitting_large_payload():
dispatcher_.modify_ack_deadline(items)

calls = manager.send_unary_modack.call_args_list
assert len(calls) == 3
assert len(calls) == 6

all_ack_ids = {item.ack_id for item in items}
sent_ack_ids = collections.Counter()
Expand Down

0 comments on commit 4361e67

Please sign in to comment.