[ 
https://issues.apache.org/jira/browse/HBASE-13933?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ramkrishna.s.vasudevan updated HBASE-13933:
-------------------------------------------
    Attachment: HBASE-13993_1.patch

Patch with refactored TestSeekTo test cases.  Now TestSeekTo works with NONE 
and all DBE cases.
Found couple of other issues particularly with Prefix Tree and one improvement.
The PREFIX_TREE case the firstKeyFromBlock logic was wrong - it was trying to 
copy the firstkey to a BB but setting the position of the BB to its limit. So 
when the BB was used in the reader it was not able to form the nextIndexKey. 
Fixed that in this JIRA so that the test cases passes.
Also the compareKey in Preifx Tree can be done directly on the 
ptSearcher.current() instead of copying to a BB. Also done in this patch.(not a 
bug - just a minor change)
The other difference between all DBEs and Prefix Tree is that when we seek to a 
key after the last key all the DBEs will point to the last key when we do 
scanner.getKeyValue.  But Prefix_Tree is giving a null. Is it fine to have this 
behaviourial change? May be in normal scan this will not happen? This can be 
done in a seperate JIRA.

Another improvement is that getFirstKeyInDataBlock can be changed to Cell.  So 
that in the seekBefore we need not convert the BB to KeyOnlyKeyValue twice once 
in comparison and if the comparison fails again in the loadBlock.


> DBE's seekBefore with tags corrupts the tag's offset information thus leading 
> to incorrect results
> --------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-13933
>                 URL: https://issues.apache.org/jira/browse/HBASE-13933
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 1.0.0, 2.0.0, 1.0.1, 1.1.0, 0.98.13, 1.0.1.1, 1.1.0.1
>            Reporter: ramkrishna.s.vasudevan
>            Assignee: ramkrishna.s.vasudevan
>            Priority: Critical
>             Fix For: 2.0.0, 0.98.14, 1.0.2, 1.2.0, 1.1.1, 1.3.0
>
>         Attachments: HBASE-13933.patch, HBASE-13993_1.patch
>
>
> The problem occurs with moveToPrevious() case and incase of tags we copy the 
> previous pointer's tag info to the current because already decoded the tags.
> Will check once again before I post other details.  I have a test case to 
> reproduce the problem. Found this while working with MultibyteBuffers and 
> verified if this is present in trunk - it is in all branches where we have 
> tags compression (I suppose) will verify



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

Reply via email to