-
Notifications
You must be signed in to change notification settings - Fork 201
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
pubsub: expose a max_duration_per_lease_extension setting for subscribers #35
Comments
@pradn, that was me, who did this for Go, and, if you don't mind, I'll do this for Python as well |
@IlyaFaer Sounds good, Ilya. Reach out if you have any questions. |
@pradn, yes, I'm taking a look at I found only two places, where it's used: python-pubsub/google/cloud/pubsub_v1/subscriber/_protocol/streaming_pull_manager.py Line 111 in 380cb38
python-pubsub/google/cloud/pubsub_v1/subscriber/_protocol/streaming_pull_manager.py Line 194 in 380cb38
Am I missing something, or target in here will always be equal to 100? Looks like something that needs to be fixed (I think, I'll push it by the way)
|
Hey @IlyaFaer, we finalized the naming for all languages and updated the original issue. Please update when you get the chance. |
For languages that support lease management, we have bound the percentile distribution to 10s - 10m. It would be useful if the upper bound were configurable.
A user might process messages very slowly (8m to ack)
If the application fails 5s after receiving a message (whose ack deadline was set to 8m, because that's the deadline the percentile distribution gave), the user has to wait 7m55s for the message to be redelivered
Users should be able to set
max_duration_per_lease_extension
= 20s, which caps an individual modAck RPC to 20s. This would have the downside of causing more modack RPCs to be sent, but the upside that the redelivery time would only be 15sThis setting differs from
max_lease_duration
, which defines the total amount of time we'll hold a message.In addition,
max_duration_per_lease_extension
should be disabled if <=0, and should default to 0.The text was updated successfully, but these errors were encountered: