[
https://issues.apache.org/jira/browse/HBASE-514?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12578441#action_12578441
]
bryanduxbury edited comment on HBASE-514 at 3/13/08 11:48 AM:
---------------------------------------------------------------
I'm not sure if this is the root or even part of the problem, but looking back
at the code I wrote for getClosestRowBefore, the Memcache branch of the code
isn't correct. It's pretty close, but I can envision some scenarios where it
might produce bad results.
* internalGetRowKeyAtOrBefore doesn't take into account potentially deleted
cells. This probably isn't a big issue when dealing with region location stuff,
but you never know.
* The check at the end of the tailMap branch of code in
internalGetRowKeyAtOrBefore didn't make sure that the found row was still a
match to the row we're searching for, meaning that in situations when the
timestamp never matched for the found row but there were following rows, if the
first following row's timestamp was less than the search timestamp, you'd get
that row. Note that this means you'd actually get the first row AFTER the row
you were looking for, which is the wrong behavior.
* The handling of the headMap branch of internalGetRowKeyAtOrBefore is
potentially incorrect. I assumed that the last cell in the headmap would
contain the row we're looking for, but again don't check for possibly deleted
cells. This means you could potentially get a row key for a region that had
been deleted, say after a region split gets finalized in META.
I'll whip up a patch to address these problems at least, so that we can feel a
little more confident that it's doing the right thing.
was (Author: bryanduxbury):
I'm not sure if this is the root or even part of the problem, but looking
back at the code I wrote for getClosestRowBefore, the Memcache branch of the
code isn't correct. It's pretty close, but I can envision some scenarios where
it might produce bad results.
1. internalGetRowKeyAtOrBefore doesn't take into account potentially deleted
cells. This probably isn't a big issue when dealing with region location stuff,
but you never know.
1. The check at the end of the tailMap branch of code in
internalGetRowKeyAtOrBefore didn't make sure that the found row was still a
match to the row we're searching for, meaning that in situations when the
timestamp never matched for the found row but there were following rows, if the
first following row's timestamp was less than the search timestamp, you'd get
that row. Note that this means you'd actually get the first row AFTER the row
you were looking for, which is the wrong behavior.
1. The handling of the headMap branch of internalGetRowKeyAtOrBefore is
potentially incorrect. I assumed that the last cell in the headmap would
contain the row we're looking for, but again don't check for possibly deleted
cells. This means you could potentially get a row key for a region that had
been deleted, say after a region split gets finalized in META.
I'll whip up a patch to address these problems at least, so that we can feel a
little more confident that it's doing the right thing.
> table 'does not exist' when it does
> -----------------------------------
>
> Key: HBASE-514
> URL: https://issues.apache.org/jira/browse/HBASE-514
> Project: Hadoop HBase
> Issue Type: Bug
> Components: client
> Affects Versions: 0.16.0
> Reporter: stack
> Attachments: region-v2.patch
>
>
> This one I've seen a few times. In hql, I do show tables and it shows my
> table. I then try to do a select against the table and hql reports table
> does not exist. Digging, whats happening is that the getClosest facility is
> failing to find the first table region in the .META. table. I hacked up a
> region reading tool -- attached (for 0.1 branch) -- and tried it against but
> a copy and the actual instance of the region and it could do the getClosest
> fine. I'm pretty sure I restarted the HRS and when it came up again, the
> master had given it again the .META. and again was failing to find the first
> region in the table (Looked around in server logs and it seemed 'healthy').
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.