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

ramkrishna.s.vasudevan updated HBASE-13945:
-------------------------------------------
    Attachment: HBASE-13945_0.98_3.patch

Updated patch.  The getKeyValueBuffer (currently used only in tests) will now 
do a rewind before returning the API so that the BB is useful instead of having 
the position == limit.
The TestDataBlockEncoders passes with this change. Similar patch is applicable 
for trunk and branch-1 also. 

> Prefix_Tree seekBefore() does not work correctly
> ------------------------------------------------
>
>                 Key: HBASE-13945
>                 URL: https://issues.apache.org/jira/browse/HBASE-13945
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 1.0.0, 0.98.2, 1.0.1, 1.1.0, 1.0.1.1, 1.1.0.1
>            Reporter: ramkrishna.s.vasudevan
>            Assignee: ramkrishna.s.vasudevan
>             Fix For: 0.98.14, 1.0.2, 1.2.0, 1.1.1, 1.1.2, 1.3.0, 1.2.1
>
>         Attachments: HBASE-13945_0.98.patch, HBASE-13945_0.98_1.patch, 
> HBASE-13945_0.98_2.patch, HBASE-13945_0.98_3.patch, 
> HBASE-13945_branch-1.1.patch, HBASE-13945_trunk.patch, 
> HBASE-13945_trunk_1.patch
>
>
> This is related to the TestSeekTo test case where the seekBefore() does not 
> work with Prefix_Tree because of an issue in getFirstKeyInBlock(). In the 
> trunk and branch-1 changing the return type of getFirstKeyInBlock() from BB 
> to Cell resolved the problem, but the same cannot be done in 0.98. Hence we 
> need a change in the KvUtil.copyToNewBuffer API to handle this.  Since the 
> limit is made as the position - in seekBefore when we do 
> {code}
> byte[] firstKeyInCurrentBlock = Bytes.getBytes(firstKey);
> {code}
> in HFileReaderV2.seekBefore() we end up in an empty byte array and it would 
> not be the expected one based on which we try to seek to load a new block.



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

Reply via email to