You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Duo Zhang (JIRA)" <ji...@apache.org> on 2016/03/24 12:03:25 UTC

[jira] [Comment Edited] (HBASE-15475) Allow TimestampsFilter to provide a seek hint

    [ https://issues.apache.org/jira/browse/HBASE-15475?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15210076#comment-15210076 ] 

Duo Zhang edited comment on HBASE-15475 at 3/24/16 11:03 AM:
-------------------------------------------------------------

The TestHFile.testShortMidpointSameQual  added by this patch can not pass...
{code:title=TestHFile.java}
  @Test
  public void testShortMidpointSameQual() {
    Cell left = CellUtil.createCell(Bytes.toBytes("a"),
        Bytes.toBytes("a"),
        Bytes.toBytes("a"),
        9,
        KeyValue.Type.Maximum.getCode(),
        HConstants.EMPTY_BYTE_ARRAY);
    Cell right = CellUtil.createCell(Bytes.toBytes("a"),
        Bytes.toBytes("a"),
        Bytes.toBytes("a"),
        11,
        KeyValue.Type.Maximum.getCode(),
        HConstants.EMPTY_BYTE_ARRAY);
    Cell mid = HFileWriterImpl.getMidpoint(CellComparator.COMPARATOR, left, right);
    assertTrue(CellComparator.COMPARATOR.compareKeyIgnoresMvcc(left, mid) <= 0);  // <==== fail at this line
    assertTrue(CellComparator.COMPARATOR.compareKeyIgnoresMvcc(mid, right) == 0);
  }
{code}
I think the problem is your left cell is greater than your right cell since we sort timestamps in descending order? [~eclark]

Thanks.


was (Author: apache9):
The TestHFile.testShortMidpointSameQual  added by this patch can not pass...
{code:title=TestHFile.java}
  @Test
  public void testShortMidpointSameQual() {
    Cell left = CellUtil.createCell(Bytes.toBytes("a"),
        Bytes.toBytes("a"),
        Bytes.toBytes("a"),
        9,
        KeyValue.Type.Maximum.getCode(),
        HConstants.EMPTY_BYTE_ARRAY);
    Cell right = CellUtil.createCell(Bytes.toBytes("a"),
        Bytes.toBytes("a"),
        Bytes.toBytes("a"),
        11,
        KeyValue.Type.Maximum.getCode(),
        HConstants.EMPTY_BYTE_ARRAY);
    Cell mid = HFileWriterImpl.getMidpoint(CellComparator.COMPARATOR, left, right);
    assertTrue(CellComparator.COMPARATOR.compareKeyIgnoresMvcc(left, mid) <= 0);  // <==== fail at this line
    assertTrue(CellComparator.COMPARATOR.compareKeyIgnoresMvcc(mid, right) == 0);
  }
{code}
I think the problem is your left cell is larger than your right cell since we sort timestamps in descending order? [~eclark]

Thanks.

> Allow TimestampsFilter to provide a seek hint
> ---------------------------------------------
>
>                 Key: HBASE-15475
>                 URL: https://issues.apache.org/jira/browse/HBASE-15475
>             Project: HBase
>          Issue Type: Improvement
>          Components: Client, Filters, regionserver
>    Affects Versions: 1.3.0
>            Reporter: Elliott Clark
>            Assignee: Elliott Clark
>             Fix For: 2.0.0, 1.3.0, 1.4.0
>
>         Attachments: HBASE-15475-branch-1.patch, HBASE-15475-v1.patch, HBASE-15475-v2.patch, HBASE-15475-v3.patch, HBASE-15475-v4.patch, HBASE-15475-v5.patch, HBASE-15475.patch
>
>
> If a user wants to read specific timestamps currently it's a very linear scan. This is so that all deletes can be respected. However if the user doesn't care about deletes it can dramatically speed up the request to seek.



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