[ 
https://issues.apache.org/jira/browse/HBASE-22760?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16899587#comment-16899587
 ] 

Viraj Jasani commented on HBASE-22760:
--------------------------------------

Thanks for all your inputs and suggestions. They are really helpful!

Based on your suggestions, these are some observations from my side:
 * shell command balance_switch is used to turn on/off balancer. And I agree 
this is useful from consistency perspective for running cluster. Whether to run 
balancer is decided based on data received from ZooKeeper ZNode: balancer. 
Every time we run balance_switch, ZK gets involved and stays the source of 
truth, hence, even in case of HMaster failover, new Active Master reads the 
data from ZK and runs balancer only if required. With shell command, we don't 
need to worry about HMaster failover.
 * Implementing ConfigurationObserver is also good option to halt Snapshot 
cleanup, however, the user will have to be careful updating configs on all 
HMasters(not just Active) and any new backup master that is supposed to join 
them. While open source Ambari provides functionality to update config at one 
place(UI) and that value gets updated to all HMaster/RegionServer instances via 
heartbeat, I am not sure if HBase itself provides such "update config on one 
place" functionality.(Not that everyone uses Ambari for managing HBase 
clusters) Hence, somehow, I feel, updating configs manually on all instances 
might be error prone. Please correct me if I am wrong.
 * Little off-topic observation: when we run balance_switch, balancer chore 
continues to run but it doesn't perform any operation. Shouldn't we unschedule 
the chore in this case and reschedule it when user turns on balancer, rather 
than always keeping it alive, running every 30 min, just to let it find out 
that it is not required to do anything?

Somehow, I feel, to halt/stop any chore, using ZK as source of truth and using 
shell command to trigger the operation should be the right option. Please 
provide your suggestions or let me know if I am missing something.

Thanks again for your help and suggestions [~reidchan] [~anoop.hbase]

[~apurtell] FYI

> Stop/Resume Snapshot Auto-Cleanup activity with shell command
> -------------------------------------------------------------
>
>                 Key: HBASE-22760
>                 URL: https://issues.apache.org/jira/browse/HBASE-22760
>             Project: HBase
>          Issue Type: Improvement
>          Components: Admin, shell, snapshots
>    Affects Versions: 3.0.0, 1.5.0, 2.3.0, 2.2.1, 1.4.11
>            Reporter: Viraj Jasani
>            Assignee: Viraj Jasani
>            Priority: Major
>
> For any scheduled snapshot backup activity, we would like to disable 
> auto-cleaner for snapshot based on TTL. However, as per HBASE-22648 we have a 
> config to disable snapshot auto-cleaner: 
> hbase.master.cleaner.snapshot.disable, which would take effect only upon 
> HMaster restart just similar to any other hbase-site configs.
> For any running cluster, we should be able to stop/resume auto-cleanup 
> activity for snapshot based on shell command. Something similar to below 
> command should be able to stop/start cleanup chore:
> hbase(main):001:0> auto_snapshot_cleaner false    (disable auto-cleaner)
> hbase(main):001:0> auto_snapshot_cleaner true      (enable auto-cleaner)



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)

Reply via email to