hbase-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ramkrishna.s.vasudevan (JIRA)" <j...@apache.org>
Subject [jira] [Resolved] (HBASE-10826) PrefixTree seekTo does not seek to the correct key if the given key is not in the existing kvs
Date Tue, 25 Mar 2014 11:17:15 GMT

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

Mime
View raw message