Hey Lucas,

Let me present a more specific sequence of events to show why out-of-order
processing can happen. Can you see if it makes sense?

Say broker has 12 request handler threads and there are many large
ProduceRequest in the queue. Each ProduceRequest takes 200 ms to be
processed. Let's also say R1 and R2 are small request and each request
takes 10 ms to be processed. Here is the sequence of events:

- Controller sends R1_a to broker and got disconnected. Then the controller
reconnects and re-sends R1_b immediately.
- One handler thread in the broker becomes free and takes an R1_b from the
request queue, processes it and sends the response for R1_B to the broker.
Right after the broker sends the response it encounters a long GC which
pauses all the handler threads.
- Controller receives the response for R1_b and sends R2.
- The broker finishes the GC. At this moment there are R1_a and R2 in the
queue and R2 is at the front of the queue. So the requests can be processed
in the order R1_b, R2, R1_a.

Thanks,
Dong


On Wed, Jul 18, 2018 at 10:50 PM, Lucas Wang <lucasatu...@gmail.com> wrote:

> Hi Dong,
>
> Sure. Regarding the 2nd case you mentioned
> "- If the controller has not received response for R1 before it is
> disconnected, it will re-send R1 followed by R2 after it is re-connected to
> the broker."
>
> with the max inflight request set to 1, after the connection is
> re-established, the controller won't send R2
> before it gets a response for R1, right? Plus the controller is using

