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

Bryan Beaudreault commented on HBASE-26147:
-------------------------------------------

[~rda3mon]

For 1, I thought about building upon the existing balancer command. I decided 
against it for a couple reasons, which I'm happy to hear other opinions on:
 * I wasn't sure if we wanted to try to mirror Admin interface a bit, where the 
command is called dryRunBalance()
 * I personally prefer the more explicit syntax of having a separate command, 
as it's more discoverable and intuitive as an operator than string args
 * Above we've discussed ways in which we could build upon dry run mode, for 
example allow passing cost function overrides. I think that'd be easier with a 
separate command.

In terms of Admin#dryRunBalance() vs Admin#balance(...) I felt like there were 
already lots of overloads of balance/balancer/etc, between deprecations and the 
force boolean. I think an ideal interface might include a RunMode enum, like I 
added internal to the HMaster. I didn't want to add another overload for that. 
Additionally, for the same reason as above if we decided to add on-demand 
config overrides for dry run mode that'd be a lot more straightforward with a 
separate command.

Let me know if you still think it makes sense to have a single command.

For 2, I'll take a look at rsgroup later today. I didn't realize there was a 
different implementation for it.

> Add dry run mode to hbase balancer
> ----------------------------------
>
>                 Key: HBASE-26147
>                 URL: https://issues.apache.org/jira/browse/HBASE-26147
>             Project: HBase
>          Issue Type: Improvement
>          Components: Balancer, master
>            Reporter: Bryan Beaudreault
>            Assignee: Bryan Beaudreault
>            Priority: Major
>
> It's often rather hard to know how the cost function changes you're making 
> will affect the balance of the cluster, and currently the only way to know is 
> to run it. If the cost decisions are not good, you may have just moved many 
> regions towards a non-ideal balance. Region moves themselves are not free for 
> clients, and the resulting balance may cause a regression.
> We should add a mode to the balancer so that it can be invoked without 
> actually executing any plans. This will allow an administrator to iterate on 
> their cost functions and used the balancer's logging to see how their changes 
> would affect the cluster. 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to