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.
We should also update the Javadoc on the getter/setter
|
@merlimat - Updated the docs |
saandrews
left a comment
There was a problem hiding this comment.
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. |
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