Push up the thread for voting after discussion on the KIP hangout. On 3/19/15, 9:03 PM, "Jiangjie Qin" <j...@linkedin.com> wrote:
>We had some additional discussions on the discussion thread. Pushing up >this thread to resume voting. > >On 3/11/15, 8:47 PM, "Jay Kreps" <jay.kr...@gmail.com> wrote: > >>Yeah guys, I'd like to second that. I'd really really love to get the >>quality of these to the point where we could broadly solicit user input >>and >>use them as a permanent document of the alternatives and rationale. >> >>I know it is a little painful to have process, but I think we all saw >>what >>happened to the previous clients as public interfaces so I really really >>really want us to just be incredibly thoughtful and disciplined as we >>make >>changes. I think we all want to avoid another "client rewrite". >> >>To second Joe's question in a more specific way, I think an alternative I >>don't see considered to give close() a bounded time is just to enforce >>the >>request time on the client side, which will cause all requests to be >>failed >>after the request timeout expires. This was the same behavior as for >>flush. >>In the case where the user just wants to ensure close doesn't block >>forever >>I think that may be sufficient? >> >>So one alternative might be to just do that request timeout feature and >>add >>a new producer config that is something like >> abort.on.failure=false >>which causes the producer to hard exit if it can't send a request. Which >>I >>think is closer to what you want, with this just being a way to implement >>that behavior. >> >>I'm not sure if this is better or worse, but we should be sure before we >>make the change. >> >>I also have a concern about >> producer.close(0, TimeUnit.MILLISECONDS) >>not meaning close with a timeout of 0 ms. >> >>I realize this exists in other java apis, but it is so confusing it even >>confused us into having that recent producer bug because of course all >>the >>other numbers mean "wait that long". >> >>I'd propose >> close()--block until all completed >> close(0, TimeUnit.MILLISECONDS)--block for 0 ms >> close(5, TimeUnit.MILLISECONDS)--block for 5 ms >> close(-1, TimeUnit.MILLISECONDS)--error because blocking for negative >>ms >>would mean completing in the past :-) >> >>-Jay >> >>On Wed, Mar 11, 2015 at 8:31 PM, Joe Stein <joe.st...@stealth.ly> wrote: >> >>> Could the KIP confluence please have updated the discussion thread >>>link, >>> thanks... could you also remove the template boilerplate at the top >>>"*This >>> page is meant as a template ..*" so we can capture it for the release >>> cleanly. >>> >>> Also I don't really/fully understand how this is different than >>> flush(time); close() and why close has its own timeout also? >>> >>> Lastly, what is the forceClose flag? This isn't documented in the >>>public >>> interface so it isn't clear how to completely use the feature just by >>> reading the KIP. >>> >>> ~ Joe Stein >>> - - - - - - - - - - - - - - - - - >>> >>> http://www.stealth.ly >>> - - - - - - - - - - - - - - - - - >>> >>> On Wed, Mar 11, 2015 at 11:24 PM, Guozhang Wang <wangg...@gmail.com> >>> wrote: >>> >>> > +1 (binding) >>> > >>> > On Wed, Mar 11, 2015 at 8:10 PM, Jiangjie Qin >>><j...@linkedin.com.invalid >>> > >>> > wrote: >>> > >>> > > >>> > > >>> > >>> >>>https://cwiki.apache.org/confluence/display/KAFKA/KIP-15+-+Add+a+close+m >>>e >>>thod+with+a+timeout+in+the+producer >>> > > >>> > > >>> > >>> > >>> > -- >>> > -- Guozhang >>> > >>> >