The proposal looks good to me, will need some time to review the implementation RB later.
Bhavesh, I am wondering how you will use a flush() with a timeout since such a call does not actually provide any flushing guarantees? As for close(), there is a separate JIRA for this: KAFKA-1660 <https://issues.apache.org/jira/browse/KAFKA-1660> Guozhang On Mon, Feb 9, 2015 at 2:29 PM, Bhavesh Mistry <mistry.p.bhav...@gmail.com> wrote: > Hi Jay, > > How about adding timeout for each method calls flush(timeout,TimeUnit) and > close(timeout,TimeUNIT) ? We had runway io thread issue and caller thread > should not blocked for ever for these methods ? > > > Thanks, > > Bhavesh > > On Sun, Feb 8, 2015 at 12:18 PM, Jay Kreps <jay.kr...@gmail.com> wrote: > > > Well actually in the case of linger.ms = 0 the send is still > asynchronous > > so calling flush() blocks until all the previously sent records have > > completed. It doesn't speed anything up in that case, though, since they > > are already available to send. > > > > -Jay > > > > On Sun, Feb 8, 2015 at 10:36 AM, Gwen Shapira <gshap...@cloudera.com> > > wrote: > > > > > Looks good to me. > > > > > > I like the idea of not blocking additional sends but not guaranteeing > > that > > > flush() will deliver them. > > > > > > I assume that with linger.ms = 0, flush will just be a noop (since the > > > queue will be empty). Is that correct? > > > > > > Gwen > > > > > > On Sun, Feb 8, 2015 at 10:25 AM, Jay Kreps <jay.kr...@gmail.com> > wrote: > > > > > > > Following up on our previous thread on making batch send a little > > easier, > > > > here is a concrete proposal to add a flush() method to the producer: > > > > > > > > > > > > > > > > > > https://cwiki.apache.org/confluence/display/KAFKA/KIP-8+-+Add+a+flush+method+to+the+producer+API > > > > > > > > A proposed implementation is here: > > > > https://issues.apache.org/jira/browse/KAFKA-1865 > > > > > > > > Thoughts? > > > > > > > > -Jay > > > > > > > > > > -- -- Guozhang