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

Bryan Duxbury commented on HBASE-532:
-------------------------------------

I've been poking around with this problem. It is indeed quite odd that this 
keeps happening. 

A few things that stand out to me. First, it's totally possible that scanners 
and deleteAll don't play well together. Deletes that are not matched precisely 
to cells have been known to cause issues, so that might be something in play. 

Second, I noticed that you created the MetaScannerListener class to allow for 
easy scanning of the meta regions to find HRegionInfos of meta regions that 
host the regions we're trying to merge. Is there a reason you chose not to use 
the getClosestRowBefore facility that is commonly used to locate the 
appropriate meta regions? I'm not sure that this is a problem yet, but it is my 
suspicion this could be related. Additionally, I feel like there's a chance 
that the implementation used in Merge.java takes the first region info that 
could contain the row we're looking for instead of the last, which is what we 
actually want. I don't have data to back that up yet, though.

What is odd to me is that when I added some code to print out the contents, the 
row we're looking for really isn't in the region's data. So it's not just a 
question of not finding the data we're looking for, it's that we're looking for 
the wrong data up front. 

The fact that this problem comes into play only when there are more than one 
store file makes me nervous. We've seen the multi-storefile problem bite us in 
HBASE-524 and others. Could it be that scanners are not safe with multiple 
store files? Compaction sorts out all these problems by merging all the values 
and simplifying the scan.

> Odd interaction between HRegion.get, HRegion.deleteAll and compactions
> ----------------------------------------------------------------------
>
>                 Key: HBASE-532
>                 URL: https://issues.apache.org/jira/browse/HBASE-532
>             Project: Hadoop HBase
>          Issue Type: Bug
>    Affects Versions: 0.1.0
>            Reporter: Jim Kellerman
>            Assignee: Bryan Duxbury
>             Fix For: 0.2.0, 0.1.0
>
>
> If you apply the patch for HBASE-483 to the 0.1 branch and comment out lines 
> 309 and 315 of MetaUtils.java (which force compactions of the root and meta 
> regions respectively), TestMergeTool fails. Why forcing compactions makes the 
> test succeed is a mystery to me.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to