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 09:22:44 UTC

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

ramkrishna.s.vasudevan created HBASE-10826:
----------------------------------------------

             Summary: PrefixTree seekTo does not seek to the correct key if the given key is not in the exisitng kvs
                 Key: HBASE-10826
                 URL: https://issues.apache.org/jira/browse/HBASE-10826
             Project: HBase
          Issue Type: Bug
          Components: Scanners
    Affects Versions: 0.98.1, 0.96.2, 0.99.0
            Reporter: ramkrishna.s.vasudevan
            Assignee: ramkrishna.s.vasudevan
            Priority: Critical


{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)