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

Stephen Yuan Jiang commented on HBASE-15940:
--------------------------------------------

One possible solution is that we really don't need to copy referenced files to 
a new region during  fixHdfsOverlaps - either the referenced file is orphaned; 
or the real files that the referenced files point to are already in the new 
region.

> HBCK unnecessary moves reference files when a table has split region to fix 
> non-existing overlap regions
> --------------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-15940
>                 URL: https://issues.apache.org/jira/browse/HBASE-15940
>             Project: HBase
>          Issue Type: Bug
>          Components: hbck
>    Affects Versions: 1.0.0
>            Reporter: Stephen Yuan Jiang
>            Assignee: Stephen Yuan Jiang
>         Attachments: org.apache.hadoop.hbase.util.TestHBaseFsck-output.txt, 
> repro-hbck-repair-healthy-splitted=region.patch
>
>
> When repair option (the -fixHdfsOverlaps option specifically) is specified 
> against a table, if the table has splitted regions (both parent region and 
> child regions exists with reference files), Hbck would wrongly think that 
> there exists overlapped regions and try to merge them and fix it.  
> This is by-design, as current implementation of Hbck uses HDFS as the trusted 
> source without consulting META table.
> Here is the comments from one of unit tests:
> {code}
>       // TODO: fixHdfsHoles does not work against splits, since the parent 
> dir lingers on
>       // for some time until children references are deleted. HBCK 
> erroneously sees this as
>       // overlapping regions
> {code}
> However, this is undesirable.  when the reference files moved to a new 
> region, the parent region would have no daugher regions and hence it could be 
> cleaned up by CatalogJanitor.  This would create real inconsistency: 
> lingering reference files.  
> Another bad consequence is that we would merge splitted regions back to one.  
> Even it is undesirable, at least this would not cause more inconsistency.  
> this JIRA would not try to solve this unsplit issue, as it requires bigger 
> design change in Hbck.  
> This JIRA is  trying to address the potential lingering reference files 
> issue, as multiple customers using branch-1 faced this issue in production.  
> (workaround is that run major compaction on all split regions before run 
> HBCK, this could take longer time and have production impact).
> Attached is the log and modified unit test to repro the issue.  



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

Reply via email to