blocking calls for each request, i.e.
> NetworkClientUtils.sendAndReceive, with infinite retries for each request
> within the same instance of RequestSendThread.
> So within the same instance of RequestSendThread, sending out multiple
> different requests seems impossible.
>
> However, based on the comments in the source code, it seems multiple
> requests can happen if
> the broker loses its zk session, and then reconnects with zookeeper,
> multiple generations of RequestSendThreads can trigger multiple different
> requests.
> In that case, we cannot prevent out-of-order processing even with the queue
> since those multiple requests are from different connections.
> Broker generations can help in those cases, but I won't dive into that
> discussion.
> Is that right?
>
> Lucas
>
> On Wed, Jul 18, 2018 at 9:08 PM, Dong Lin <lindon...@gmail.com> wrote:
>
> > Hey Lucas,
> >
> > I think for now we can probably discuss based on the existing Kafka's
> > design where controller to a broker is hard coded to be 1. It looks like
> > Becket has provided a good example in which requests from the same
> > controller can be processed out of order.
> >
> > Thanks,
> > Dong
> >
> > On Wed, Jul 18, 2018 at 8:35 PM, Lucas Wang <lucasatu...@gmail.com>
> wrote:
> >
> > > @Becket and Dong,
> > > I think currently the ordering guarantee is achieved because
> > > the max inflight request from the controller to a broker is hard coded
> to
> > > be 1.
> > >
> > > If let's hypothetically say the max inflight requests is > 1, then I
> > think
> > > Dong
> > > is right to say that even the separate queue cannot guarantee ordered
> > > processing,
> > > For example, Req1 and Req2 are sent to a broker, and after a connection
> > > reconnection,
> > > both requests are sent again, causing the broker to have 4 requests in
> > the
> > > following order
> > > Req2 > Req1 > Req2 > Req1.
> > >
> > > In summary, it seems using the dequeue should not cause problems with
> > > out-of-order processing.
> > > Is that right?
> > >
> > > Lucas
> > >
> > > On Wed, Jul 18, 2018 at 6:24 PM, Dong Lin <lindon...@gmail.com> wrote:
> > >
> > > > Hey Becket,
> > > >
> > > > It seems that the requests from the old controller will be discarded
> > due
> > > to
> > > > old controller epoch. It is not clear whether this is a problem.
> > > >
> > > > And if this out-of-order processing of controller requests is a
> > problem,
> > > it
> > > > seems like an existing problem which also applies to the multi-queue
> > > based
> > > > design. So it is probably not a concern specific to the use of deque.
> > > Does
> > > > that sound reasonable?
> > > >
> > > > Thanks,
> > > > Dong
> > > >
> > > >
> > > > On Wed, 18 Jul 2018 at 6:17 PM Becket Qin <becket....@gmail.com>
> > wrote:
> > > >
> > > > > Hi Mayuresh/Joel,
> > > > >
> > > > > Using the request channel as a dequeue was bright up some time ago
> > when
> > > > we
> > > > > initially thinking of prioritizing the request. The concern was
> that
> > > the
> > > > > controller requests are supposed to be processed in order. If we
> can
> > > > ensure
> > > > > that there is one controller request in the request channel, the
> > order
> > > is
> > > > > not a concern. But in cases that there are more than one controller
> > > > request
> > > > > inserted into the queue, the controller request order may change
> and
> > > > cause
> > > > > problem. For example, think about the following sequence:
> > > > > 1. Controller successfully sent a request R1 to broker
> > > > > 2. Broker receives R1 and put the request to the head of the
> request
> > > > queue.
> > > > > 3. Controller to broker connection failed and the controller
> > > reconnected
> > > > to
> > > > > the broker.
> > > > > 4. Controller sends a request R2 to the broker
> > > > > 5. Broker receives R2 and add it to the head of the request queue.
> > > > > Now on the broker side, R2 will be processed before R1 is
> processed,
> > > > which
> > > > > may cause problem.
> > > > >
> > > > > Thanks,
> > > > >
> > > > > Jiangjie (Becket) Qin
> > > > >
> > > > >
> > > > >
> > > > > On Thu, Jul 19, 2018 at 3:23 AM, Joel Koshy <jjkosh...@gmail.com>
> > > wrote:
> > > > >
> > > > > > @Mayuresh - I like your idea. It appears to be a simpler less
> > > invasive
> > > > > > alternative and it should work. Jun/Becket/others, do you see any
> > > > > pitfalls
> > > > > > with this approach?
> > > > > >
> > > > > > On Wed, Jul 18, 2018 at 12:03 PM, Lucas Wang <
> > lucasatu...@gmail.com>
> > > > > > wrote:
> > > > > >
> > > > > > > @Mayuresh,
> > > > > > > That's a very interesting idea that I haven't thought before.
> > > > > > > It seems to solve our problem at hand pretty well, and also
> > > > > > > avoids the need to have a new size metric and capacity config
> > > > > > > for the controller request queue. In fact, if we were to adopt
> > > > > > > this design, there is no public interface change, and we
> > > > > > > probably don't need a KIP.
> > > > > > > Also implementation wise, it seems
> > > > > > > the java class LinkedBlockingQueue can readily satisfy the
> > > > requirement
> > > > > > > by supporting a capacity, and also allowing inserting at both
> > ends.
> > > > > > >
> > > > > > > My only concern is that this design is tied to the coincidence
> > that
> > > > > > > we have two request priorities and there are two ends to a
> deque.
> > > > > > > Hence by using the proposed design, it seems the network layer
> is
> > > > > > > more tightly coupled with upper layer logic, e.g. if we were to
> > add
> > > > > > > an extra priority level in the future for some reason, we would
> > > > > probably
> > > > > > > need to go back to the design of separate queues, one for each
> > > > priority
> > > > > > > level.
> > > > > > >
> > > > > > > In summary, I'm ok with both designs and lean toward your
> > suggested
> > > > > > > approach.
> > > > > > > Let's hear what others think.
> > > > > > >
> > > > > > > @Becket,
> > > > > > > In light of Mayuresh's suggested new design, I'm answering your
> > > > > question
> > > > > > > only in the context
> > > > > > > of the current KIP design: I think your suggestion makes sense,
> > and
> > > > I'm
> > > > > > ok
> > > > > > > with removing the capacity config and
> > > > > > > just relying on the default value of 20 being sufficient
> enough.
> > > > > > >
> > > > > > > Thanks,
> > > > > > > Lucas
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > On Wed, Jul 18, 2018 at 9:57 AM, Mayuresh Gharat <
> > > > > > > gharatmayures...@gmail.com
> > > > > > > > wrote:
> > > > > > >
> > > > > > > > Hi Lucas,
> > > > > > > >
> > > > > > > > Seems like the main intent here is to prioritize the
> controller
> > > > > request
> > > > > > > > over any other requests.
> > > > > > > > In that case, we can change the request queue to a dequeue,
> > where
> > > > you
> > > > > > > > always insert the normal requests (produce, consume,..etc) to
> > the
> > > > end
> > > > > > of
> > > > > > > > the dequeue, but if its a controller request, you insert it
> to
> > > the
> > > > > head
> > > > > > > of
> > > > > > > > the queue. This ensures that the controller request will be
> > given
> > > > > > higher
> > > > > > > > priority over other requests.
> > > > > > > >
> > > > > > > > Also since we only read one request from the socket and mute
> it
> > > and
> > > > > > only
> > > > > > > > unmute it after handling the request, this would ensure that
> we
> > > > don't
> > > > > > > > handle controller requests out of order.
> > > > > > > >
> > > > > > > > With this approach we can avoid the second queue and the
> > > additional
> > > > > > > config
> > > > > > > > for the size of the queue.
> > > > > > > >
> > > > > > > > What do you think ?
> > > > > > > >
> > > > > > > > Thanks,
> > > > > > > >
> > > > > > > > Mayuresh
> > > > > > > >
> > > > > > > >
> > > > > > > > On Wed, Jul 18, 2018 at 3:05 AM Becket Qin <
> > becket....@gmail.com
> > > >
> > > > > > wrote:
> > > > > > > >
> > > > > > > > > Hey Joel,
> > > > > > > > >
> > > > > > > > > Thank for the detail explanation. I agree the current
> design
> > > > makes
> > > > > > > sense.
> > > > > > > > > My confusion is about whether the new config for the
> > controller
> > > > > queue
> > > > > > > > > capacity is necessary. I cannot think of a case in which
> > users
> > > > > would
> > > > > > > > change
> > > > > > > > > it.
> > > > > > > > >
> > > > > > > > > Thanks,
> > > > > > > > >
> > > > > > > > > Jiangjie (Becket) Qin
> > > > > > > > >
> > > > > > > > > On Wed, Jul 18, 2018 at 6:00 PM, Becket Qin <
> > > > becket....@gmail.com>
> > > > > > > > wrote:
> > > > > > > > >
> > > > > > > > > > Hi Lucas,
> > > > > > > > > >
> > > > > > > > > > I guess my question can be rephrased to "do we expect
> user
> > to
> > > > > ever
> > > > > > > > change
> > > > > > > > > > the controller request queue capacity"? If we agree that
> 20
> > > is
> > > > > > > already
> > > > > > > > a
> > > > > > > > > > very generous default number and we do not expect user to
> > > > change
> > > > > > it,
> > > > > > > is
> > > > > > > > > it
> > > > > > > > > > still necessary to expose this as a config?
> > > > > > > > > >
> > > > > > > > > > Thanks,
> > > > > > > > > >
> > > > > > > > > > Jiangjie (Becket) Qin
> > > > > > > > > >
> > > > > > > > > > On Wed, Jul 18, 2018 at 2:29 AM, Lucas Wang <
> > > > > lucasatu...@gmail.com
> > > > > > >
> > > > > > > > > wrote:
> > > > > > > > > >
> > > > > > > > > >> @Becket
> > > > > > > > > >> 1. Thanks for the comment. You are right that normally
> > there
> > > > > > should
> > > > > > > be
> > > > > > > > > >> just
> > > > > > > > > >> one controller request because of muting,
> > > > > > > > > >> and I had NOT intended to say there would be many
> enqueued
> > > > > > > controller
> > > > > > > > > >> requests.
> > > > > > > > > >> I went through the KIP again, and I'm not sure which
> part
> > > > > conveys
> > > > > > > that
> > > > > > > > > >> info.
> > > > > > > > > >> I'd be happy to revise if you point it out the section.
> > > > > > > > > >>
> > > > > > > > > >> 2. Though it should not happen in normal conditions, the
> > > > current
> > > > > > > > design
> > > > > > > > > >> does not preclude multiple controllers running
> > > > > > > > > >> at the same time, hence if we don't have the controller
> > > queue
> > > > > > > capacity
> > > > > > > > > >> config and simply make its capacity to be 1,
> > > > > > > > > >> network threads handling requests from different
> > controllers
> > > > > will
> > > > > > be
> > > > > > > > > >> blocked during those troublesome times,
> > > > > > > > > >> which is probably not what we want. On the other hand,
> > > adding
> > > > > the
> > > > > > > > extra
> > > > > > > > > >> config with a default value, say 20, guards us from
> issues
> > > in
> > > > > > those
> > > > > > > > > >> troublesome times, and IMO there isn't much downside of
> > > adding
> > > > > the
> > > > > > > > extra
> > > > > > > > > >> config.
> > > > > > > > > >>
> > > > > > > > > >> @Mayuresh
> > > > > > > > > >> Good catch, this sentence is an obsolete statement based
> > on
> > > a
> > > > > > > previous
> > > > > > > > > >> design. I've revised the wording in the KIP.
> > > > > > > > > >>
> > > > > > > > > >> Thanks,
> > > > > > > > > >> Lucas
> > > > > > > > > >>
> > > > > > > > > >> On Tue, Jul 17, 2018 at 10:33 AM, Mayuresh Gharat <
> > > > > > > > > >> gharatmayures...@gmail.com> wrote:
> > > > > > > > > >>
> > > > > > > > > >> > Hi Lucas,
> > > > > > > > > >> >
> > > > > > > > > >> > Thanks for the KIP.
> > > > > > > > > >> > I am trying to understand why you think "The memory
> > > > > consumption
> > > > > > > can
> > > > > > > > > rise
> > > > > > > > > >> > given the total number of queued requests can go up to
> > 2x"
> > > > in
> > > > > > the
> > > > > > > > > impact
> > > > > > > > > >> > section. Normally the requests from controller to a
> > Broker
> > > > are
> > > > > > not
> > > > > > > > > high
> > > > > > > > > >> > volume, right ?
> > > > > > > > > >> >
> > > > > > > > > >> >
> > > > > > > > > >> > Thanks,
> > > > > > > > > >> >
> > > > > > > > > >> > Mayuresh
> > > > > > > > > >> >
> > > > > > > > > >> > On Tue, Jul 17, 2018 at 5:06 AM Becket Qin <
> > > > > > becket....@gmail.com>
> > > > > > > > > >> wrote:
> > > > > > > > > >> >
> > > > > > > > > >> > > Thanks for the KIP, Lucas. Separating the control
> > plane
> > > > from
> > > > > > the
> > > > > > > > > data
> > > > > > > > > >> > plane
> > > > > > > > > >> > > makes a lot of sense.
> > > > > > > > > >> > >
> > > > > > > > > >> > > In the KIP you mentioned that the controller request
> > > queue
> > > > > may
> > > > > > > > have
> > > > > > > > > >> many
> > > > > > > > > >> > > requests in it. Will this be a common case? The
> > > controller
> > > > > > > > requests
> > > > > > > > > >> still
> > > > > > > > > >> > > goes through the SocketServer. The SocketServer will
> > > mute
> > > > > the
> > > > > > > > > channel
> > > > > > > > > >> > once
> > > > > > > > > >> > > a request is read and put into the request channel.
> So
> > > > > > assuming
> > > > > > > > > there
> > > > > > > > > >> is
> > > > > > > > > >> > > only one connection between controller and each
> > broker,
> > > on
> > > > > the
> > > > > > > > > broker
> > > > > > > > > >> > side,
> > > > > > > > > >> > > there should be only one controller request in the
> > > > > controller
> > > > > > > > > request
> > > > > > > > > >> > queue
> > > > > > > > > >> > > at any given time. If that is the case, do we need a
> > > > > separate
> > > > > > > > > >> controller
> > > > > > > > > >> > > request queue capacity config? The default value 20
> > > means
> > > > > that
> > > > > > > we
> > > > > > > > > >> expect
> > > > > > > > > >> > > there are 20 controller switches to happen in a
> short
> > > > period
> > > > > > of
> > > > > > > > > time.
> > > > > > > > > >> I
> > > > > > > > > >> > am
> > > > > > > > > >> > > not sure whether someone should increase the
> > controller
> > > > > > request
> > > > > > > > > queue
> > > > > > > > > >> > > capacity to handle such case, as it seems indicating
> > > > > something
> > > > > > > > very
> > > > > > > > > >> wrong
> > > > > > > > > >> > > has happened.
> > > > > > > > > >> > >
> > > > > > > > > >> > > Thanks,
> > > > > > > > > >> > >
> > > > > > > > > >> > > Jiangjie (Becket) Qin
> > > > > > > > > >> > >
> > > > > > > > > >> > >
> > > > > > > > > >> > > On Fri, Jul 13, 2018 at 1:10 PM, Dong Lin <
> > > > > > lindon...@gmail.com>
> > > > > > > > > >> wrote:
> > > > > > > > > >> > >
> > > > > > > > > >> > > > Thanks for the update Lucas.
> > > > > > > > > >> > > >
> > > > > > > > > >> > > > I think the motivation section is intuitive. It
> will
> > > be
> > > > > good
> > > > > > > to
> > > > > > > > > >> learn
> > > > > > > > > >> > > more
> > > > > > > > > >> > > > about the comments from other reviewers.
> > > > > > > > > >> > > >
> > > > > > > > > >> > > > On Thu, Jul 12, 2018 at 9:48 PM, Lucas Wang <
> > > > > > > > > lucasatu...@gmail.com>
> > > > > > > > > >> > > wrote:
> > > > > > > > > >> > > >
> > > > > > > > > >> > > > > Hi Dong,
> > > > > > > > > >> > > > >
> > > > > > > > > >> > > > > I've updated the motivation section of the KIP
> by
> > > > > > explaining
> > > > > > > > the
> > > > > > > > > >> > cases
> > > > > > > > > >> > > > that
> > > > > > > > > >> > > > > would have user impacts.
> > > > > > > > > >> > > > > Please take a look at let me know your comments.
> > > > > > > > > >> > > > >
> > > > > > > > > >> > > > > Thanks,
> > > > > > > > > >> > > > > Lucas
> > > > > > > > > >> > > > >
> > > > > > > > > >> > > > > On Mon, Jul 9, 2018 at 5:53 PM, Lucas Wang <
> > > > > > > > > lucasatu...@gmail.com
> > > > > > > > > >> >
> > > > > > > > > >> > > > wrote:
> > > > > > > > > >> > > > >
> > > > > > > > > >> > > > > > Hi Dong,
> > > > > > > > > >> > > > > >
> > > > > > > > > >> > > > > > The simulation of disk being slow is merely
> for
> > me
> > > > to
> > > > > > > easily
> > > > > > > > > >> > > construct
> > > > > > > > > >> > > > a
> > > > > > > > > >> > > > > > testing scenario
> > > > > > > > > >> > > > > > with a backlog of produce requests. In
> > production,
> > > > > other
> > > > > > > > than
> > > > > > > > > >> the
> > > > > > > > > >> > > disk
> > > > > > > > > >> > > > > > being slow, a backlog of
> > > > > > > > > >> > > > > > produce requests may also be caused by high
> > > produce
> > > > > QPS.
> > > > > > > > > >> > > > > > In that case, we may not want to kill the
> broker
> > > and
> > > > > > > that's
> > > > > > > > > when
> > > > > > > > > >> > this
> > > > > > > > > >> > > > KIP
> > > > > > > > > >> > > > > > can be useful, both for JBOD
> > > > > > > > > >> > > > > > and non-JBOD setup.
> > > > > > > > > >> > > > > >
> > > > > > > > > >> > > > > > Going back to your previous question about
> each
> > > > > > > > ProduceRequest
> > > > > > > > > >> > > covering
> > > > > > > > > >> > > > > 20
> > > > > > > > > >> > > > > > partitions that are randomly
> > > > > > > > > >> > > > > > distributed, let's say a LeaderAndIsr request
> is
> > > > > > enqueued
> > > > > > > > that
> > > > > > > > > >> > tries
> > > > > > > > > >> > > to
> > > > > > > > > >> > > > > > switch the current broker, say broker0, from
> > > leader
> > > > to
> > > > > > > > > follower
> > > > > > > > > >> > > > > > *for one of the partitions*, say *test-0*. For
> > the
> > > > > sake
> > > > > > of
> > > > > > > > > >> > argument,
> > > > > > > > > >> > > > > > let's also assume the other brokers, say
> > broker1,
> > > > have
> > > > > > > > > *stopped*
> > > > > > > > > >> > > > fetching
> > > > > > > > > >> > > > > > from
> > > > > > > > > >> > > > > > the current broker, i.e. broker0.
> > > > > > > > > >> > > > > > 1. If the enqueued produce requests have acks
> =
> > > -1
> > > > > > (ALL)
> > > > > > > > > >> > > > > >   1.1 without this KIP, the ProduceRequests
> > ahead
> > > of
> > > > > > > > > >> LeaderAndISR
> > > > > > > > > >> > > will
> > > > > > > > > >> > > > be
> > > > > > > > > >> > > > > > put into the purgatory,
> > > > > > > > > >> > > > > >         and since they'll never be replicated
> to
> > > > other
> > > > > > > > brokers
> > > > > > > > > >> > > (because
> > > > > > > > > >> > > > > of
> > > > > > > > > >> > > > > > the assumption made above), they will
> > > > > > > > > >> > > > > >         be completed either when the
> > LeaderAndISR
> > > > > > request
> > > > > > > is
> > > > > > > > > >> > > processed
> > > > > > > > > >> > > > or
> > > > > > > > > >> > > > > > when the timeout happens.
> > > > > > > > > >> > > > > >   1.2 With this KIP, broker0 will immediately
> > > > > transition
> > > > > > > the
> > > > > > > > > >> > > partition
> > > > > > > > > >> > > > > > test-0 to become a follower,
> > > > > > > > > >> > > > > >         after the current broker sees the
> > > > replication
> > > > > of
> > > > > > > the
> > > > > > > > > >> > > remaining
> > > > > > > > > >> > > > 19
> > > > > > > > > >> > > > > > partitions, it can send a response indicating
> > that
> > > > > > > > > >> > > > > >         it's no longer the leader for the
> > > "test-0".
> > > > > > > > > >> > > > > >   To see the latency difference between 1.1
> and
> > > 1.2,
> > > > > > let's
> > > > > > > > say
> > > > > > > > > >> > there
> > > > > > > > > >> > > > are
> > > > > > > > > >> > > > > > 24K produce requests ahead of the
> LeaderAndISR,
> > > and
> > > > > > there
> > > > > > > > are
> > > > > > > > > 8
> > > > > > > > > >> io
> > > > > > > > > >> > > > > threads,
> > > > > > > > > >> > > > > >   so each io thread will process approximately
> > > 3000
> > > > > > > produce
> > > > > > > > > >> > requests.
> > > > > > > > > >> > > > Now
> > > > > > > > > >> > > > > > let's investigate the io thread that finally
> > > > processed
> > > > > > the
> > > > > > > > > >> > > > LeaderAndISR.
> > > > > > > > > >> > > > > >   For the 3000 produce requests, if we model
> the
> > > > time
> > > > > > when
> > > > > > > > > their
> > > > > > > > > >> > > > > remaining
> > > > > > > > > >> > > > > > 19 partitions catch up as t0, t1, ...t2999,
> and
> > > the
> > > > > > > > > LeaderAndISR
> > > > > > > > > >> > > > request
> > > > > > > > > >> > > > > is
> > > > > > > > > >> > > > > > processed at time t3000.
> > > > > > > > > >> > > > > >   Without this KIP, the 1st produce request
> > would
> > > > have
> > > > > > > > waited
> > > > > > > > > an
> > > > > > > > > >> > > extra
> > > > > > > > > >> > > > > > t3000 - t0 time in the purgatory, the 2nd an
> > extra
> > > > > time
> > > > > > of
> > > > > > > > > >> t3000 -
> > > > > > > > > >> > > t1,
> > > > > > > > > >> > > > > etc.
> > > > > > > > > >> > > > > >   Roughly speaking, the latency difference is
> > > bigger
> > > > > for
> > > > > > > the
> > > > > > > > > >> > earlier
> > > > > > > > > >> > > > > > produce requests than for the later ones. For
> > the
> > > > same
> > > > > > > > reason,
> > > > > > > > > >> the
> > > > > > > > > >> > > more
> > > > > > > > > >> > > > > > ProduceRequests queued
> > > > > > > > > >> > > > > >   before the LeaderAndISR, the bigger benefit
> we
> > > get
> > > > > > > (capped
> > > > > > > > > by
> > > > > > > > > >> the
> > > > > > > > > >> > > > > > produce timeout).
> > > > > > > > > >> > > > > > 2. If the enqueued produce requests have
> acks=0
> > or
> > > > > > acks=1
> > > > > > > > > >> > > > > >   There will be no latency differences in this
> > > case,
> > > > > but
> > > > > > > > > >> > > > > >   2.1 without this KIP, the records of
> partition
> > > > > test-0
> > > > > > in
> > > > > > > > the
> > > > > > > > > >> > > > > > ProduceRequests ahead of the LeaderAndISR will
> > be
> > > > > > appended
> > > > > > > > to
> > > > > > > > > >> the
> > > > > > > > > >> > > local
> > > > > > > > > >> > > > > log,
> > > > > > > > > >> > > > > >         and eventually be truncated after
> > > processing
> > > > > the
> > > > > > > > > >> > > LeaderAndISR.
> > > > > > > > > >> > > > > > This is what's referred to as
> > > > > > > > > >> > > > > >         "some unofficial definition of data
> loss
> > > in
> > > > > > terms
> > > > > > > of
> > > > > > > > > >> > messages
> > > > > > > > > >> > > > > > beyond the high watermark".
> > > > > > > > > >> > > > > >   2.2 with this KIP, we can mitigate the
> effect
> > > > since
> > > > > if
> > > > > > > the
> > > > > > > > > >> > > > LeaderAndISR
> > > > > > > > > >> > > > > > is immediately processed, the response to
> > > producers
> > > > > will
> > > > > > > > have
> > > > > > > > > >> > > > > >         the NotLeaderForPartition error,
> causing
> > > > > > producers
> > > > > > > > to
> > > > > > > > > >> retry
> > > > > > > > > >> > > > > >
> > > > > > > > > >> > > > > > This explanation above is the benefit for
> > reducing
> > > > the
> > > > > > > > latency
> > > > > > > > > >> of a
> > > > > > > > > >> > > > > broker
> > > > > > > > > >> > > > > > becoming the follower,
> > > > > > > > > >> > > > > > closely related is reducing the latency of a
> > > broker
> > > > > > > becoming
> > > > > > > > > the
> > > > > > > > > >> > > > leader.
> > > > > > > > > >> > > > > > In this case, the benefit is even more
> obvious,
> > if
> > > > > other
> > > > > > > > > brokers
> > > > > > > > > >> > have
> > > > > > > > > >> > > > > > resigned leadership, and the
> > > > > > > > > >> > > > > > current broker should take leadership. Any
> delay
> > > in
> > > > > > > > processing
> > > > > > > > > >> the
> > > > > > > > > >> > > > > > LeaderAndISR will be perceived
> > > > > > > > > >> > > > > > by clients as unavailability. In extreme
> cases,
> > > this
> > > > > can
> > > > > > > > cause
> > > > > > > > > >> > failed
> > > > > > > > > >> > > > > > produce requests if the retries are
> > > > > > > > > >> > > > > > exhausted.
> > > > > > > > > >> > > > > >
> > > > > > > > > >> > > > > > Another two types of controller requests are
> > > > > > > UpdateMetadata
> > > > > > > > > and
> > > > > > > > > >> > > > > > StopReplica, which I'll briefly discuss as
> > > follows:
> > > > > > > > > >> > > > > > For UpdateMetadata requests, delayed
> processing
> > > > means
> > > > > > > > clients
> > > > > > > > > >> > > receiving
> > > > > > > > > >> > > > > > stale metadata, e.g. with the wrong leadership
> > > info
> > > > > > > > > >> > > > > > for certain partitions, and the effect is more
> > > > retries
> > > > > > or
> > > > > > > > even
> > > > > > > > > >> > fatal
> > > > > > > > > >> > > > > > failure if the retries are exhausted.
> > > > > > > > > >> > > > > >
> > > > > > > > > >> > > > > > For StopReplica requests, a long queuing time
> > may
> > > > > > degrade
> > > > > > > > the
> > > > > > > > > >> > > > performance
> > > > > > > > > >> > > > > > of topic deletion.
> > > > > > > > > >> > > > > >
> > > > > > > > > >> > > > > > Regarding your last question of the delay for
> > > > > > > > > >> > DescribeLogDirsRequest,
> > > > > > > > > >> > > > you
> > > > > > > > > >> > > > > > are right
> > > > > > > > > >> > > > > > that this KIP cannot help with the latency in
> > > > getting
> > > > > > the
> > > > > > > > log
> > > > > > > > > >> dirs
> > > > > > > > > >> > > > info,
> > > > > > > > > >> > > > > > and it's only relevant
> > > > > > > > > >> > > > > > when controller requests are involved.
> > > > > > > > > >> > > > > >
> > > > > > > > > >> > > > > > Regards,
> > > > > > > > > >> > > > > > Lucas
> > > > > > > > > >> > > > > >
> > > > > > > > > >> > > > > >
> > > > > > > > > >> > > > > > On Tue, Jul 3, 2018 at 5:11 PM, Dong Lin <
> > > > > > > > lindon...@gmail.com
> > > > > > > > > >
> > > > > > > > > >> > > wrote:
> > > > > > > > > >> > > > > >
> > > > > > > > > >> > > > > >> Hey Jun,
> > > > > > > > > >> > > > > >>
> > > > > > > > > >> > > > > >> Thanks much for the comments. It is good
> point.
> > > So
> > > > > the
> > > > > > > > > feature
> > > > > > > > > >> may
> > > > > > > > > >> > > be
> > > > > > > > > >> > > > > >> useful for JBOD use-case. I have one question
> > > > below.
> > > > > > > > > >> > > > > >>
> > > > > > > > > >> > > > > >> Hey Lucas,
> > > > > > > > > >> > > > > >>
> > > > > > > > > >> > > > > >> Do you think this feature is also useful for
> > > > non-JBOD
> > > > > > > setup
> > > > > > > > > or
> > > > > > > > > >> it
> > > > > > > > > >> > is
> > > > > > > > > >> > > > > only
> > > > > > > > > >> > > > > >> useful for the JBOD setup? It may be useful
> to
> > > > > > understand
> > > > > > > > > this.
> > > > > > > > > >> > > > > >>
> > > > > > > > > >> > > > > >> When the broker is setup using JBOD, in order
> > to
> > > > move
> > > > > > > > leaders
> > > > > > > > > >> on
> > > > > > > > > >> > the
> > > > > > > > > >> > > > > >> failed
> > > > > > > > > >> > > > > >> disk to other disks, the system operator
> first
> > > > needs
> > > > > to
> > > > > > > get
> > > > > > > > > the
> > > > > > > > > >> > list
> > > > > > > > > >> > > > of
> > > > > > > > > >> > > > > >> partitions on the failed disk. This is
> > currently
> > > > > > achieved
> > > > > > > > > using
> > > > > > > > > >> > > > > >> AdminClient.describeLogDirs(), which sends
> > > > > > > > > >> DescribeLogDirsRequest
> > > > > > > > > >> > to
> > > > > > > > > >> > > > the
> > > > > > > > > >> > > > > >> broker. If we only prioritize the controller
> > > > > requests,
> > > > > > > then
> > > > > > > > > the
> > > > > > > > > >> > > > > >> DescribeLogDirsRequest
> > > > > > > > > >> > > > > >> may still take a long time to be processed by
> > the
> > > > > > broker.
> > > > > > > > So
> > > > > > > > > >> the
> > > > > > > > > >> > > > overall
> > > > > > > > > >> > > > > >> time to move leaders away from the failed
> disk
> > > may
> > > > > > still
> > > > > > > be
> > > > > > > > > >> long
> > > > > > > > > >> > > even
> > > > > > > > > >> > > > > with
> > > > > > > > > >> > > > > >> this KIP. What do you think?
> > > > > > > > > >> > > > > >>
> > > > > > > > > >> > > > > >> Thanks,
> > > > > > > > > >> > > > > >> Dong
> > > > > > > > > >> > > > > >>
> > > > > > > > > >> > > > > >>
> > > > > > > > > >> > > > > >> On Tue, Jul 3, 2018 at 4:38 PM, Lucas Wang <
> > > > > > > > > >> lucasatu...@gmail.com
> > > > > > > > > >> > >
> > > > > > > > > >> > > > > wrote:
> > > > > > > > > >> > > > > >>
> > > > > > > > > >> > > > > >> > Thanks for the insightful comment, Jun.
> > > > > > > > > >> > > > > >> >
> > > > > > > > > >> > > > > >> > @Dong,
> > > > > > > > > >> > > > > >> > Since both of the two comments in your
> > previous
> > > > > email
> > > > > > > are
> > > > > > > > > >> about
> > > > > > > > > >> > > the
> > > > > > > > > >> > > > > >> > benefits of this KIP and whether it's
> useful,
> > > > > > > > > >> > > > > >> > in light of Jun's last comment, do you
> agree
> > > that
> > > > > > this
> > > > > > > > KIP
> > > > > > > > > >> can
> > > > > > > > > >> > be
> > > > > > > > > >> > > > > >> > beneficial in the case mentioned by Jun?
> > > > > > > > > >> > > > > >> > Please let me know, thanks!
> > > > > > > > > >> > > > > >> >
> > > > > > > > > >> > > > > >> > Regards,
> > > > > > > > > >> > > > > >> > Lucas
> > > > > > > > > >> > > > > >> >
> > > > > > > > > >> > > > > >> > On Tue, Jul 3, 2018 at 2:07 PM, Jun Rao <
> > > > > > > > j...@confluent.io>
> > > > > > > > > >> > wrote:
> > > > > > > > > >> > > > > >> >
> > > > > > > > > >> > > > > >> > > Hi, Lucas, Dong,
> > > > > > > > > >> > > > > >> > >
> > > > > > > > > >> > > > > >> > > If all disks on a broker are slow, one
> > > probably
> > > > > > > should
> > > > > > > > > just
> > > > > > > > > >> > kill
> > > > > > > > > >> > > > the
> > > > > > > > > >> > > > > >> > > broker. In that case, this KIP may not
> > help.
> > > If
> > > > > > only
> > > > > > > > one
> > > > > > > > > of
> > > > > > > > > >> > the
> > > > > > > > > >> > > > > disks
> > > > > > > > > >> > > > > >> on
> > > > > > > > > >> > > > > >> > a
> > > > > > > > > >> > > > > >> > > broker is slow, one may want to fail that
> > > disk
> > > > > and
> > > > > > > move
> > > > > > > > > the
> > > > > > > > > >> > > > leaders
> > > > > > > > > >> > > > > on
> > > > > > > > > >> > > > > >> > that
> > > > > > > > > >> > > > > >> > > disk to other brokers. In that case,
> being
> > > able
> > > > > to
> > > > > > > > > process
> > > > > > > > > >> the
> > > > > > > > > >> > > > > >> > LeaderAndIsr
> > > > > > > > > >> > > > > >> > > requests faster will potentially help the
> > > > > producers
> > > > > > > > > recover
> > > > > > > > > >> > > > quicker.
> > > > > > > > > >> > > > > >> > >
> > > > > > > > > >> > > > > >> > > Thanks,
> > > > > > > > > >> > > > > >> > >
> > > > > > > > > >> > > > > >> > > Jun
> > > > > > > > > >> > > > > >> > >
> > > > > > > > > >> > > > > >> > > On Mon, Jul 2, 2018 at 7:56 PM, Dong Lin
> <
> > > > > > > > > >> lindon...@gmail.com
> > > > > > > > > >> > >
> > > > > > > > > >> > > > > wrote:
> > > > > > > > > >> > > > > >> > >
> > > > > > > > > >> > > > > >> > > > Hey Lucas,
> > > > > > > > > >> > > > > >> > > >
> > > > > > > > > >> > > > > >> > > > Thanks for the reply. Some follow up
> > > > questions
> > > > > > > below.
> > > > > > > > > >> > > > > >> > > >
> > > > > > > > > >> > > > > >> > > > Regarding 1, if each ProduceRequest
> > covers
> > > 20
> > > > > > > > > partitions
> > > > > > > > > >> > that
> > > > > > > > > >> > > > are
> > > > > > > > > >> > > > > >> > > randomly
> > > > > > > > > >> > > > > >> > > > distributed across all partitions, then
> > > each
> > > > > > > > > >> ProduceRequest
> > > > > > > > > >> > > will
> > > > > > > > > >> > > > > >> likely
> > > > > > > > > >> > > > > >> > > > cover some partitions for which the
> > broker
> > > is
> > > > > > still
> > > > > > > > > >> leader
> > > > > > > > > >> > > after
> > > > > > > > > >> > > > > it
> > > > > > > > > >> > > > > >> > > quickly
> > > > > > > > > >> > > > > >> > > > processes the
> > > > > > > > > >> > > > > >> > > > LeaderAndIsrRequest. Then broker will
> > still
> > > > be
> > > > > > slow
> > > > > > > > in
> > > > > > > > > >> > > > processing
> > > > > > > > > >> > > > > >> these
> > > > > > > > > >> > > > > >> > > > ProduceRequest and request will still
> be
> > > very
> > > > > > high
> > > > > > > > with
> > > > > > > > > >> this
> > > > > > > > > >> > > > KIP.
> > > > > > > > > >> > > > > It
> > > > > > > > > >> > > > > >> > > seems
> > > > > > > > > >> > > > > >> > > > that most ProduceRequest will still
> > timeout
> > > > > after
> > > > > > > 30
> > > > > > > > > >> > seconds.
> > > > > > > > > >> > > Is
> > > > > > > > > >> > > > > >> this
> > > > > > > > > >> > > > > >> > > > understanding correct?
> > > > > > > > > >> > > > > >> > > >
> > > > > > > > > >> > > > > >> > > > Regarding 2, if most ProduceRequest
> will
> > > > still
> > > > > > > > timeout
> > > > > > > > > >> after
> > > > > > > > > >> > > 30
> > > > > > > > > >> > > > > >> > seconds,
> > > > > > > > > >> > > > > >> > > > then it is less clear how this KIP
> > reduces
> > > > > > average
> > > > > > > > > >> produce
> > > > > > > > > >> > > > > latency.
> > > > > > > > > >> > > > > >> Can
> > > > > > > > > >> > > > > >> > > you
> > > > > > > > > >> > > > > >> > > > clarify what metrics can be improved by
> > > this
> > > > > KIP?
> > > > > > > > > >> > > > > >> > > >
> > > > > > > > > >> > > > > >> > > > Not sure why system operator directly
> > cares
> > > > > > number
> > > > > > > of
> > > > > > > > > >> > > truncated
> > > > > > > > > >> > > > > >> > messages.
> > > > > > > > > >> > > > > >> > > > Do you mean this KIP can improve
> average
> > > > > > throughput
> > > > > > > > or
> > > > > > > > > >> > reduce
> > > > > > > > > >> > > > > >> message
> > > > > > > > > >> > > > > >> > > > duplication? It will be good to
> > understand
> > > > > this.
> > > > > > > > > >> > > > > >> > > >
> > > > > > > > > >> > > > > >> > > > Thanks,
> > > > > > > > > >> > > > > >> > > > Dong
> > > > > > > > > >> > > > > >> > > >
> > > > > > > > > >> > > > > >> > > >
> > > > > > > > > >> > > > > >> > > >
> > > > > > > > > >> > > > > >> > > >
> > > > > > > > > >> > > > > >> > > >
> > > > > > > > > >> > > > > >> > > > On Tue, 3 Jul 2018 at 7:12 AM Lucas
> Wang
> > <
> > > > > > > > > >> > > lucasatu...@gmail.com
> > > > > > > > > >> > > > >
> > > > > > > > > >> > > > > >> > wrote:
> > > > > > > > > >> > > > > >> > > >
> > > > > > > > > >> > > > > >> > > > > Hi Dong,
> > > > > > > > > >> > > > > >> > > > >
> > > > > > > > > >> > > > > >> > > > > Thanks for your valuable comments.
> > Please
> > > > see
> > > > > > my
> > > > > > > > > reply
> > > > > > > > > >> > > below.
> > > > > > > > > >> > > > > >> > > > >
> > > > > > > > > >> > > > > >> > > > > 1. The Google doc showed only 1
> > > partition.
> > > > > Now
> > > > > > > > let's
> > > > > > > > > >> > > consider
> > > > > > > > > >> > > > a
> > > > > > > > > >> > > > > >> more
> > > > > > > > > >> > > > > >> > > > common
> > > > > > > > > >> > > > > >> > > > > scenario
> > > > > > > > > >> > > > > >> > > > > where broker0 is the leader of many
> > > > > partitions.
> > > > > > > And
> > > > > > > > > >> let's
> > > > > > > > > >> > > say
> > > > > > > > > >> > > > > for
> > > > > > > > > >> > > > > >> > some
> > > > > > > > > >> > > > > >> > > > > reason its IO becomes slow.
> > > > > > > > > >> > > > > >> > > > > The number of leader partitions on
> > > broker0
> > > > is
> > > > > > so
> > > > > > > > > large,
> > > > > > > > > >> > say
> > > > > > > > > >> > > > 10K,
> > > > > > > > > >> > > > > >> that
> > > > > > > > > >> > > > > >> > > the
> > > > > > > > > >> > > > > >> > > > > cluster is skewed,
> > > > > > > > > >> > > > > >> > > > > and the operator would like to shift
> > the
> > > > > > > leadership
> > > > > > > > > >> for a
> > > > > > > > > >> > > lot
> > > > > > > > > >> > > > of
> > > > > > > > > >> > > > > >> > > > > partitions, say 9K, to other brokers,
> > > > > > > > > >> > > > > >> > > > > either manually or through some
> service
> > > > like
> > > > > > > cruise
> > > > > > > > > >> > control.
> > > > > > > > > >> > > > > >> > > > > With this KIP, not only will the
> > > leadership
> > > > > > > > > transitions
> > > > > > > > > >> > > finish
> > > > > > > > > >> > > > > >> more
> > > > > > > > > >> > > > > >> > > > > quickly, helping the cluster itself
> > > > becoming
> > > > > > more
> > > > > > > > > >> > balanced,
> > > > > > > > > >> > > > > >> > > > > but all existing producers
> > corresponding
> > > to
> > > > > the
> > > > > > > 9K
> > > > > > > > > >> > > partitions
> > > > > > > > > >> > > > > will
> > > > > > > > > >> > > > > >> > get
> > > > > > > > > >> > > > > >> > > > the
> > > > > > > > > >> > > > > >> > > > > errors relatively quickly
> > > > > > > > > >> > > > > >> > > > > rather than relying on their timeout,
> > > > thanks
> > > > > to
> > > > > > > the
> > > > > > > > > >> > batched
> > > > > > > > > >> > > > > async
> > > > > > > > > >> > > > > >> ZK
> > > > > > > > > >> > > > > >> > > > > operations.
> > > > > > > > > >> > > > > >> > > > > To me it's a useful feature to have
> > > during
> > > > > such
> > > > > > > > > >> > troublesome
> > > > > > > > > >> > > > > times.
> > > > > > > > > >> > > > > >> > > > >
> > > > > > > > > >> > > > > >> > > > >
> > > > > > > > > >> > > > > >> > > > > 2. The experiments in the Google Doc
> > have
> > > > > shown
> > > > > > > > that
> > > > > > > > > >> with
> > > > > > > > > >> > > this
> > > > > > > > > >> > > > > KIP
> > > > > > > > > >> > > > > >> > many
> > > > > > > > > >> > > > > >> > > > > producers
> > > > > > > > > >> > > > > >> > > > > receive an explicit error
> > > > > > NotLeaderForPartition,
> > > > > > > > > based
> > > > > > > > > >> on
> > > > > > > > > >> > > > which
> > > > > > > > > >> > > > > >> they
> > > > > > > > > >> > > > > >> > > > retry
> > > > > > > > > >> > > > > >> > > > > immediately.
> > > > > > > > > >> > > > > >> > > > > Therefore the latency (~14
> > seconds+quick
> > > > > retry)
> > > > > > > for
> > > > > > > > > >> their
> > > > > > > > > >> > > > single
> > > > > > > > > >> > > > > >> > > message
> > > > > > > > > >> > > > > >> > > > is
> > > > > > > > > >> > > > > >> > > > > much smaller
> > > > > > > > > >> > > > > >> > > > > compared with the case of timing out
> > > > without
> > > > > > the
> > > > > > > > KIP
> > > > > > > > > >> (30
> > > > > > > > > >> > > > seconds
> > > > > > > > > >> > > > > >> for
> > > > > > > > > >> > > > > >> > > > timing
> > > > > > > > > >> > > > > >> > > > > out + quick retry).
> > > > > > > > > >> > > > > >> > > > > One might argue that reducing the
> > timing
> > > > out
> > > > > on
> > > > > > > the
> > > > > > > > > >> > producer
> > > > > > > > > >> > > > > side
> > > > > > > > > >> > > > > >> can
> > > > > > > > > >> > > > > >> > > > > achieve the same result,
> > > > > > > > > >> > > > > >> > > > > yet reducing the timeout has its own
> > > > > > > drawbacks[1].
> > > > > > > > > >> > > > > >> > > > >
> > > > > > > > > >> > > > > >> > > > > Also *IF* there were a metric to show
> > the
> > > > > > number
> > > > > > > of
> > > > > > > > > >> > > truncated
> > > > > > > > > >> > > > > >> > messages
> > > > > > > > > >> > > > > >> > > on
> > > > > > > > > >> > > > > >> > > > > brokers,
> > > > > > > > > >> > > > > >> > > > > with the experiments done in the
> Google
> > > > Doc,
> > > > > it
> > > > > > > > > should
> > > > > > > > > >> be
> > > > > > > > > >> > > easy
> > > > > > > > > >> > > > > to
> > > > > > > > > >> > > > > >> see
> > > > > > > > > >> > > > > >> > > > that
> > > > > > > > > >> > > > > >> > > > > a lot fewer messages need
> > > > > > > > > >> > > > > >> > > > > to be truncated on broker0 since the
> > > > > up-to-date
> > > > > > > > > >> metadata
> > > > > > > > > >> > > > avoids
> > > > > > > > > >> > > > > >> > > appending
> > > > > > > > > >> > > > > >> > > > > of messages
> > > > > > > > > >> > > > > >> > > > > in subsequent PRODUCE requests. If we
> > > talk
> > > > > to a
> > > > > > > > > system
> > > > > > > > > >> > > > operator
> > > > > > > > > >> > > > > >> and
> > > > > > > > > >> > > > > >> > ask
> > > > > > > > > >> > > > > >> > > > > whether
> > > > > > > > > >> > > > > >> > > > > they prefer fewer wasteful IOs, I bet
> > > most
> > > > > > likely
> > > > > > > > the
> > > > > > > > > >> > answer
> > > > > > > > > >> > > > is
> > > > > > > > > >> > > > > >> yes.
> > > > > > > > > >> > > > > >> > > > >
> > > > > > > > > >> > > > > >> > > > > 3. To answer your question, I think
> it
> > > > might
> > > > > be
> > > > > > > > > >> helpful to
> > > > > > > > > >> > > > > >> construct
> > > > > > > > > >> > > > > >> > > some
> > > > > > > > > >> > > > > >> > > > > formulas.
> > > > > > > > > >> > > > > >> > > > > To simplify the modeling, I'm going
> > back
> > > to
> > > > > the
> > > > > > > > case
> > > > > > > > > >> where
> > > > > > > > > >> > > > there
> > > > > > > > > >> > > > > >> is
> > > > > > > > > >> > > > > >> > > only
> > > > > > > > > >> > > > > >> > > > > ONE partition involved.
> > > > > > > > > >> > > > > >> > > > > Following the experiments in the
> Google
> > > > Doc,
> > > > > > > let's
> > > > > > > > > say
> > > > > > > > > >> > > broker0
> > > > > > > > > >> > > > > >> > becomes
> > > > > > > > > >> > > > > >> > > > the
> > > > > > > > > >> > > > > >> > > > > follower at time t0,
> > > > > > > > > >> > > > > >> > > > > and after t0 there were still N
> produce
> > > > > > requests
> > > > > > > in
> > > > > > > > > its
> > > > > > > > > >> > > > request
> > > > > > > > > >> > > > > >> > queue.
> > > > > > > > > >> > > > > >> > > > > With the up-to-date metadata brought
> by
> > > > this
> > > > > > KIP,
> > > > > > > > > >> broker0
> > > > > > > > > >> > > can
> > > > > > > > > >> > > > > >> reply
> > > > > > > > > >> > > > > >> > > with
> > > > > > > > > >> > > > > >> > > > an
> > > > > > > > > >> > > > > >> > > > > NotLeaderForPartition exception,
> > > > > > > > > >> > > > > >> > > > > let's use M1 to denote the average
> > > > processing
> > > > > > > time
> > > > > > > > of
> > > > > > > > > >> > > replying
> > > > > > > > > >> > > > > >> with
> > > > > > > > > >> > > > > >> > > such
> > > > > > > > > >> > > > > >> > > > an
> > > > > > > > > >> > > > > >> > > > > error message.
> > > > > > > > > >> > > > > >> > > > > Without this KIP, the broker will
> need
> > to
> > > > > > append
> > > > > > > > > >> messages
> > > > > > > > > >> > to
> > > > > > > > > >> > > > > >> > segments,
> > > > > > > > > >> > > > > >> > > > > which may trigger a flush to disk,
> > > > > > > > > >> > > > > >> > > > > let's use M2 to denote the average
> > > > processing
> > > > > > > time
> > > > > > > > > for
> > > > > > > > > >> > such
> > > > > > > > > >> > > > > logic.
> > > > > > > > > >> > > > > >> > > > > Then the average extra latency
> incurred
> > > > > without
> > > > > > > > this
> > > > > > > > > >> KIP
> > > > > > > > > >> > is
> > > > > > > > > >> > > N
> > > > > > > > > >> > > > *
> > > > > > > > > >> > > > > >> (M2 -
> > > > > > > > > >> > > > > >> > > > M1) /
> > > > > > > > > >> > > > > >> > > > > 2.
> > > > > > > > > >> > > > > >> > > > >
> > > > > > > > > >> > > > > >> > > > > In practice, M2 should always be
> larger
> > > > than
> > > > > > M1,
> > > > > > > > > which
> > > > > > > > > >> > means
> > > > > > > > > >> > > > as
> > > > > > > > > >> > > > > >> long
> > > > > > > > > >> > > > > >> > > as N
> > > > > > > > > >> > > > > >> > > > > is positive,
> > > > > > > > > >> > > > > >> > > > > we would see improvements on the
> > average
> > > > > > latency.
> > > > > > > > > >> > > > > >> > > > > There does not need to be significant
> > > > backlog
> > > > > > of
> > > > > > > > > >> requests
> > > > > > > > > >> > in
> > > > > > > > > >> > > > the
> > > > > > > > > >> > > > > >> > > request
> > > > > > > > > >> > > > > >> > > > > queue,
> > > > > > > > > >> > > > > >> > > > > or severe degradation of disk
> > performance
> > > > to
> > > > > > have
> > > > > > > > the
> > > > > > > > > >> > > > > improvement.
> > > > > > > > > >> > > > > >> > > > >
> > > > > > > > > >> > > > > >> > > > > Regards,
> > > > > > > > > >> > > > > >> > > > > Lucas
> > > > > > > > > >> > > > > >> > > > >
> > > > > > > > > >> > > > > >> > > > >
> > > > > > > > > >> > > > > >> > > > > [1] For instance, reducing the
> timeout
> > on
> > > > the
> > > > > > > > > producer
> > > > > > > > > >> > side
> > > > > > > > > >> > > > can
> > > > > > > > > >> > > > > >> > trigger
> > > > > > > > > >> > > > > >> > > > > unnecessary duplicate requests
> > > > > > > > > >> > > > > >> > > > > when the corresponding leader broker
> is
> > > > > > > overloaded,
> > > > > > > > > >> > > > exacerbating
> > > > > > > > > >> > > > > >> the
> > > > > > > > > >> > > > > >> > > > > situation.
> > > > > > > > > >> > > > > >> > > > >
> > > > > > > > > >> > > > > >> > > > > On Sun, Jul 1, 2018 at 9:18 PM, Dong
> > Lin
> > > <
> > > > > > > > > >> > > lindon...@gmail.com
> > > > > > > > > >> > > > >
> > > > > > > > > >> > > > > >> > wrote:
> > > > > > > > > >> > > > > >> > > > >
> > > > > > > > > >> > > > > >> > > > > > Hey Lucas,
> > > > > > > > > >> > > > > >> > > > > >
> > > > > > > > > >> > > > > >> > > > > > Thanks much for the detailed
> > > > documentation
> > > > > of
> > > > > > > the
> > > > > > > > > >> > > > experiment.
> > > > > > > > > >> > > > > >> > > > > >
> > > > > > > > > >> > > > > >> > > > > > Initially I also think having a
> > > separate
> > > > > > queue
> > > > > > > > for
> > > > > > > > > >> > > > controller
> > > > > > > > > >> > > > > >> > > requests
> > > > > > > > > >> > > > > >> > > > is
> > > > > > > > > >> > > > > >> > > > > > useful because, as you mentioned in
> > the
> > > > > > summary
> > > > > > > > > >> section
> > > > > > > > > >> > of
> > > > > > > > > >> > > > the
> > > > > > > > > >> > > > > >> > Google
> > > > > > > > > >> > > > > >> > > > > doc,
> > > > > > > > > >> > > > > >> > > > > > controller requests are generally
> > more
> > > > > > > important
> > > > > > > > > than
> > > > > > > > > >> > data
> > > > > > > > > >> > > > > >> requests
> > > > > > > > > >> > > > > >> > > and
> > > > > > > > > >> > > > > >> > > > > we
> > > > > > > > > >> > > > > >> > > > > > probably want controller requests
> to
> > be
> > > > > > > processed
> > > > > > > > > >> > sooner.
> > > > > > > > > >> > > > But
> > > > > > > > > >> > > > > >> then
> > > > > > > > > >> > > > > >> > > Eno
> > > > > > > > > >> > > > > >> > > > > has
> > > > > > > > > >> > > > > >> > > > > > two very good questions which I am
> > not
> > > > sure
> > > > > > the
> > > > > > > > > >> Google
> > > > > > > > > >> > doc
> > > > > > > > > >> > > > has
> > > > > > > > > >> > > > > >> > > answered
> > > > > > > > > >> > > > > >> > > > > > explicitly. Could you help with the
> > > > > following
> > > > > > > > > >> questions?
> > > > > > > > > >> > > > > >> > > > > >
> > > > > > > > > >> > > > > >> > > > > > 1) It is not very clear what is the
> > > > actual
> > > > > > > > benefit
> > > > > > > > > of
> > > > > > > > > >> > > > KIP-291
> > > > > > > > > >> > > > > to
> > > > > > > > > >> > > > > >> > > users.
> > > > > > > > > >> > > > > >> > > > > The
> > > > > > > > > >> > > > > >> > > > > > experiment setup in the Google doc
> > > > > simulates
> > > > > > > the
> > > > > > > > > >> > scenario
> > > > > > > > > >> > > > that
> > > > > > > > > >> > > > > >> > broker
> > > > > > > > > >> > > > > >> > > > is
> > > > > > > > > >> > > > > >> > > > > > very slow handling ProduceRequest
> due
> > > to
> > > > > e.g.
> > > > > > > > slow
> > > > > > > > > >> disk.
> > > > > > > > > >> > > It
> > > > > > > > > >> > > > > >> > currently
> > > > > > > > > >> > > > > >> > > > > > assumes that there is only 1
> > partition.
> > > > But
> > > > > > in
> > > > > > > > the
> > > > > > > > > >> > common
> > > > > > > > > >> > > > > >> scenario,
> > > > > > > > > >> > > > > >> > > it
> > > > > > > > > >> > > > > >> > > > is
> > > > > > > > > >> > > > > >> > > > > > probably reasonable to assume that
> > > there
> > > > > are
> > > > > > > many
> > > > > > > > > >> other
> > > > > > > > > >> > > > > >> partitions
> > > > > > > > > >> > > > > >> > > that
> > > > > > > > > >> > > > > >> > > > > are
> > > > > > > > > >> > > > > >> > > > > > also actively produced to and
> > > > > ProduceRequest
> > > > > > to
> > > > > > > > > these
> > > > > > > > > >> > > > > partition
> > > > > > > > > >> > > > > >> > also
> > > > > > > > > >> > > > > >> > > > > takes
> > > > > > > > > >> > > > > >> > > > > > e.g. 2 seconds to be processed. So
> > even
> > > > if
> > > > > > > > broker0
> > > > > > > > > >> can
> > > > > > > > > >> > > > become
> > > > > > > > > >> > > > > >> > > follower
> > > > > > > > > >> > > > > >> > > > > for
> > > > > > > > > >> > > > > >> > > > > > the partition 0 soon, it probably
> > still
> > > > > needs
> > > > > > > to
> > > > > > > > > >> process
> > > > > > > > > >> > > the
> > > > > > > > > >> > > > > >> > > > > ProduceRequest
> > > > > > > > > >> > > > > >> > > > > > slowly t in the queue because these
> > > > > > > > ProduceRequests
> > > > > > > > > >> > cover
> > > > > > > > > >> > > > > other
> > > > > > > > > >> > > > > >> > > > > partitions.
> > > > > > > > > >> > > > > >> > > > > > Thus most ProduceRequest will still
> > > > timeout
> > > > > > > after
> > > > > > > > > 30
> > > > > > > > > >> > > seconds
> > > > > > > > > >> > > > > and
> > > > > > > > > >> > > > > >> > most
> > > > > > > > > >> > > > > >> > > > > > clients will still likely timeout
> > after
> > > > 30
> > > > > > > > seconds.
> > > > > > > > > >> Then
> > > > > > > > > >> > > it
> > > > > > > > > >> > > > is
> > > > > > > > > >> > > > > >> not
> > > > > > > > > >> > > > > >> > > > > > obviously what is the benefit to
> > client
> > > > > since
> > > > > > > > > client
> > > > > > > > > >> > will
> > > > > > > > > >> > > > > >> timeout
> > > > > > > > > >> > > > > >> > > after
> > > > > > > > > >> > > > > >> > > > > 30
> > > > > > > > > >> > > > > >> > > > > > seconds before possibly
> re-connecting
> > > to
> > > > > > > broker1,
> > > > > > > > > >> with
> > > > > > > > > >> > or
> > > > > > > > > >> > > > > >> without
> > > > > > > > > >> > > > > >> > > > > KIP-291.
> > > > > > > > > >> > > > > >> > > > > > Did I miss something here?
> > > > > > > > > >> > > > > >> > > > > >
> > > > > > > > > >> > > > > >> > > > > > 2) I guess Eno's is asking for the
> > > > specific
> > > > > > > > > benefits
> > > > > > > > > >> of
> > > > > > > > > >> > > this
> > > > > > > > > >> > > > > >> KIP to
> > > > > > > > > >> > > > > >> > > > user
> > > > > > > > > >> > > > > >> > > > > or
> > > > > > > > > >> > > > > >> > > > > > system administrator, e.g. whether
> > this
> > > > KIP
> > > > > > > > > decreases
> > > > > > > > > >> > > > average
> > > > > > > > > >> > > > > >> > > latency,
> > > > > > > > > >> > > > > >> > > > > > 999th percentile latency, probably
> of
> > > > > > exception
> > > > > > > > > >> exposed
> > > > > > > > > >> > to
> > > > > > > > > >> > > > > >> client
> > > > > > > > > >> > > > > >> > > etc.
> > > > > > > > > >> > > > > >> > > > It
> > > > > > > > > >> > > > > >> > > > > > is probably useful to clarify this.
> > > > > > > > > >> > > > > >> > > > > >
> > > > > > > > > >> > > > > >> > > > > > 3) Does this KIP help improve user
> > > > > experience
> > > > > > > > only
> > > > > > > > > >> when
> > > > > > > > > >> > > > there
> > > > > > > > > >> > > > > is
> > > > > > > > > >> > > > > >> > > issue
> > > > > > > > > >> > > > > >> > > > > with
> > > > > > > > > >> > > > > >> > > > > > broker, e.g. significant backlog in
> > the
> > > > > > request
> > > > > > > > > queue
> > > > > > > > > >> > due
> > > > > > > > > >> > > to
> > > > > > > > > >> > > > > >> slow
> > > > > > > > > >> > > > > >> > > disk
> > > > > > > > > >> > > > > >> > > > as
> > > > > > > > > >> > > > > >> > > > > > described in the Google doc? Or is
> > this
> > > > KIP
> > > > > > > also
> > > > > > > > > >> useful
> > > > > > > > > >> > > when
> > > > > > > > > >> > > > > >> there
> > > > > > > > > >> > > > > >> > is
> > > > > > > > > >> > > > > >> > > > no
> > > > > > > > > >> > > > > >> > > > > > ongoing issue in the cluster? It
> > might
> > > be
> > > > > > > helpful
> > > > > > > > > to
> > > > > > > > > >> > > clarify
> > > > > > > > > >> > > > > >> this
> > > > > > > > > >> > > > > >> > to
> > > > > > > > > >> > > > > >> > > > > > understand the benefit of this KIP.
> > > > > > > > > >> > > > > >> > > > > >
> > > > > > > > > >> > > > > >> > > > > >
> > > > > > > > > >> > > > > >> > > > > > Thanks much,
> > > > > > > > > >> > > > > >> > > > > > Dong
> > > > > > > > > >> > > > > >> > > > > >
> > > > > > > > > >> > > > > >> > > > > >
> > > > > > > > > >> > > > > >> > > > > >
> > > > > > > > > >> > > > > >> > > > > >
> > > > > > > > > >> > > > > >> > > > > > On Fri, Jun 29, 2018 at 2:58 PM,
> > Lucas
> > > > > Wang <
> > > > > > > > > >> > > > > >> lucasatu...@gmail.com
> > > > > > > > > >> > > > > >> > >
> > > > > > > > > >> > > > > >> > > > > wrote:
> > > > > > > > > >> > > > > >> > > > > >
> > > > > > > > > >> > > > > >> > > > > > > Hi Eno,
> > > > > > > > > >> > > > > >> > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > Sorry for the delay in getting
> the
> > > > > > experiment
> > > > > > > > > >> results.
> > > > > > > > > >> > > > > >> > > > > > > Here is a link to the positive
> > impact
> > > > > > > achieved
> > > > > > > > by
> > > > > > > > > >> > > > > implementing
> > > > > > > > > >> > > > > >> > the
> > > > > > > > > >> > > > > >> > > > > > proposed
> > > > > > > > > >> > > > > >> > > > > > > change:
> > > > > > > > > >> > > > > >> > > > > > > https://docs.google.com/
> > document/d/
> > > > > > > > > >> > > > > 1ge2jjp5aPTBber6zaIT9AdhW
> > > > > > > > > >> > > > > >> > > > > > > FWUENJ3JO6Zyu4f9tgQ/edit?usp=
> > sharing
> > > > > > > > > >> > > > > >> > > > > > > Please take a look when you have
> > time
> > > > and
> > > > > > let
> > > > > > > > me
> > > > > > > > > >> know
> > > > > > > > > >> > > your
> > > > > > > > > >> > > > > >> > > feedback.
> > > > > > > > > >> > > > > >> > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > Regards,
> > > > > > > > > >> > > > > >> > > > > > > Lucas
> > > > > > > > > >> > > > > >> > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > On Tue, Jun 26, 2018 at 9:52 AM,
> > > > Harsha <
> > > > > > > > > >> > > ka...@harsha.io>
> > > > > > > > > >> > > > > >> wrote:
> > > > > > > > > >> > > > > >> > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > Thanks for the pointer. Will
> > take a
> > > > > look
> > > > > > > > might
> > > > > > > > > >> suit
> > > > > > > > > >> > > our
> > > > > > > > > >> > > > > >> > > > requirements
> > > > > > > > > >> > > > > >> > > > > > > > better.
> > > > > > > > > >> > > > > >> > > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > Thanks,
> > > > > > > > > >> > > > > >> > > > > > > > Harsha
> > > > > > > > > >> > > > > >> > > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > On Mon, Jun 25th, 2018 at 2:52
> > PM,
> > > > > Lucas
> > > > > > > > Wang <
> > > > > > > > > >> > > > > >> > > > lucasatu...@gmail.com
> > > > > > > > > >> > > > > >> > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > wrote:
> > > > > > > > > >> > > > > >> > > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > > Hi Harsha,
> > > > > > > > > >> > > > > >> > > > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > > If I understand correctly,
> the
> > > > > > > replication
> > > > > > > > > >> quota
> > > > > > > > > >> > > > > mechanism
> > > > > > > > > >> > > > > >> > > > proposed
> > > > > > > > > >> > > > > >> > > > > > in
> > > > > > > > > >> > > > > >> > > > > > > > > KIP-73 can be helpful in that
> > > > > scenario.
> > > > > > > > > >> > > > > >> > > > > > > > > Have you tried it out?
> > > > > > > > > >> > > > > >> > > > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > > Thanks,
> > > > > > > > > >> > > > > >> > > > > > > > > Lucas
> > > > > > > > > >> > > > > >> > > > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > > On Sun, Jun 24, 2018 at 8:28
> > AM,
> > > > > > Harsha <
> > > > > > > > > >> > > > > ka...@harsha.io
> > > > > > > > > >> > > > > >> >
> > > > > > > > > >> > > > > >> > > > wrote:
> > > > > > > > > >> > > > > >> > > > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > > > Hi Lucas,
> > > > > > > > > >> > > > > >> > > > > > > > > > One more question, any
> > thoughts
> > > > on
> > > > > > > making
> > > > > > > > > >> this
> > > > > > > > > >> > > > > >> configurable
> > > > > > > > > >> > > > > >> > > > > > > > > > and also allowing subset of
> > > data
> > > > > > > requests
> > > > > > > > > to
> > > > > > > > > >> be
> > > > > > > > > >> > > > > >> > prioritized.
> > > > > > > > > >> > > > > >> > > > For
> > > > > > > > > >> > > > > >> > > > > > > > example
> > > > > > > > > >> > > > > >> > > > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > > > ,we notice in our cluster
> > when
> > > we
> > > > > > take
> > > > > > > > out
> > > > > > > > > a
> > > > > > > > > >> > > broker
> > > > > > > > > >> > > > > and
> > > > > > > > > >> > > > > >> > bring
> > > > > > > > > >> > > > > >> > > > new
> > > > > > > > > >> > > > > >> > > > > > one
> > > > > > > > > >> > > > > >> > > > > > > > it
> > > > > > > > > >> > > > > >> > > > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > > > will try to become follower
> > and
> > > > > have
> > > > > > > lot
> > > > > > > > of
> > > > > > > > > >> > fetch
> > > > > > > > > >> > > > > >> requests
> > > > > > > > > >> > > > > >> > to
> > > > > > > > > >> > > > > >> > > > > other
> > > > > > > > > >> > > > > >> > > > > > > > > leaders
> > > > > > > > > >> > > > > >> > > > > > > > > > in clusters. This will
> > > negatively
> > > > > > > effect
> > > > > > > > > the
> > > > > > > > > >> > > > > >> > > application/client
> > > > > > > > > >> > > > > >> > > > > > > > > requests.
> > > > > > > > > >> > > > > >> > > > > > > > > > We are also exploring the
> > > similar
> > > > > > > > solution
> > > > > > > > > to
> > > > > > > > > >> > > > > >> de-prioritize
> > > > > > > > > >> > > > > >> > > if
> > > > > > > > > >> > > > > >> > > > a
> > > > > > > > > >> > > > > >> > > > > > new
> > > > > > > > > >> > > > > >> > > > > > > > > > replica comes in for fetch
> > > > > requests,
> > > > > > we
> > > > > > > > are
> > > > > > > > > >> ok
> > > > > > > > > >> > > with
> > > > > > > > > >> > > > > the
> > > > > > > > > >> > > > > >> > > replica
> > > > > > > > > >> > > > > >> > > > > to
> > > > > > > > > >> > > > > >> > > > > > be
> > > > > > > > > >> > > > > >> > > > > > > > > > taking time but the leaders
> > > > should
> > > > > > > > > prioritize
> > > > > > > > > >> > the
> > > > > > > > > >> > > > > client
> > > > > > > > > >> > > > > >> > > > > requests.
> > > > > > > > > >> > > > > >> > > > > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > > > Thanks,
> > > > > > > > > >> > > > > >> > > > > > > > > > Harsha
> > > > > > > > > >> > > > > >> > > > > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > > > On Fri, Jun 22nd, 2018 at
> > 11:35
> > > > AM
> > > > > > > Lucas
> > > > > > > > > Wang
> > > > > > > > > >> > > wrote:
> > > > > > > > > >> > > > > >> > > > > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > > > > Hi Eno,
> > > > > > > > > >> > > > > >> > > > > > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > > > > Sorry for the delayed
> > > response.
> > > > > > > > > >> > > > > >> > > > > > > > > > > - I haven't implemented
> the
> > > > > feature
> > > > > > > > yet,
> > > > > > > > > >> so no
> > > > > > > > > >> > > > > >> > experimental
> > > > > > > > > >> > > > > >> > > > > > results
> > > > > > > > > >> > > > > >> > > > > > > > so
> > > > > > > > > >> > > > > >> > > > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > > > > far.
> > > > > > > > > >> > > > > >> > > > > > > > > > > And I plan to test in out
> > in
> > > > the
> > > > > > > > > following
> > > > > > > > > >> > days.
> > > > > > > > > >> > > > > >> > > > > > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > > > > - You are absolutely
> right
> > > that
> > > > > the
> > > > > > > > > >> priority
> > > > > > > > > >> > > queue
> > > > > > > > > >> > > > > >> does
> > > > > > > > > >> > > > > >> > not
> > > > > > > > > >> > > > > >> > > > > > > > completely
> > > > > > > > > >> > > > > >> > > > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > > > > prevent
> > > > > > > > > >> > > > > >> > > > > > > > > > > data requests being
> > processed
> > > > > ahead
> > > > > > > of
> > > > > > > > > >> > > controller
> > > > > > > > > >> > > > > >> > requests.
> > > > > > > > > >> > > > > >> > > > > > > > > > > That being said, I expect
> > it
> > > to
> > > > > > > greatly
> > > > > > > > > >> > mitigate
> > > > > > > > > >> > > > the
> > > > > > > > > >> > > > > >> > effect
> > > > > > > > > >> > > > > >> > > > of
> > > > > > > > > >> > > > > >> > > > > > > stable
> > > > > > > > > >> > > > > >> > > > > > > > > > > metadata.
> > > > > > > > > >> > > > > >> > > > > > > > > > > In any case, I'll try it
> > out
> > > > and
> > > > > > post
> > > > > > > > the
> > > > > > > > > >> > > results
> > > > > > > > > >> > > > > >> when I
> > > > > > > > > >> > > > > >> > > have
> > > > > > > > > >> > > > > >> > > > > it.
> > > > > > > > > >> > > > > >> > > > > > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > > > > Regards,
> > > > > > > > > >> > > > > >> > > > > > > > > > > Lucas
> > > > > > > > > >> > > > > >> > > > > > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > > > > On Wed, Jun 20, 2018 at
> > 5:44
> > > > AM,
> > > > > > Eno
> > > > > > > > > >> Thereska
> > > > > > > > > >> > <
> > > > > > > > > >> > > > > >> > > > > > > > eno.there...@gmail.com
> > > > > > > > > >> > > > > >> > > > > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > > > > wrote:
> > > > > > > > > >> > > > > >> > > > > > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > > > > > Hi Lucas,
> > > > > > > > > >> > > > > >> > > > > > > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > > > > > Sorry for the delay,
> just
> > > > had a
> > > > > > > look
> > > > > > > > at
> > > > > > > > > >> > this.
> > > > > > > > > >> > > A
> > > > > > > > > >> > > > > >> couple
> > > > > > > > > >> > > > > >> > of
> > > > > > > > > >> > > > > >> > > > > > > > questions:
> > > > > > > > > >> > > > > >> > > > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > > > > > - did you notice any
> > > positive
> > > > > > > change
> > > > > > > > > >> after
> > > > > > > > > >> > > > > >> implementing
> > > > > > > > > >> > > > > >> > > > this
> > > > > > > > > >> > > > > >> > > > > > KIP?
> > > > > > > > > >> > > > > >> > > > > > > > > I'm
> > > > > > > > > >> > > > > >> > > > > > > > > > > > wondering if you have
> any
> > > > > > > > experimental
> > > > > > > > > >> > results
> > > > > > > > > >> > > > > that
> > > > > > > > > >> > > > > >> > show
> > > > > > > > > >> > > > > >> > > > the
> > > > > > > > > >> > > > > >> > > > > > > > benefit
> > > > > > > > > >> > > > > >> > > > > > > > > of
> > > > > > > > > >> > > > > >> > > > > > > > > > > the
> > > > > > > > > >> > > > > >> > > > > > > > > > > > two queues.
> > > > > > > > > >> > > > > >> > > > > > > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > > > > > - priority is usually
> not
> > > > > > > sufficient
> > > > > > > > in
> > > > > > > > > >> > > > addressing
> > > > > > > > > >> > > > > >> the
> > > > > > > > > >> > > > > >> > > > > problem
> > > > > > > > > >> > > > > >> > > > > > > the
> > > > > > > > > >> > > > > >> > > > > > > > > KIP
> > > > > > > > > >> > > > > >> > > > > > > > > > > > identifies. Even with
> > > > priority
> > > > > > > > queues,
> > > > > > > > > >> you
> > > > > > > > > >> > > will
> > > > > > > > > >> > > > > >> > sometimes
> > > > > > > > > >> > > > > >> > > > > > > (often?)
> > > > > > > > > >> > > > > >> > > > > > > > > have
> > > > > > > > > >> > > > > >> > > > > > > > > > > the
> > > > > > > > > >> > > > > >> > > > > > > > > > > > case that data plane
> > > requests
> > > > > > will
> > > > > > > be
> > > > > > > > > >> ahead
> > > > > > > > > >> > of
> > > > > > > > > >> > > > the
> > > > > > > > > >> > > > > >> > > control
> > > > > > > > > >> > > > > >> > > > > > plane
> > > > > > > > > >> > > > > >> > > > > > > > > > > requests.
> > > > > > > > > >> > > > > >> > > > > > > > > > > > This happens because
> the
> > > > system
> > > > > > > might
> > > > > > > > > >> have
> > > > > > > > > >> > > > already
> > > > > > > > > >> > > > > >> > > started
> > > > > > > > > >> > > > > >> > > > > > > > > processing
> > > > > > > > > >> > > > > >> > > > > > > > > > > the
> > > > > > > > > >> > > > > >> > > > > > > > > > > > data plane requests
> > before
> > > > the
> > > > > > > > control
> > > > > > > > > >> plane
> > > > > > > > > >> > > > ones
> > > > > > > > > >> > > > > >> > > arrived.
> > > > > > > > > >> > > > > >> > > > So
> > > > > > > > > >> > > > > >> > > > > > it
> > > > > > > > > >> > > > > >> > > > > > > > > would
> > > > > > > > > >> > > > > >> > > > > > > > > > > be
> > > > > > > > > >> > > > > >> > > > > > > > > > > > good to know what % of
> > the
> > > > > > problem
> > > > > > > > this
> > > > > > > > > >> KIP
> > > > > > > > > >> > > > > >> addresses.
> > > > > > > > > >> > > > > >> > > > > > > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > > > > > Thanks
> > > > > > > > > >> > > > > >> > > > > > > > > > > > Eno
> > > > > > > > > >> > > > > >> > > > > > > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > > > > > On Fri, Jun 15, 2018 at
> > > 4:44
> > > > > PM,
> > > > > > > Ted
> > > > > > > > > Yu <
> > > > > > > > > >> > > > > >> > > > > yuzhih...@gmail.com
> > > > > > > > > >> > > > > >> > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > > wrote:
> > > > > > > > > >> > > > > >> > > > > > > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > > > > > > Change looks good.
> > > > > > > > > >> > > > > >> > > > > > > > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > > > > > > Thanks
> > > > > > > > > >> > > > > >> > > > > > > > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > > > > > > On Fri, Jun 15, 2018
> at
> > > > 8:42
> > > > > > AM,
> > > > > > > > > Lucas
> > > > > > > > > >> > Wang
> > > > > > > > > >> > > <
> > > > > > > > > >> > > > > >> > > > > > > > lucasatu...@gmail.com
> > > > > > > > > >> > > > > >> > > > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > > > > > wrote:
> > > > > > > > > >> > > > > >> > > > > > > > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > > > > > > > Hi Ted,
> > > > > > > > > >> > > > > >> > > > > > > > > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > > > > > > > Thanks for the
> > > > suggestion.
> > > > > > I've
> > > > > > > > > >> updated
> > > > > > > > > >> > > the
> > > > > > > > > >> > > > > KIP.
> > > > > > > > > >> > > > > >> > > Please
> > > > > > > > > >> > > > > >> > > > > > take
> > > > > > > > > >> > > > > >> > > > > > > > > > another
> > > > > > > > > >> > > > > >> > > > > > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > > > > > > look.
> > > > > > > > > >> > > > > >> > > > > > > > > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > > > > > > > Lucas
> > > > > > > > > >> > > > > >> > > > > > > > > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > > > > > > > On Thu, Jun 14,
> 2018
> > at
> > > > > 6:34
> > > > > > > PM,
> > > > > > > > > Ted
> > > > > > > > > >> Yu
> > > > > > > > > >> > <
> > > > > > > > > >> > > > > >> > > > > > > yuzhih...@gmail.com
> > > > > > > > > >> > > > > >> > > > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > > > > wrote:
> > > > > > > > > >> > > > > >> > > > > > > > > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > > > > > > > > Currently in
> > > > > > > KafkaConfig.scala
> > > > > > > > :
> > > > > > > > > >> > > > > >> > > > > > > > > > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > > > > > > > > val
> > > QueuedMaxRequests =
> > > > > 500
> > > > > > > > > >> > > > > >> > > > > > > > > > > > > > >
> > > > > > > > > >> > > > > >> > > > > > > > > > > > > > > It would be good
> if
> > > you
> > > > > can
> > > > > > > > > include
> > > > > > > > > >> > the
> > > > > > > > > >> > > > > >> default
> > > > > > > > > >> > > > > >> > > value
> > > > > > > > > >> > > > > >> > > > > for
> > > > > > > > > >> > > > > >> > > > > > > > this
> > > > > > > > > >> > > > > >> > > > > > > > >
> > > > > > > > > >>
> > > >
> > >
> >
>

Reply via email to