Hi Jay,

Could you elaborate a bit more regarding 2) above, what is the motivation
behind this?

On Wed, Mar 18, 2015 at 2:46 PM, Jay Kreps <jay.kr...@gmail.com> wrote:

> The other question to figure out is the hierarchy of overrides. Currently
> some configs can be overridden at the topic level using a fairly ad hoc
> mechanism. I think Aditya's quota proposal requires having defaults and
> overrides at the client.id level. You could imagine similar requirements
> at
> the user level when we have user as a concept. You could also imagine
> overrides at a broker level (currently you do this by just changing the
> config on that broker only).
>
> With respect to dynamic update: Some configs (e.g. socket buffers) CAN'T be
> dynamically updated, and others (e.g. cleaner buffer) could theoretically
> be updated by the implementation would be quite complicated.
>
> I think do really get this right:
> 1. We would need to be able to mark configs as updatable or not (shouldn't
> be too hard after the conversion to the config def stuff) in a way that
> this automatically flows to the documentation. Obviously if you had to
> guess which config was updatable that would be a nightmare.
> 2. We will want to go with a pattern where instead of injecting individual
> values into the objects that need them from the config we pass some kind of
> Config object which has a reference to the current immutable config
> instance. To get a config you always have to dereference
>     config.current.myConfigValue
> so that when current gets updated you get all the new configs atomically.
> 3. We will need to support a flexible notion of override that generalizes
> the LogConfig stuff we did at the topic level.
>
> This is all a fair amount of work to do well.
>
> -Jay
>
> On Wed, Mar 18, 2015 at 10:11 AM, Andrii Biletskyi <
> andrii.bilets...@stealth.ly> wrote:
>
> > Aditya,
> >
> > Yes, you are right. We agreed to think how global config can
> > be done w/o restarting the broker, consumers/producers. I haven't
> > yet updated the KIP accordingly though.
> > In short, the problem is that KafkaConfig is "spread out" over different
> > components, like SocketServer, OffsetManager etc. This makes
> > it hard to dynamically change config, at least if we follow dynamic
> > LogConfig approach. So my opinion and vision is that we need to
> > treat each config block (like quotas in your case) separately. Logically,
> > different cases will be handled differently, some of the configs are
> > not eligible for dynamic change at all.
> >
> > Thanks,
> > Andrii Biletskyi
> >
> > On Wed, Mar 18, 2015 at 6:54 PM, Aditya Auradkar <
> > aaurad...@linkedin.com.invalid> wrote:
> >
> > > Hi Andrii,
> > >
> > > Thanks for the writeup.
> > > IMO, we should be able to support dynamically changing certain configs.
> > > For example: the Quota proposal relies on such a mechanism for changing
> > > quotas on the fly.
> > >
> > > Aditya
> > > ________________________________________
> > > From: Andrii Biletskyi [andrii.bilets...@stealth.ly]
> > > Sent: Tuesday, March 03, 2015 10:30 AM
> > > To: dev@kafka.apache.org
> > > Subject: Re: [DISCUSS] KIP-5 - Broker Configuration Management
> > >
> > > Hey Jun,
> > >
> > > Initially I was thinking about instead of 3-4 state that global config
> > > changes
> > > take effect only after broker restart. So it's just:
> > >
> > > 3-4. On each broker startup apply global config from ZK
> > >
> > > In other words, the comprehensive workflow is the following:
> > > 1. Issue ChangeGlobalConfigRequest
> > > 2. Controller validates / stores config in ZK
> > > (out of scope of this KIP) 3. Do rolling restart for brokers one by one
> > to
> > > pick up
> > > config changes
> > >
> > > My understanding is that we won't be able to handle config change
> > > dynamically
> > > as we do for Log config. The main reason, from my point of view, is
> that
> > > broker config operates such settings as num.io.threads updating which
> > would
> > > mean
> > > gracefully restart some of the broker's components (in this case
> > > SocketServer) which is,
> > > in turn, might be very tricky.
> > >
> > > Thanks,
> > > Andrii Biletskyi
> > >
> > > On Tue, Mar 3, 2015 at 7:43 PM, Jun Rao <j...@confluent.io> wrote:
> > >
> > > > It seems the proposed workflow is the following.
> > > >
> > > > 1. Client issues a global config update request to the broker.
> > > > 2. Broker writes the new config to ZK.
> > > > 3. Controller picks up the changes from ZK.
> > > > 4. Controller propagates the config changes to all brokers.
> > > >
> > > > Do we need to add a new request/response to propagate the config
> > changes?
> > > >
> > > > Also, this logic is a bit different from how per topic config changes
> > > > works: each broker reads from ZK directly. It would be good to make
> > them
> > > > consistent.
> > > >
> > > > Thanks,
> > > >
> > > > Jun
> > > >
> > > >
> > > > On Wed, Jan 21, 2015 at 10:34 PM, Joe Stein <joe.st...@stealth.ly>
> > > wrote:
> > > >
> > > > > Created a KIP
> > > > >
> > > > >
> > > >
> > >
> >
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-5+-+Broker+Configuration+Management
> > > > >
> > > > > JIRA https://issues.apache.org/jira/browse/KAFKA-1786
> > > > >
> > > > > /*******************************************
> > > > >  Joe Stein
> > > > >  Founder, Principal Consultant
> > > > >  Big Data Open Source Security LLC
> > > > >  http://www.stealth.ly
> > > > >  Twitter: @allthingshadoop <http://www.twitter.com/allthingshadoop
> >
> > > > > ********************************************/
> > > > >
> > > >
> > >
> >
>



-- 
-- Guozhang

Reply via email to