hbase-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Anoop Sam John (JIRA)" <j...@apache.org>
Subject [jira] [Created] (HBASE-12068) [Branch-1] Avoid need to always do KeyValueUtil#ensureKeyValue for Filter transformCell
Date Tue, 23 Sep 2014 18:02:03 GMT
Anoop Sam John created HBASE-12068:

             Summary: [Branch-1] Avoid need to always do KeyValueUtil#ensureKeyValue for Filter
                 Key: HBASE-12068
                 URL: https://issues.apache.org/jira/browse/HBASE-12068
             Project: HBase
          Issue Type: Sub-task
          Components: Filters
    Affects Versions: 0.99.0
            Reporter: Anoop Sam John
            Assignee: Anoop Sam John
             Fix For: 0.99.1

During read with Filters added to Scan/Get, the core code calls transformCell(Cell) on the
Filter. Most of the filters do not implement transform API so the method from FilterBase will
get executed
  public Cell transformCell(Cell v) throws IOException {
    // Old filters based off of this class will override KeyValue transform(KeyValue).
    // Thus to maintain compatibility we need to call the old version.
    return transform(KeyValueUtil.ensureKeyValue(v));
Here always it do KeyValueUtil.ensureKeyValue.  When a non KV cell comes in, we need recreate
KV and do deep copy of key and value!
We have to stick with this model in branch-1 for BC.
So as a workaround to avoid possible KV convert, we can implement transformCell(Cell) method
in all of our individual Filter classes which just return the incoming cell (So that method
from FilterBase wont get executed)

This message was sent by Atlassian JIRA

View raw message