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

Xiaolin Ha commented on HBASE-25302:
------------------------------------

Hi, [~zhangduo], [~stack] ,the design doc has been updated, please take a look. 
Any suggestions are welcome. 

> Fast split regions and lightweight compaction with stripe store engine
> ----------------------------------------------------------------------
>
>                 Key: HBASE-25302
>                 URL: https://issues.apache.org/jira/browse/HBASE-25302
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Xiaolin Ha
>            Assignee: Xiaolin Ha
>            Priority: Major
>         Attachments: after-split.png, before-split.png
>
>
> In our company MeiTuan, we have encountered a problem, that is a production 
> cluster with about more than 10000 regions set off the split switch by some 
> mistakes. And more than 10000 regions are larger than 600GB before we can do 
> something to split them. Because online real time R+W QPS of each RS is 
> higher than 80000 (8000+ per region), if we just switch on split, the IO 
> pressure brought by compactions will influence the availabilities, and all 
> large regions need repeatedly compactions until the size of child regions are 
> normal.
> Different with the normal circumstances, we used stripe store engine in this 
> cluster, after looking through docs of 
> https://issues.apache.org/jira/browse/HBASE-7667 ,  we have implemented a 
> fast split region method using the similar ideas of HFileLink and move store 
> files between regions when compacting. Actually, this idea has already been 
> mentioned in HBASE-7667 , it said that `region splits become marvelously 
> simple (if we could move files between regions, no references would be 
> needed)`.
> We have implemented the ideas and practiced them on that cluster. The fact 
> results show that, a region of about 600G can  be splitted to  75G*8 regions 
> in about five minutes, with less than 5G total rewrite size(all are L0) in 
> the whole process, while normal continuous split needs 600G*3=1800G. By using 
> movement of store files, the rewritten size is less than 50G(two stripe size, 
> because the rebuild of HFileLinks to stripes may insert some files to L0.).I 
> have attached two pictures about a RS before and after splitting all the 
> regions using this method.
> This idea can not only be used in stripe store engine, but also default store 
> engine, and the store movement methods are very benefit to region MERGE.  



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

Reply via email to