-
Notifications
You must be signed in to change notification settings - Fork 3.6k
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
Set Block If queue full to false by default #441
Conversation
how is the default queue size change related? |
In production, if we have a producer with the following config:- And lets say the broker has a GC pause of 500 milliseconds or a rolling restart is going on then:- So in order to prevent clients seeing failures, we assumed that most properties will not produce over 1K MPS and so a queue size of 30K will prevent them from seeing failures before 30 seconds (default timeout). But yes I expect there to be some discussion regarding the queue size before the PR is merged @merlimat @saandrews @rdhabalia - do you agree with this approach? |
i think it'd be better to separate the queue size change from the block if full change. both might make sense, but they're not related. |
private int maxPendingMessages = 1000; | ||
private boolean blockIfQueueFull = true; | ||
private int maxPendingMessages = 30000; | ||
private boolean blockIfQueueFull = false; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should also update the Javadoc on the getter/setter
@merlimat - Updated the docs |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we also call it out this change in the documentation?
@saandrews - Have made relevant change to Open Source documentation, will update Yahoo wrapper documentation and release notes once the PR is merged. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
This PR introduces 3 metrics that are related to requests. - REQUEST_QUEUE_SIZE: the size of `requestQueue` in `KafkaCommandDecoder`. - REQUEST_QUEUED_LATENCY: the latency between a request enqueues to `requestQueue` and the request is dequeued. - REQUEST_PARSE: the time to parse a raw request
Motivation
Fix for #422
Modifications
Result
sendAsync becomes a non-blocking call
Do not merge this