[ https://issues.apache.org/jira/browse/HBASE-24528?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17133627#comment-17133627 ]
Andrew Kyle Purtell edited comment on HBASE-24528 at 6/11/20, 7:33 PM: ----------------------------------------------------------------------- IS.Private means we can change the implementation any time, so a refactor won't be a problem per se, as long as the user facing functionality is not affected. On the other hand a RM might have objection to such a change in a patch release. [~ndimiduk] [~stack] If this is likely it is better to do the refactor before a release. Maybe this means reverting the feature from branch-2.3, finish dev in master and branch-2, then release in 2.4. And, after this stabilizes, backport to branch-1 for 1.7 or 1.8. Just a thought. was (Author: apurtell): IS.Private means we can change the implementation any time, so a refactor won't be a problem per se, as long as the user facing functionality is not affected. On the other hand a RM might have objection to such a change in a patch release. [~ndimiduk] [~stack] If this is likely it is better to do the refactor before a release. Maybe this means reverting the feature from branch-2.3 for now. > Improve balancer decision observability > --------------------------------------- > > Key: HBASE-24528 > URL: https://issues.apache.org/jira/browse/HBASE-24528 > Project: HBase > Issue Type: New Feature > Components: Admin, Balancer, Operability, shell, UI > Reporter: Andrew Kyle Purtell > Priority: Major > > We provide detailed INFO and DEBUG level logging of balancer decision > factors, outcome, and reassignment planning, as well as similarly detailed > logging of the resulting assignment manager activity. However, an operator > may need to perform online and interactive observation, debugging, or > performance analysis of current balancer activity. Scraping and correlating > the many log lines resulting from a balancer execution is labor intensive and > has a lot of latency (order of ~minutes to acquire and index, order of > ~minutes to correlate). > The balancer should maintain a rolling window of history, e.g. the last 100 > region move plans, or last 1000 region move plans submitted to the assignment > manager. This history should include decision factor details and weights and > costs. The rsgroups balancer may be able to provide fairly simple decision > factors, like for example "this table was reassigned to that regionserver > group". The underlying or vanilla stochastic balancer on the other hand, > after a walk over random assignment plans, will have considered a number of > cost functions with various inputs (locality, load, etc.) and multipliers, > including custom cost functions. We can devise an extensible class structure > that represents explanations for balancer decisions, and for each region move > plan that is actually submitted to the assignment manager, we can keep the > explanations of all relevant decision factors alongside the other details of > the assignment plan like the region name, and the source and destination > regionservers. > This history should be available via API for use by new shell commands and > admin UI widgets. > The new shell commands and UI widgets can unpack the representation of > balancer decision components into human readable output. -- This message was sent by Atlassian Jira (v8.3.4#803005)