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