Reviving the thread.

Getting dynamic config right will be a big undertaking, and we want to move
ahead with the patch since it is useful.

It seems the best way forward for the patch HBASE-15128 is to remove the
setSwitch() call, and instead do set_merge_switch and set_split_switch
calls so that we can get this in. Since balancer, and other master janitors
already work this way, it should not be controversial. Matteo, is that
acceptable?

>Ideally we may want to have something committable and rollback-able with
versions?
One learning we had was that HBase should not be filling the role of Puppet
/ Chef or other provisioners.

Enis

On Wed, Feb 3, 2016 at 10:31 PM, Mikhail Antonov <olorinb...@gmail.com>
wrote:

> Looked through the comments and glanced at the patch.
>
> I generally think that the patch addressing specific existing problem
> shouldn't be blocked on generic big feature like dynamic configuration
> framework, so would be good to get something committable sooner rather then
> latter.
>
> It seems the only point of controversy is whether we should have generic
> setSwitch kind of call and kind of open up some API for that sort of
> dynamic configuration, or rather specific setBalancer(),
> forbidSplitsAndMerges().
>
> So short term, why not to get a patch without generic kind of switches
> (should be pretty easy change?), seems like people would agree on it,
> commit it to fix existing issue, and then move on to generalize dynamic
> configuration?
>
> I tend to agree that creating api to store generic switches in ZK while not
> abandoning idea of generic dynamic configuration framework looks like
> slippery slope. Right now we have well-known N things kept in ZK (I admit I
> have contributed to that number), but I wouldn't have unknown X things
> there.
>
> (Speaking of which.. I think most people would like to be able to hotswap
> most of configuration properties without having to roll all the servers,
> and do that from rpc/shell/some other interface, not just reload conf file.
> In that case we would need to decide first on the persistent store for it
> and consistency around it.
>
> Ideally we may want to have something committable and rollback-able with
> versions? To cover cases like: I changed the parameter, say rpc timeout,
> from command line, now I expect it to persist and survive over the next
> cluster restart. But what if I don't like the change I made, I would want
> to easily discard the change and say "whatever was in configuration was
> good, let's go back to it"?)
>
> -Mikhail
>
> On Wed, Feb 3, 2016 at 9:50 PM, 张铎 <palomino...@gmail.com> wrote:
>
> > My opinion, use conf file as default, and use code to override the config
> > in conf file.
> > And we need to persist the overridden value somewhere, not zk I'd say. I
> > agree with Matteo that we should reduce the dependency of zk. Maybe we
> > could introduce an hbase:config table?
> >
> > And for the dynamic configuration framework, it is difficult to treat all
> > configurations in the same way I think. I prefer changing all
> > configurations with a shell command(the actual implementation should an
> RPC
> > call to master maybe), but if we have regionservers with different
> > hardwares in cluster, they may have different configurations so modify
> conf
> > file directly on the machine is a more proper way? I have no idea...
> >
> > Thanks.
> >
> > 2016-02-04 11:40 GMT+08:00 Enis Söztutar <e...@hortonworks.com>:
> >
> > > This came up in the review for HBASE-15128, but we thought that we
> should
> > > surface this discussion in dev@.
> > >
> > > The idea for HBASE-15128 is that, we should have a dynamic switch in
> > master
> > > so that the operator (or HBCK) can disable all region splits or merges.
> > >
> > > We currently have such dynamic switches for balancer and normalizer
> which
> > > keep their state in zk. We also have a switch for catalog janitor which
> > > keeps its state only in memory (not sure why). For the new switches
> Heng
> > > Chen implemented a "set_switch" RPC to master, a switch type, a zk
> node.
> > > The idea is to move balancer, catalog janitor and normalizer switches
> to
> > > this after this patch.
> > >
> > > However, Matteo raised a point about this framework being an
> alternative
> > > way of doing dynamic configuration. The problem is that we do not have
> a
> > > dynamic conf framework that we can piggyback on, and since balancer and
> > > other switches already work this way, it does not make sense to block
> the
> > > issue. What do you guys think? If we want to implement dynamic conf,
> how
> > > would we handle things like enabling / disabling balancer from conf and
> > or
> > > from code? Any good ideas?
> > >
> > > Enis
> > >
> >
>
>
>
> --
> Thanks,
> Michael Antonov
>

Reply via email to