Hi, Lucas,

Thanks for the updated KIP.

For monitoring the network thread utilization for the control plane, we
already have the metric io-ratio at the selector level (idlePct is 1 -
io-ratio). So, we just need to give that selector a meaningful name.

For monitoring the io thread utilization for the control plane, it's
probably useful to have a separate metric for that. The controller request
queue size may not reflect the history in a window.

Jun

On Wed, Sep 5, 2018 at 3:38 PM, Lucas Wang <lucasatu...@gmail.com> wrote:

> Thanks Jun for your quick response. It looks like I forgot to click the
> "Update" button, :)
> It's updated now.
>
> Regarding the idle ratio metrics for the additional threads, I discussed
> with Joel,
> and think they are not as useful, and I added our reasoning in the last
> paragraph of the
> "How are controller requests handled over the dedicated connections?"
> section.
> On the other hand, we don't strongly oppose adding them if you think they
> are necessary.
>
> Thanks,
> Lucas
>
>
> On Wed, Sep 5, 2018 at 3:12 PM Jun Rao <j...@confluent.io> wrote:
>
> > Hi, Lucas,
> >
> > Thanks for the reply. Have you actually updated the KIP? The wiki says
> that
> > it's last updated on Aug. 22. and some of the changes that you mentioned
> > (#1 and #3) are not there.
> >
> > Also, regarding Joel's comment on network/request idle ratio metrics,
> could
> > you comment on whether they include the new controller listener? If not,
> do
> > we need additional metrics to measure the utilization of the io thread
> for
> > the control plane?
> >
> > Jun
> >
> > On Mon, Aug 27, 2018 at 6:26 PM, Lucas Wang <lucasatu...@gmail.com>
> wrote:
> >
> > > Thanks for the comments, Jun.
> > >
> > > 1. I think the answer should be no, since the "
> > inter.broker.listener.name"
> > > are also used
> > > for replication traffic, and merging these two types of request to the
> > > single threaded tunnel
> > > would defeat the purpose of this KIP and also hurt replication
> > throughput.
> > > So I think that means
> > > we should validate to make sure when the new config is set, it's
> > different
> > > from "inter.broker.listener.name"
> > > or "security.inter.broker.protocol", whichever is set.
> > >
> > > 2. Normally all broker configs in a given cluster are changed at the
> same
> > > time. If there is a typo in the
> > > controller.listener.name and it's not available in the endpoints list,
> > we
> > > could catch it, give an error
> > > and block restart of the first broker in the cluster. With that, we
> could
> > > keep the current behavior
> > > in the KIP write up that falls back to "inter.broker.listener.nam" when
> > the
> > > "controller.listener.name"
> > > is not found during the migration phase of this KIP. Thoughts?
> > >
> > > 3. That makes sense, and I've changed it.
> > >
> > > Thanks,
> > > Lucas
> > >
> > > On Thu, Aug 23, 2018 at 3:46 PM Jun Rao <j...@confluent.io> wrote:
> > >
> > > > Hi, Lucas,
> > > >
> > > > Sorry for the delay. The new proposal looks good to me overall. A few
> > > minor
> > > > comments below.
> > > >
> > > > 1. It's possible that listener.name.for.controller is set, but set to
> > the
> > > > same value as inter.broker.listener.name. In that case, should we
> > have a
> > > > single network thread and the request handling thread for that
> > listener?
> > > >
> > > > 2. Currently, the controller always picks the listener specified by
> > > > inter.broker.listener.name even if the listener name is not present
> in
> > > the
> > > > receiving broker. This KIP proposes a slightly different approach for
> > > > picking listener.name.for.controller only when the receiving end has
> > the
> > > > listener and switches listener.name.for.controller otherwise. There
> are
> > > > some tradeoffs between the two approaches. To change the inter broker
> > > > listener, the former requires 2 steps: (1) adding the new listener to
> > > > listener list in every broker and (2) changing
> > > > listener.name.for.controller.
> > > > The latter can do both changes in 1 step. On the hand, if
> > > > listener.name.for.controller
> > > > is mis-configured, the former will report an error and the latter
> will
> > > hide
> > > > it (so the user may not know the misconfiguration). It seems that we
> > > should
> > > > pick one approach to handle both listener.name.for.controller and
> > > > inter.broker.listener.name consistently. To me, the former seems
> > > slightly
> > > > better.
> > > >
> > > > 3. To be consistent with the existing naming, should
> > > > listener.name.for.controller
> > > > be controller.listener.name?
> > > >
> > > > Thanks,
> > > >
> > > > Jun
> > > >
> > > >
> > > > On Thu, Aug 9, 2018 at 3:21 PM, Lucas Wang <lucasatu...@gmail.com>
> > > wrote:
> > > >
> > > > > Hi Jun and Joel,
> > > > >
> > > > > The KIP writeup has changed by quite a bit since your +1.
> > > > > Can you please take another review? Thanks a lot for your time!
> > > > >
> > > > > Lucas
> > > > >
> > > > > On Tue, Jul 17, 2018 at 10:33 AM, Joel Koshy <jjkosh...@gmail.com>
> > > > wrote:
> > > > >
> > > > > > +1 on the KIP.
> > > > > >
> > > > > > (I'm not sure we actually necessary to introduce the condition
> > > > variables
> > > > > > for the concern that Jun raised, but it's an implementation
> detail
> > > that
> > > > > we
> > > > > > can defer to a discussion in the PR.)
> > > > > >
> > > > > > On Sat, Jul 14, 2018 at 10:45 PM, Lucas Wang <
> > lucasatu...@gmail.com>
> > > > > > wrote:
> > > > > >
> > > > > > > Hi Jun,
> > > > > > >
> > > > > > > I agree by using the conditional variables, there is no need to
> > add
> > > > > such
> > > > > > a
> > > > > > > new config.
> > > > > > > Also thanks for approving this KIP.
> > > > > > >
> > > > > > > Lucas
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>

Reply via email to