You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "ramkrishna.s.vasudevan (JIRA)" <ji...@apache.org> on 2014/03/25 12:17:15 UTC

[jira] [Resolved] (HBASE-10826) PrefixTree seekTo does not seek to the correct key if the given key is not in the existing kvs

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

ramkrishna.s.vasudevan resolved HBASE-10826.
--------------------------------------------

    Resolution: Invalid

This issue is not applicable here because Prefix Tree would expect the same family at this layer.  As we are directly testing the buffer and the seeker here it does not make sense to change the family.

> PrefixTree seekTo does not seek to the correct key if the given key is not in the existing kvs
> ----------------------------------------------------------------------------------------------
>
>                 Key: HBASE-10826
>                 URL: https://issues.apache.org/jira/browse/HBASE-10826
>             Project: HBase
>          Issue Type: Bug
>          Components: Scanners
>    Affects Versions: 0.98.0, 0.99.0, 0.96.1.1
>            Reporter: ramkrishna.s.vasudevan
>            Assignee: ramkrishna.s.vasudevan
>            Priority: Critical
>              Labels: prefixtree
>         Attachments: TestSeekToBlockWithEncoders.java
>
>
> {code}
>     KeyValue kv1 = new KeyValue(Bytes.toBytes("aaa"), Bytes.toBytes("fam1"), Bytes.toBytes("q1"),
>         Bytes.toBytes("val"));
>     writer.append(kv1);
>     KeyValue kv2 = new KeyValue(Bytes.toBytes("aab"), Bytes.toBytes("fam1"), Bytes.toBytes("q1"),
>         Bytes.toBytes("val"));
>     writer.append(kv2);
>     KeyValue kv4 = new KeyValue(Bytes.toBytes("aac"), Bytes.toBytes("fam1"), Bytes.toBytes("q1"),
>         Bytes.toBytes("val"));
>     writer.append(kv4);
>     KeyValue kv5 = new KeyValue(Bytes.toBytes("aac"), Bytes.toBytes("fam12"), Bytes.toBytes("q2"),
>         Bytes.toBytes("val"));
> writer.append(kv5);
> {code}
> {code}
>     KeyValue toSeek = new KeyValue(Bytes.toBytes("aac"), Bytes.toBytes("fam1"),
>         Bytes.toBytes("q2"), Bytes.toBytes("val"));
>     StoreFileScanner s = reader.getStoreFileScanner(false, false);
>     s.reseek(toSeek);
> {code}
> Now calling s.next() should point to the last KV - kv5.
> Before calling s.next() it would have done a moveToPrevious since there is no KV that exactly matches with the toSeek key.
> Incase of NONE, PREFIX, DIFF, FAST_DIFF things work fine as expected.
> But in case of Prefix Tree, calling reseek() points to a key that is same as the toSeek key which does not exist at all. 
> Will attach a testcase that shows this problem. 



--
This message was sent by Atlassian JIRA
(v6.2#6252)