hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ramkrishna.s.vasudevan (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-16405) Remove byte[] based hash() APIs.
Date Tue, 16 Aug 2016 06:36:20 GMT

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

ramkrishna.s.vasudevan commented on HBASE-16405:

Things looks good. 
Actually my intention was to say in CompoundBloomFilter#contains(Cell, ByteBuff)
    int block = index.rootBlockContainingKey(keyCell);
    // This copy will be needed. Because blooms work on the key part only.
    // Atleast we now avoid multiple copies until it comes here. If we want to make this to
    // with BBs then the Hash.java APIs should also be changed to work with BBs.
    if (keyCell instanceof KeyValue) {
      // TODO : directly use Cell here
      return checkContains(((KeyValue) keyCell).getBuffer(), ((KeyValue) keyCell).getKeyOffset(),
        ((KeyValue) keyCell).getKeyLength(), block);
    // TODO : Avoid this copy in read path also
    byte[] key = CellUtil.getCellKeySerializedAsKeyValueKey(keyCell);
remove the above TODO. So there is no longer any need for ByteArrayHashKey. So the HashKey
will just have two hierarchy Row and RowColHashKey and you can remove the generic itself and
make it work with Cells alone. And if needed modify the test cases. If suppose removing it
is totally impossible just for the case of test case then leave the ByteArrayHashKey for test
purpose alone and in that case the hierarchy will be as is. 

> Remove byte[] based hash() APIs.
> --------------------------------
>                 Key: HBASE-16405
>                 URL: https://issues.apache.org/jira/browse/HBASE-16405
>             Project: HBase
>          Issue Type: Sub-task
>          Components: Compaction
>            Reporter: ramkrishna.s.vasudevan
>            Assignee: Anoop Sam John
>             Fix For: 2.0.0
>         Attachments: HBASE-16405.patch
> Currently the read path though it works with Cells, still does go with the assumption
that we need to copy the Cells to KeyValue's key format and then use the byte[] version of
hash() function to calculate the Bloom hash. In case of incoming cell's being KeyValue type
we try to use the KeyValue.getKey(), KeyValue.getKeyOffset() APIs. With this sub-task we will
get rid of all those and things will work with Cells. 

This message was sent by Atlassian JIRA

View raw message