[ 
https://issues.apache.org/jira/browse/HBASE-13103?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mikhail Antonov updated HBASE-13103:
------------------------------------
    Attachment: HBASE-13103-v1.patch

Here's v1 patch (will update RB as well); still draft-like a bit. Summary:

 - add a field in table descriptor for normalization on-off (part of standard 
table name->value configuration), so should be able to update that from shell 
as well.
 - addressed most of comments from RB, notably an issue when non-adjacent 
regions would be attempted to get merged.

Open questions (still need discussion/improvements in this or next patch):
 - I added shuffle in the code which selects next table for 
normalization..Looking at the similar codepath for balancer - we don't really 
do parallel balancing for tables in seems. Running normalization independently 
for each table in parallel would require adding new EventType and/or 
ExecutorType (or we may reuse ExecutorType#MASTER_TABLE_OPERATIONS here). Not 
sure if that's needed in this patch. Thoughts?
 - Didn't do part about ideal (target) size yet, this needs a bit more thinking.

Still thinking about that as a baseline to create more sophisticated 
normalizers (like CompactionAwareNormalizer, which would only run if compaction 
happened in last hour), as I think I need more input from operational side. 
[~ndimiduk] what do you think?

> [ergonomics] add region size balancing as a feature of master
> -------------------------------------------------------------
>
>                 Key: HBASE-13103
>                 URL: https://issues.apache.org/jira/browse/HBASE-13103
>             Project: HBase
>          Issue Type: Improvement
>          Components: Balancer, Usability
>            Reporter: Nick Dimiduk
>            Assignee: Mikhail Antonov
>             Fix For: 2.0.0, 1.2.0
>
>         Attachments: HBASE-13103-v0.patch, HBASE-13103-v1.patch
>
>
> Often enough, folks miss-judge split points or otherwise end up with a 
> suboptimal number of regions. We should have an automated, reliable way to 
> "reshape" or "balance" a table's region boundaries. This would be for tables 
> that contain existing data. This might look like:
> {noformat}
> Admin#reshapeTable(TableName, int numSplits);
> {noformat}
> or from the shell:
> {noformat}
> > reshape TABLE, numSplits
> {noformat}
> Better still would be to have a maintenance process, similar to the existing 
> Balancer that runs AssignmentManager on an interval, to run the above 
> "reshape" operation on an interval. That way, the cluster will automatically 
> self-correct toward a desirable state.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to