[
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.