bump Xiongqi (Wesley) Wu
On Thu, Sep 27, 2018 at 4:20 PM xiongqi wu <xiongq...@gmail.com> wrote: > > Thanks Eno, Brett, Dong, Guozhang, Colin, and Xiaohe for feedback. > Can I have more feedback or VOTE on this KIP? > > > Xiongqi (Wesley) Wu > > > On Wed, Sep 19, 2018 at 10:52 AM xiongqi wu <xiongq...@gmail.com> wrote: > >> Any other votes or comments? >> >> Xiongqi (Wesley) Wu >> >> >> On Tue, Sep 11, 2018 at 11:45 AM xiongqi wu <xiongq...@gmail.com> wrote: >> >>> Yes, more votes and code review. >>> >>> Xiongqi (Wesley) Wu >>> >>> >>> On Mon, Sep 10, 2018 at 11:37 PM Brett Rann <br...@zendesk.com.invalid> >>> wrote: >>> >>>> +1 (non binding) from on 0 then, and on the KIP. >>>> >>>> Where do we go from here? More votes? >>>> >>>> On Tue, Sep 11, 2018 at 5:34 AM Colin McCabe <cmcc...@apache.org> >>>> wrote: >>>> >>>> > On Mon, Sep 10, 2018, at 11:44, xiongqi wu wrote: >>>> > > Thank you for comments. I will use '0' for now. >>>> > > >>>> > > If we create topics through admin client in the future, we might >>>> perform >>>> > > some useful checks. (but the assumption is all brokers in the same >>>> > cluster >>>> > > have the same default configurations value, otherwise,it might >>>> still be >>>> > > tricky to do such cross validation check.) >>>> > >>>> > This isn't something that we might do in the future-- this is >>>> something we >>>> > are doing now. We already have Create Topic policies which are >>>> enforced by >>>> > the broker. Check KIP-108 and KIP-170 for details. This is one of the >>>> > motivations for getting rid of direct ZK access-- making sure that >>>> these >>>> > policies are applied. >>>> > >>>> > I agree that having different configurations on different brokers can >>>> be >>>> > confusing and frustrating . That's why more configurations are being >>>> made >>>> > dynamic using KIP-226. Dynamic configurations are stored centrally in >>>> ZK, >>>> > so they are the same on all brokers (modulo propagation delays). In >>>> any >>>> > case, this is a general issue, not specific to "create topics". >>>> > >>>> > cheers, >>>> > Colin >>>> > >>>> > >>>> > > >>>> > > >>>> > > Xiongqi (Wesley) Wu >>>> > > >>>> > > >>>> > > On Mon, Sep 10, 2018 at 11:15 AM Colin McCabe <cmcc...@apache.org> >>>> > wrote: >>>> > > >>>> > > > I don't have a strong opinion. But I think we should probably be >>>> > > > consistent with how segment.ms works, and just use 0. >>>> > > > >>>> > > > best, >>>> > > > Colin >>>> > > > >>>> > > > >>>> > > > On Wed, Sep 5, 2018, at 21:19, Brett Rann wrote: >>>> > > > > OK thanks for that clarification. I see why you're uncomfortable >>>> > with 0 >>>> > > > now. >>>> > > > > >>>> > > > > I'm not really fussed. I just prefer consistency in >>>> configuration >>>> > > > options. >>>> > > > > >>>> > > > > Personally I lean towards treating 0 and 1 similarly in that >>>> > scenario, >>>> > > > > because it favours the person thinking about setting the >>>> > configurations, >>>> > > > > and a person doesn't care about a 1ms edge case especially when >>>> the >>>> > > > context >>>> > > > > is the true minimum is tied to the log cleaner cadence. >>>> > > > > >>>> > > > > Introducing 0 to mean "disabled" because there is some >>>> uniquness in >>>> > > > > segment.ms not being able to be set to 0, reduces configuration >>>> > > > consistency >>>> > > > > in favour of capturing a MS gap in an edge case that nobody >>>> would >>>> > ever >>>> > > > > notice. For someone to understand why everywhere else -1 is >>>> used to >>>> > > > > disable, but here 0 is used, they would need to learn about >>>> > segment.ms >>>> > > > > having a 1ms minimum and then after learning would think "who >>>> cares >>>> > about >>>> > > > > 1ms?" in this context. I would anyway :) >>>> > > > > >>>> > > > > my 2c anyway. Will again defer to majority. Curious which way >>>> Colin >>>> > falls >>>> > > > > now. >>>> > > > > >>>> > > > > Don't want to spend more time on this though, It's well into >>>> > > > bikeshedding >>>> > > > > territory now. :) >>>> > > > > >>>> > > > > >>>> > > > > >>>> > > > > On Thu, Sep 6, 2018 at 1:31 PM xiongqi wu <xiongq...@gmail.com> >>>> > wrote: >>>> > > > > >>>> > > > > > I want to honor the minimum value of segment.ms (which is >>>> 1ms) to >>>> > > > force >>>> > > > > > roll an active segment. >>>> > > > > > So if we set "max.compaction.lag.ms" any value > 0, the >>>> minimum of >>>> > > > > > max.compaction.lag.ms and segment.ms will be used to seal an >>>> > active >>>> > > > > > segment. >>>> > > > > > >>>> > > > > > If we set max.compaction.lag.ms to 0, the current >>>> implementation >>>> > will >>>> > > > > > treat it as disabled. >>>> > > > > > >>>> > > > > > It is a little bit weird to treat max.compaction.lag=0 the >>>> same as >>>> > > > > > max.compaction.lag=1. >>>> > > > > > >>>> > > > > > There might be a reason why we set the minimum of segment.ms >>>> to 1, >>>> > > > and I >>>> > > > > > don't want to break this assumption. >>>> > > > > > >>>> > > > > > >>>> > > > > > >>>> > > > > > Xiongqi (Wesley) Wu >>>> > > > > > >>>> > > > > > >>>> > > > > > On Wed, Sep 5, 2018 at 7:54 PM Brett Rann >>>> > <br...@zendesk.com.invalid> >>>> > > > > > wrote: >>>> > > > > > >>>> > > > > > > You're rolling a new segment if the condition is met right? >>>> So >>>> > I'm >>>> > > > > > > struggling to understand the relevance of segment.ms here. >>>> > Maybe an >>>> > > > > > > example >>>> > > > > > > would help my understanding: >>>> > > > > > > >>>> > > > > > > segment.ms=9999999 >>>> > > > > > > *min.cleanable.dirty.ratio=1* >>>> > > > > > > max.compaction.lag.ms=1 >>>> > > > > > > >>>> > > > > > > When a duplicate message comes in, after 1ms the topic >>>> should be >>>> > > > eligible >>>> > > > > > > for compaction when the log compaction thread gets around to >>>> > > > evaluating >>>> > > > > > the >>>> > > > > > > topic. >>>> > > > > > > >>>> > > > > > > if we have >>>> > > > > > > segment.ms=9999999 >>>> > > > > > > *min.cleanable.dirty.ratio=1* >>>> > > > > > > max.compaction.lag.ms=0 >>>> > > > > > > >>>> > > > > > > When a duplicate message comes in, after 0ms the topic >>>> should be >>>> > > > eligible >>>> > > > > > > for compaction when the log compaction thread gets around to >>>> > > > evaluating >>>> > > > > > the >>>> > > > > > > topic. >>>> > > > > > > >>>> > > > > > > In both of those cases the change would mean a new segment >>>> is >>>> > rolled >>>> > > > so >>>> > > > > > the >>>> > > > > > > new message would be part of the compaction task. 0 and 1 >>>> are >>>> > > > practically >>>> > > > > > > the same meaning since neither is providing an actual >>>> guarantee >>>> > at >>>> > > > such >>>> > > > > > low >>>> > > > > > > MS settings, but effectively tying it to both the frequency >>>> of >>>> > the >>>> > > > log >>>> > > > > > > cleaner running and the priority of the given topic being >>>> the >>>> > highest >>>> > > > > > > priority of all topics that are evaluated for cleaning on >>>> the >>>> > next >>>> > > > cycle. >>>> > > > > > > You've captured that nuance with careful "skipped" wording >>>> in >>>> > the KIP >>>> > > > > > > here "controls >>>> > > > > > > the max time interval a message/segment can be skipped for >>>> log >>>> > > > > > compaction". >>>> > > > > > > >>>> > > > > > > How is 0 different to 1, practically? And how is it >>>> relating to >>>> > > > > > segment.ms >>>> > > > > > > ? >>>> > > > > > > Is it that you're proposing to have 0 mean "use segment.ms >>>> > > > instead?" as >>>> > > > > > a >>>> > > > > > > kind of third option? >>>> > > > > > > >>>> > > > > > > >>>> > > > > > > >>>> > > > > > > On Thu, Sep 6, 2018 at 11:34 AM xiongqi wu < >>>> xiongq...@gmail.com> >>>> > > > wrote: >>>> > > > > > > >>>> > > > > > > > To make it clear, >>>> > > > > > > > I don't against using -1 as disabled, but we need to come >>>> up >>>> > with >>>> > > > the >>>> > > > > > > > meaning of "0". >>>> > > > > > > > If "0" means immediate compaction, but the actual >>>> compaction >>>> > lag >>>> > > > will >>>> > > > > > be >>>> > > > > > > > segment.ms. >>>> > > > > > > > It has longer lag than setting the value to be half of >>>> > segment.ms. >>>> > > > > > > > We cannot provide "0" as max compaction lag. >>>> > > > > > > > >>>> > > > > > > > Here are two options. >>>> > > > > > > > Option 1: >>>> > > > > > > > Keep 0 as disabled >>>> > > > > > > > Option 2: >>>> > > > > > > > -1 (disabled), 0 (max compaction lag = segment.ms), and >>>> > others. >>>> > > > > > > > >>>> > > > > > > > >>>> > > > > > > > >>>> > > > > > > > Xiongqi (Wesley) Wu >>>> > > > > > > > >>>> > > > > > > > >>>> > > > > > > > On Wed, Sep 5, 2018 at 5:49 PM Brett Rann >>>> > > > <br...@zendesk.com.invalid> >>>> > > > > > > > wrote: >>>> > > > > > > > >>>> > > > > > > > > -1 is consistent as "special" with these settings for >>>> > example: >>>> > > > > > > > > >>>> > > > > > > > > log.retention.bytes >>>> > > > > > > > > socket.received.buffer.bytes >>>> > > > > > > > > socket.send.buffer.bytes >>>> > > > > > > > > queued.max.request.bytes >>>> > > > > > > > > retention.bytes >>>> > > > > > > > > retention.ms >>>> > > > > > > > > >>>> > > > > > > > > and acks. >>>> > > > > > > > > >>>> > > > > > > > > Where it may mean no limit, use OS defaults, max (acks), >>>> > etc. I >>>> > > > don't >>>> > > > > > > see >>>> > > > > > > > > much convention of 0 meaning those things. >>>> > > > > > > > > >>>> > > > > > > > > There are some NULLs but it seems convetion there is >>>> NULL is >>>> > used >>>> > > > > > where >>>> > > > > > > > > there's another setting in the hierarchy that would be >>>> used >>>> > > > instead. >>>> > > > > > > > > >>>> > > > > > > > > >>>> > > > > > > > > >>>> > > > > > > > > >>>> > > > > > > > > On Thu, Sep 6, 2018 at 10:42 AM Brett Rann < >>>> > br...@zendesk.com> >>>> > > > > > wrote: >>>> > > > > > > > > >>>> > > > > > > > > > If segment.ms can't be set to 0, then we're not being >>>> > > > consistent >>>> > > > > > > > > > by using 0 for this new setting? I throw out -1 for >>>> > > > consideration >>>> > > > > > > > > > again :) >>>> > > > > > > > > > >>>> > > > > > > > > > On Thu, Sep 6, 2018 at 10:03 AM xiongqi wu < >>>> > > > xiongq...@gmail.com> >>>> > > > > > > > wrote: >>>> > > > > > > > > > >>>> > > > > > > > > >> Thanks. I will document after PR is merged. >>>> > > > > > > > > >> >>>> > > > > > > > > >> BTW, Kafka enforce the minimum of "segment.ms" to >>>> 1, we >>>> > > > cannot >>>> > > > > > set >>>> > > > > > > " >>>> > > > > > > > > >> segment.ms" to 0. >>>> > > > > > > > > >> >>>> > > > > > > > > >> I also updated the title of this KIP. >>>> > > > > > > > > >> >>>> > > > > > > > > >> Xiongqi (Wesley) Wu >>>> > > > > > > > > >> >>>> > > > > > > > > >> >>>> > > > > > > > > >> On Wed, Sep 5, 2018 at 4:34 PM Brett Rann >>>> > > > > > <br...@zendesk.com.invalid >>>> > > > > > > > >>>> > > > > > > > > >> wrote: >>>> > > > > > > > > >> >>>> > > > > > > > > >> > I withdraw my comments on -1 since i'm in the >>>> minority. >>>> > :) >>>> > > > Can >>>> > > > > > we >>>> > > > > > > > > >> > make sure 0 gets documented as meaning disabled >>>> here: >>>> > > > > > > > > >> > >>>> https://kafka.apache.org/documentation/#brokerconfigs >>>> > <https://kafka.apache.org/documentation/#brokerconfigs> >>>> > > > > > <https://kafka.apache.org/documentation/#brokerconfigs >>>> > <https://kafka.apache.org/documentation/#brokerconfigs>> >>>> > > > > > > > <https://kafka.apache.org/documentation/#brokerconfigs >>>> > <https://kafka.apache.org/documentation/#brokerconfigs> >>>> > > > > > <https://kafka.apache.org/documentation/#brokerconfigs >>>> > <https://kafka.apache.org/documentation/#brokerconfigs>>> >>>> > > > > > > > > >> < >>>> https://kafka.apache.org/documentation/#brokerconfigs >>>> > <https://kafka.apache.org/documentation/#brokerconfigs> >>>> > > > > > <https://kafka.apache.org/documentation/#brokerconfigs >>>> > <https://kafka.apache.org/documentation/#brokerconfigs>> >>>> > > > > > > > <https://kafka.apache.org/documentation/#brokerconfigs >>>> > <https://kafka.apache.org/documentation/#brokerconfigs> >>>> > > > > > <https://kafka.apache.org/documentation/#brokerconfigs >>>> > <https://kafka.apache.org/documentation/#brokerconfigs>>>> ? >>>> > > > > > > > > >> > And while there it would be good if segment.ms is >>>> > > > documented >>>> > > > > > > > > >> > that 0 is disabled too. (there's some hierarchy of >>>> > configs >>>> > > > for >>>> > > > > > > that >>>> > > > > > > > > too >>>> > > > > > > > > >> > if its not set and null for others means disabled!) >>>> > > > > > > > > >> > >>>> > > > > > > > > >> > >>>> > > > > > > > > >> > On Thu, Sep 6, 2018 at 4:44 AM xiongqi wu < >>>> > > > xiongq...@gmail.com> >>>> > > > > > > > > wrote: >>>> > > > > > > > > >> > >>>> > > > > > > > > >> > > If we use 0 to indicate immediate compaction, the >>>> > > > compaction >>>> > > > > > lag >>>> > > > > > > > is >>>> > > > > > > > > >> > > determined by segment.ms in worst case. If >>>> segment.ms >>>> > is >>>> > > > 24 >>>> > > > > > > > hours, >>>> > > > > > > > > >> > > "immediate compaction" is a weaker guarantee than >>>> > setting >>>> > > > any >>>> > > > > > > > value >>>> > > > > > > > > >> less >>>> > > > > > > > > >> > > than 24 hours. By the definition of "max >>>> compaction >>>> > lag", >>>> > > > we >>>> > > > > > > > cannot >>>> > > > > > > > > >> have >>>> > > > > > > > > >> > > zero lag. So I use 0 to indicate "disable". >>>> > > > > > > > > >> > > >>>> > > > > > > > > >> > > >>>> > > > > > > > > >> > > >>>> > > > > > > > > >> > > Xiongqi (Wesley) Wu >>>> > > > > > > > > >> > > >>>> > > > > > > > > >> > > >>>> > > > > > > > > >> > > On Wed, Sep 5, 2018 at 8:34 AM Colin McCabe < >>>> > > > > > cmcc...@apache.org >>>> > > > > > > > >>>> > > > > > > > > >> wrote: >>>> > > > > > > > > >> > > >>>> > > > > > > > > >> > > > On Tue, Sep 4, 2018, at 22:11, Brett Rann >>>> wrote: >>>> > > > > > > > > >> > > > > > That's a fair point. We should make 0 = >>>> > disable, to >>>> > > > be >>>> > > > > > > > > >> consistent >>>> > > > > > > > > >> > > with >>>> > > > > > > > > >> > > > > the other settings. >>>> > > > > > > > > >> > > > > >>>> > > > > > > > > >> > > > > -1 is used elsewhere for disable and when >>>> seeing >>>> > it >>>> > > > in a >>>> > > > > > > > config >>>> > > > > > > > > >> it's >>>> > > > > > > > > >> > > > clear >>>> > > > > > > > > >> > > > > that it's a special meaning. 0 doesn't have >>>> to >>>> > mean >>>> > > > > > instant, >>>> > > > > > > > it >>>> > > > > > > > > >> just >>>> > > > > > > > > >> > > > means >>>> > > > > > > > > >> > > > > as quickly as possible. I don't think 0 is >>>> > intuitive >>>> > > > for >>>> > > > > > > > > disabled >>>> > > > > > > > > >> and >>>> > > > > > > > > >> > > it >>>> > > > > > > > > >> > > > > will be confusing. I wasn't aware segment.ms=0 >>>> == >>>> > > > > > disabled, >>>> > > > > > > > > but I >>>> > > > > > > > > >> > > think >>>> > > > > > > > > >> > > > > that is also unintuitive. >>>> > > > > > > > > >> > > > >>>> > > > > > > > > >> > > > I think there is an argument for keeping these >>>> two >>>> > > > > > > > configurations >>>> > > > > > > > > >> > > > consistent, since they are so similar. I agree >>>> that >>>> > 0 >>>> > > > was an >>>> > > > > > > > > >> > unfortunate >>>> > > > > > > > > >> > > > choice., >>>> > > > > > > > > >> > > > >>>> > > > > > > > > >> > > > best, >>>> > > > > > > > > >> > > > Colin >>>> > > > > > > > > >> > > > >>>> > > > > > > > > >> > > > > >>>> > > > > > > > > >> > > > > On Wed, Sep 5, 2018 at 11:38 AM Colin McCabe >>>> < >>>> > > > > > > > > cmcc...@apache.org> >>>> > > > > > > > > >> > > wrote: >>>> > > > > > > > > >> > > > > >>>> > > > > > > > > >> > > > > > On Tue, Sep 4, 2018, at 17:47, xiongqi wu >>>> wrote: >>>> > > > > > > > > >> > > > > > > Colin, >>>> > > > > > > > > >> > > > > > > Thank you for comments. >>>> > > > > > > > > >> > > > > > > see my inline reply below. >>>> > > > > > > > > >> > > > > > > >>>> > > > > > > > > >> > > > > > > Xiongqi (Wesley) Wu >>>> > > > > > > > > >> > > > > > > >>>> > > > > > > > > >> > > > > > > >>>> > > > > > > > > >> > > > > > > On Tue, Sep 4, 2018 at 5:24 PM Colin >>>> McCabe < >>>> > > > > > > > > >> cmcc...@apache.org> >>>> > > > > > > > > >> > > > wrote: >>>> > > > > > > > > >> > > > > > > >>>> > > > > > > > > >> > > > > > > > Hi Xiongqi, >>>> > > > > > > > > >> > > > > > > > >>>> > > > > > > > > >> > > > > > > > Thanks for this KIP. >>>> > > > > > > > > >> > > > > > > > >>>> > > > > > > > > >> > > > > > > > The name seems a bit ambiguous. Our >>>> > compaction >>>> > > > > > > policies >>>> > > > > > > > > are >>>> > > > > > > > > >> > > already >>>> > > > > > > > > >> > > > > > > > time-based, after all. It seems like >>>> this >>>> > > > change is >>>> > > > > > > > > focused >>>> > > > > > > > > >> > > around >>>> > > > > > > > > >> > > > > > adding >>>> > > > > > > > > >> > > > > > > > a “max.compaction.lag.ms." Perhaps >>>> the KIP >>>> > > > title >>>> > > > > > > should >>>> > > > > > > > > be >>>> > > > > > > > > >> > > > something >>>> > > > > > > > > >> > > > > > > > like "add maximum compaction lag time"? >>>> > > > > > > > > >> > > > > > > > >>>> > > > > > > > > >> > > > > > > > ==========> sure. I will change the >>>> title. >>>> > > > > > > > > >> > > > > > > >>>> > > > > > > > > >> > > > > > > > The active segment is forced to roll >>>> when >>>> > > > either " >>>> > > > > > > > > >> > > > > > max.compaction.lag.ms" >>>> > > > > > > > > >> > > > > > > > > or "segment.ms" (log.roll.ms and >>>> > > > log.roll.hours) >>>> > > > > > > has >>>> > > > > > > > > >> > reached. >>>> > > > > > > > > >> > > > > > > > >>>> > > > > > > > > >> > > > > > > > If the max.compaction.lag.ms is low, >>>> it >>>> > seems >>>> > > > like >>>> > > > > > > > > segments >>>> > > > > > > > > >> > will >>>> > > > > > > > > >> > > > be >>>> > > > > > > > > >> > > > > > > > rolled very frequently. This can be a >>>> > source of >>>> > > > > > > problems >>>> > > > > > > > > in >>>> > > > > > > > > >> the >>>> > > > > > > > > >> > > > > > cluster, >>>> > > > > > > > > >> > > > > > > > since creating many different small log >>>> > segments >>>> > > > > > > > consumes >>>> > > > > > > > > a >>>> > > > > > > > > >> > huge >>>> > > > > > > > > >> > > > > > amount of >>>> > > > > > > > > >> > > > > > > > cluster resources. Therefore, I would >>>> > suggest >>>> > > > > > adding a >>>> > > > > > > > > >> > > broker-level >>>> > > > > > > > > >> > > > > > > > configuration which allows us to set a >>>> > minimum >>>> > > > value >>>> > > > > > > for >>>> > > > > > > > > >> > > > > > > > max.compaction.lag.ms. If we let >>>> users set >>>> > it >>>> > > > on a >>>> > > > > > > > > >> per-topic >>>> > > > > > > > > >> > > > basis, >>>> > > > > > > > > >> > > > > > > > someone could set a value of 1 ms or >>>> > something, >>>> > > > and >>>> > > > > > > > cause >>>> > > > > > > > > >> > chaos. >>>> > > > > > > > > >> > > > > > > > >>>> > > > > > > > > >> > > > > > > > =========> this applies to segment.ms >>>> as >>>> > well. >>>> > > > > > Today >>>> > > > > > > > > users >>>> > > > > > > > > >> can >>>> > > > > > > > > >> > > > set " >>>> > > > > > > > > >> > > > > > > segment.ms" to a very low value, and >>>> cause a >>>> > > > frequent >>>> > > > > > > > > >> rolling of >>>> > > > > > > > > >> > > > active >>>> > > > > > > > > >> > > > > > > segments. >>>> > > > > > > > > >> > > > > > >>>> > > > > > > > > >> > > > > > Hi Xiongqi, >>>> > > > > > > > > >> > > > > > >>>> > > > > > > > > >> > > > > > I agree that this is an existing problem >>>> with >>>> > > > > > segment.ms. >>>> > > > > > > > > >> However, >>>> > > > > > > > > >> > > > that >>>> > > > > > > > > >> > > > > > doesn't mean that we shouldn't fix it. As >>>> you >>>> > noted, >>>> > > > > > there >>>> > > > > > > > > will >>>> > > > > > > > > >> be >>>> > > > > > > > > >> > > more >>>> > > > > > > > > >> > > > > > interest in these topic-level retention >>>> > settings as >>>> > > > a >>>> > > > > > > result >>>> > > > > > > > > of >>>> > > > > > > > > >> > GDPR. >>>> > > > > > > > > >> > > > It >>>> > > > > > > > > >> > > > > > seems likely that pre-existing problems >>>> will >>>> > cause >>>> > > > more >>>> > > > > > > > > trouble. >>>> > > > > > > > > >> > > > > > >>>> > > > > > > > > >> > > > > > The fix seems relatively straightforward >>>> here -- >>>> > > > add a >>>> > > > > > > > > >> broker-level >>>> > > > > > > > > >> > > > > > minimum segment.ms that overrides >>>> per-topic >>>> > > > minimums. >>>> > > > > > We >>>> > > > > > > > can >>>> > > > > > > > > >> also >>>> > > > > > > > > >> > > fail >>>> > > > > > > > > >> > > > > > with a helpful error message when someone >>>> > attempts >>>> > > > to >>>> > > > > > set >>>> > > > > > > an >>>> > > > > > > > > >> > invalid >>>> > > > > > > > > >> > > > > > configuration. >>>> > > > > > > > > >> > > > > > >>>> > > > > > > > > >> > > > > > > In my option, the minimum of " >>>> > > > max.compaction.lag.ms" >>>> > > > > > > > should >>>> > > > > > > > > >> be >>>> > > > > > > > > >> > > > > > > based on the minimum of "segment.ms". >>>> Since >>>> > > > today the >>>> > > > > > > > > >> minimum of >>>> > > > > > > > > >> > > > > > segment.ms >>>> > > > > > > > > >> > > > > > > is 1, "max.compaction.lag.ms" also >>>> starts >>>> > with >>>> > > > 1. "0" >>>> > > > > > > > means >>>> > > > > > > > > >> > > > disable. I >>>> > > > > > > > > >> > > > > > > can use -1 as disable, but it is hard to >>>> > define >>>> > > > the >>>> > > > > > > > meaning >>>> > > > > > > > > >> of 0 >>>> > > > > > > > > >> > > > because >>>> > > > > > > > > >> > > > > > we >>>> > > > > > > > > >> > > > > > > cannot just roll the active segment >>>> > immediately. >>>> > > > > > > > > >> > > > > > >>>> > > > > > > > > >> > > > > > That's a fair point. We should make 0 = >>>> > disable, to >>>> > > > be >>>> > > > > > > > > >> consistent >>>> > > > > > > > > >> > > with >>>> > > > > > > > > >> > > > the >>>> > > > > > > > > >> > > > > > other settings. >>>> > > > > > > > > >> > > > > > >>>> > > > > > > > > >> > > > > > best, >>>> > > > > > > > > >> > > > > > Colin >>>> > > > > > > > > >> > > > > > >>>> > > > > > > > > >> > > > > > > >>>> > > > > > > > > >> > > > > > > > -- Note that an alternative >>>> configuration >>>> > is to >>>> > > > use >>>> > > > > > -1 >>>> > > > > > > > as >>>> > > > > > > > > >> > > > "disabled" >>>> > > > > > > > > >> > > > > > and >>>> > > > > > > > > >> > > > > > > > 0 >>>> > > > > > > > > >> > > > > > > > > as "immediate compaction". Because >>>> > compaction >>>> > > > lag >>>> > > > > > is >>>> > > > > > > > > still >>>> > > > > > > > > >> > > > determined >>>> > > > > > > > > >> > > > > > > > > based on min.compaction.lag and how >>>> long >>>> > to >>>> > > > roll >>>> > > > > > an >>>> > > > > > > > > active >>>> > > > > > > > > >> > > > segment, >>>> > > > > > > > > >> > > > > > > > the >>>> > > > > > > > > >> > > > > > > > > actual lag for compaction is >>>> undetermined >>>> > if >>>> > > > we >>>> > > > > > use >>>> > > > > > > > "0". >>>> > > > > > > > > >> On >>>> > > > > > > > > >> > the >>>> > > > > > > > > >> > > > other >>>> > > > > > > > > >> > > > > > > > > hand, we can already set >>>> > > > > > "min.cleanable.dirty.ratio" >>>> > > > > > > > to >>>> > > > > > > > > >> > achieve >>>> > > > > > > > > >> > > > the >>>> > > > > > > > > >> > > > > > > > same >>>> > > > > > > > > >> > > > > > > > > goal. So here we choose "0" as >>>> "disabled". >>>> > > > > > > > > >> > > > > > > > >>>> > > > > > > > > >> > > > > > > > I would prefer -1 to be the invalid >>>> setting. >>>> > > > > > Treating >>>> > > > > > > 0 >>>> > > > > > > > > >> > > differently >>>> > > > > > > > > >> > > > > > than >>>> > > > > > > > > >> > > > > > > > 1 seems strange to me. >>>> > > > > > > > > >> > > > > > > > >>>> > > > > > > > > >> > > > > > > > =====> see my previous comment, I am >>>> not >>>> > > > strongly >>>> > > > > > > > against, >>>> > > > > > > > > >> but >>>> > > > > > > > > >> > 0 >>>> > > > > > > > > >> > > is >>>> > > > > > > > > >> > > > > > not a >>>> > > > > > > > > >> > > > > > > valid configuration in my option. So I >>>> use >>>> > "0" as >>>> > > > > > > disabled >>>> > > > > > > > > >> state. >>>> > > > > > > > > >> > > > > > > >>>> > > > > > > > > >> > > > > > > best, >>>> > > > > > > > > >> > > > > > > > Colin >>>> > > > > > > > > >> > > > > > > > >>>> > > > > > > > > >> > > > > > > > >>>> > > > > > > > > >> > > > > > > > On Tue, Sep 4, 2018, at 15:04, xiongqi >>>> wu >>>> > wrote: >>>> > > > > > > > > >> > > > > > > > > Let's VOTE for this KIP. >>>> > > > > > > > > >> > > > > > > > > KIP: >>>> > > > > > > > > >> > > > > > > > > >>>> > > > > > > > > >>>> https://cwiki.apache.org/confluence/display/KAFKA/KIP-354 >>>> > <https://cwiki.apache.org/confluence/display/KAFKA/KIP-354> >>>> > > > > > <https://cwiki.apache.org/confluence/display/KAFKA/KIP-354 >>>> > <https://cwiki.apache.org/confluence/display/KAFKA/KIP-354>> >>>> > > > > > > > < >>>> https://cwiki.apache.org/confluence/display/KAFKA/KIP-354 >>>> > <https://cwiki.apache.org/confluence/display/KAFKA/KIP-354> >>>> > > > > > <https://cwiki.apache.org/confluence/display/KAFKA/KIP-354 >>>> > <https://cwiki.apache.org/confluence/display/KAFKA/KIP-354>>> >>>> > > > > > > > > >> < >>>> > https://cwiki.apache.org/confluence/display/KAFKA/KIP-354 >>>> > <https://cwiki.apache.org/confluence/display/KAFKA/KIP-354> >>>> > > > > > <https://cwiki.apache.org/confluence/display/KAFKA/KIP-354 >>>> > <https://cwiki.apache.org/confluence/display/KAFKA/KIP-354>> >>>> > > > > > > > < >>>> https://cwiki.apache.org/confluence/display/KAFKA/KIP-354 >>>> > <https://cwiki.apache.org/confluence/display/KAFKA/KIP-354> >>>> > > > > > <https://cwiki.apache.org/confluence/display/KAFKA/KIP-354 >>>> > <https://cwiki.apache.org/confluence/display/KAFKA/KIP-354>>>> >>>> > > > > > > > > >> > > < >>>> > > > https://cwiki.apache.org/confluence/display/KAFKA/KIP-354 >>>> > <https://cwiki.apache.org/confluence/display/KAFKA/KIP-354> >>>> > > > > > <https://cwiki.apache.org/confluence/display/KAFKA/KIP-354 >>>> > <https://cwiki.apache.org/confluence/display/KAFKA/KIP-354>> >>>> > > > > > > > < >>>> https://cwiki.apache.org/confluence/display/KAFKA/KIP-354 >>>> > <https://cwiki.apache.org/confluence/display/KAFKA/KIP-354> >>>> > > > > > <https://cwiki.apache.org/confluence/display/KAFKA/KIP-354 >>>> > <https://cwiki.apache.org/confluence/display/KAFKA/KIP-354>>> >>>> > > > > > > > > >> < >>>> > https://cwiki.apache.org/confluence/display/KAFKA/KIP-354 >>>> > <https://cwiki.apache.org/confluence/display/KAFKA/KIP-354> >>>> > > > > > <https://cwiki.apache.org/confluence/display/KAFKA/KIP-354 >>>> > <https://cwiki.apache.org/confluence/display/KAFKA/KIP-354>> >>>> > > > > > > > < >>>> https://cwiki.apache.org/confluence/display/KAFKA/KIP-354 >>>> > <https://cwiki.apache.org/confluence/display/KAFKA/KIP-354> >>>> > > > > > <https://cwiki.apache.org/confluence/display/KAFKA/KIP-354 >>>> > <https://cwiki.apache.org/confluence/display/KAFKA/KIP-354>>>>> >>>> > > > > > > > > >> > > > > > < >>>> > > > > > > https://cwiki.apache.org/confluence/display/KAFKA/KIP-354 >>>> > <https://cwiki.apache.org/confluence/display/KAFKA/KIP-354> >>>> > > > > > <https://cwiki.apache.org/confluence/display/KAFKA/KIP-354 >>>> > <https://cwiki.apache.org/confluence/display/KAFKA/KIP-354>> >>>> > > > > > > > < >>>> https://cwiki.apache.org/confluence/display/KAFKA/KIP-354 >>>> > <https://cwiki.apache.org/confluence/display/KAFKA/KIP-354> >>>> > > > > > <https://cwiki.apache.org/confluence/display/KAFKA/KIP-354 >>>> > <https://cwiki.apache.org/confluence/display/KAFKA/KIP-354>>> >>>> > > > > > > > > >> < >>>> > https://cwiki.apache.org/confluence/display/KAFKA/KIP-354 >>>> > <https://cwiki.apache.org/confluence/display/KAFKA/KIP-354> >>>> > > > > > <https://cwiki.apache.org/confluence/display/KAFKA/KIP-354 >>>> > <https://cwiki.apache.org/confluence/display/KAFKA/KIP-354>> >>>> > > > > > > > < >>>> https://cwiki.apache.org/confluence/display/KAFKA/KIP-354 >>>> > <https://cwiki.apache.org/confluence/display/KAFKA/KIP-354> >>>> > > > > > <https://cwiki.apache.org/confluence/display/KAFKA/KIP-354 >>>> > <https://cwiki.apache.org/confluence/display/KAFKA/KIP-354>>>> >>>> > > > > > > > > >> > > < >>>> > > > https://cwiki.apache.org/confluence/display/KAFKA/KIP-354 >>>> > <https://cwiki.apache.org/confluence/display/KAFKA/KIP-354> >>>> > > > > > <https://cwiki.apache.org/confluence/display/KAFKA/KIP-354 >>>> > <https://cwiki.apache.org/confluence/display/KAFKA/KIP-354>> >>>> > > > > > > > < >>>> https://cwiki.apache.org/confluence/display/KAFKA/KIP-354 >>>> > <https://cwiki.apache.org/confluence/display/KAFKA/KIP-354> >>>> > > > > > <https://cwiki.apache.org/confluence/display/KAFKA/KIP-354 >>>> > <https://cwiki.apache.org/confluence/display/KAFKA/KIP-354>>> >>>> > > > > > > > > >> < >>>> > https://cwiki.apache.org/confluence/display/KAFKA/KIP-354 >>>> > <https://cwiki.apache.org/confluence/display/KAFKA/KIP-354> >>>> > > > > > <https://cwiki.apache.org/confluence/display/KAFKA/KIP-354 >>>> > <https://cwiki.apache.org/confluence/display/KAFKA/KIP-354>> >>>> > > > > > > > < >>>> https://cwiki.apache.org/confluence/display/KAFKA/KIP-354 >>>> > <https://cwiki.apache.org/confluence/display/KAFKA/KIP-354> >>>> > > > > > <https://cwiki.apache.org/confluence/display/KAFKA/KIP-354 >>>> > <https://cwiki.apache.org/confluence/display/KAFKA/KIP-354>>>>>> >>>> > > > > > > > > >> > > > > > > > > %3A+Time-based+log+compaction+policy >>>> > > > > > > > > >> > > > > > > > > >>>> > > > > > > > > >> > > > > > > > > Implementation: >>>> > > > > > > > > >> > > > > > > > > >>>> > > > > > > > > >> > > > > > > > > >>>> https://github.com/apache/kafka/pull/5611 >>>> > <https://github.com/apache/kafka/pull/5611> >>>> > > > > > <https://github.com/apache/kafka/pull/5611 >>>> > <https://github.com/apache/kafka/pull/5611>> >>>> > > > > > > > <https://github.com/apache/kafka/pull/5611 >>>> > <https://github.com/apache/kafka/pull/5611> >>>> > > > > > <https://github.com/apache/kafka/pull/5611 >>>> > <https://github.com/apache/kafka/pull/5611>>> >>>> > > > > > > > > >> <https://github.com/apache/kafka/pull/5611 >>>> > <https://github.com/apache/kafka/pull/5611> >>>> > > > > > <https://github.com/apache/kafka/pull/5611 >>>> > <https://github.com/apache/kafka/pull/5611>> >>>> > > > > > > > <https://github.com/apache/kafka/pull/5611 >>>> > <https://github.com/apache/kafka/pull/5611> >>>> > > > > > <https://github.com/apache/kafka/pull/5611 >>>> > <https://github.com/apache/kafka/pull/5611>>>> >>>> > > > > > > > > >> > > <https://github.com/apache/kafka/pull/5611 >>>> > <https://github.com/apache/kafka/pull/5611> >>>> > > > > > <https://github.com/apache/kafka/pull/5611 >>>> > <https://github.com/apache/kafka/pull/5611>> >>>> > > > > > > > <https://github.com/apache/kafka/pull/5611 >>>> > <https://github.com/apache/kafka/pull/5611> >>>> > > > > > <https://github.com/apache/kafka/pull/5611 >>>> > <https://github.com/apache/kafka/pull/5611>>> >>>> > > > > > > > > >> <https://github.com/apache/kafka/pull/5611 >>>> > <https://github.com/apache/kafka/pull/5611> >>>> > > > > > <https://github.com/apache/kafka/pull/5611 >>>> > <https://github.com/apache/kafka/pull/5611>> >>>> > > > > > > > <https://github.com/apache/kafka/pull/5611 >>>> > <https://github.com/apache/kafka/pull/5611> >>>> > > > > > <https://github.com/apache/kafka/pull/5611 >>>> > <https://github.com/apache/kafka/pull/5611>>>>> >>>> > > > > > > > > >> > > > > > <https://github.com/apache/kafka/pull/5611 >>>> > <https://github.com/apache/kafka/pull/5611> >>>> > > > > > <https://github.com/apache/kafka/pull/5611 >>>> > <https://github.com/apache/kafka/pull/5611>> >>>> > > > > > > > <https://github.com/apache/kafka/pull/5611 >>>> > <https://github.com/apache/kafka/pull/5611> >>>> > > > > > <https://github.com/apache/kafka/pull/5611 >>>> > <https://github.com/apache/kafka/pull/5611>>> >>>> > > > > > > > > >> <https://github.com/apache/kafka/pull/5611 >>>> > <https://github.com/apache/kafka/pull/5611> >>>> > > > > > <https://github.com/apache/kafka/pull/5611 >>>> > <https://github.com/apache/kafka/pull/5611>> >>>> > > > > > > > <https://github.com/apache/kafka/pull/5611 >>>> > <https://github.com/apache/kafka/pull/5611> >>>> > > > > > <https://github.com/apache/kafka/pull/5611 >>>> > <https://github.com/apache/kafka/pull/5611>>>> >>>> > > > > > > > > >> > > <https://github.com/apache/kafka/pull/5611 >>>> > <https://github.com/apache/kafka/pull/5611> >>>> > > > > > <https://github.com/apache/kafka/pull/5611 >>>> > <https://github.com/apache/kafka/pull/5611>> >>>> > > > > > > > <https://github.com/apache/kafka/pull/5611 >>>> > <https://github.com/apache/kafka/pull/5611> >>>> > > > > > <https://github.com/apache/kafka/pull/5611 >>>> > <https://github.com/apache/kafka/pull/5611>>> >>>> > > > > > > > > >> <https://github.com/apache/kafka/pull/5611 >>>> > <https://github.com/apache/kafka/pull/5611> >>>> > > > > > <https://github.com/apache/kafka/pull/5611 >>>> > <https://github.com/apache/kafka/pull/5611>> >>>> > > > > > > > <https://github.com/apache/kafka/pull/5611 >>>> > <https://github.com/apache/kafka/pull/5611> >>>> > > > > > <https://github.com/apache/kafka/pull/5611 >>>> > <https://github.com/apache/kafka/pull/5611>>>>>> >>>> > > > > > > > > >> > > > > > > > > >>>> > > > > > > > > >> > > > > > > > > >>>> > > > > > > > > >> > > > > > > > > >>>> > > > > > > > > >> > > > > > > > > Xiongqi (Wesley) Wu >>>> > > > > > > > > >> > > > > > > > >>>> > > > > > > > > >> > > > > > >>>> > > > > > > > > >> > > > >>>> > > > > > > > > >> > > >>>> > > > > > > > > >> > >>>> > > > > > > > > >> > >>>> > > > > > > > > >> > -- >>>> > > > > > > > > >> > >>>> > > > > > > > > >> > Brett Rann >>>> > > > > > > > > >> > >>>> > > > > > > > > >> > Senior DevOps Engineer >>>> > > > > > > > > >> > >>>> > > > > > > > > >> > >>>> > > > > > > > > >> > Zendesk International Ltd >>>> > > > > > > > > >> > >>>> > > > > > > > > >> > 395 Collins Street, Melbourne VIC 3000 Australia >>>> > > > > > > > > >> > >>>> > > > > > > > > >> > Mobile: +61 (0) 418 826 017 >>>> > > > > > > > > >> > >>>> > > > > > > > > >> >>>> > > > > > > > > > >>>> > > > > > > > > > >>>> > > > > > > > > > -- >>>> > > > > > > > > > >>>> > > > > > > > > > Brett Rann >>>> > > > > > > > > > >>>> > > > > > > > > > Senior DevOps Engineer >>>> > > > > > > > > > >>>> > > > > > > > > > >>>> > > > > > > > > > Zendesk International Ltd >>>> > > > > > > > > > >>>> > > > > > > > > > 395 Collins Street, Melbourne VIC 3000 Australia >>>> > > > > > > > > > >>>> > > > > > > > > > Mobile: +61 (0) 418 826 017 >>>> > > > > > > > > > >>>> > > > > > > > > >>>> > > > > > > > > >>>> > > > > > > > > -- >>>> > > > > > > > > >>>> > > > > > > > > Brett Rann >>>> > > > > > > > > >>>> > > > > > > > > Senior DevOps Engineer >>>> > > > > > > > > >>>> > > > > > > > > >>>> > > > > > > > > Zendesk International Ltd >>>> > > > > > > > > >>>> > > > > > > > > 395 Collins Street, Melbourne VIC 3000 Australia >>>> > > > > > > > > >>>> > > > > > > > > Mobile: +61 (0) 418 826 017 >>>> > > > > > > > > >>>> > > > > > > > >>>> > > > > > > >>>> > > > > > >>>> > > > >>>> > >>>> >>>