Anoop Sam John created HBASE-12068:
--------------------------------------
Summary: [Branch-1] Avoid need to always do
KeyValueUtil#ensureKeyValue for Filter transformCell
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
{code}
@Override
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));
}
{code}
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
(v6.3.4#6332)