[
https://issues.apache.org/jira/browse/HBASE-13387?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14485703#comment-14485703
]
stack commented on HBASE-13387:
-------------------------------
Filters and CPs from client package both have ServerCell as params on methods
(Why Filter and CP in client module at all? But that not you) Do these care
that Cell has extra methods? It is not till you go deep into comparators, etc.,
that it matters? So why pass through all of these APIs then? Why not do test
down low where needed rather than broadcast ServerCell all over our API?
I go through 1/4 of this 500k patch before I come to a place where ServerCell
is actually needed in ProtobufUtil. It does this:
if(cell.hasArray()){
It could do, if (cell instanceof ServerCell &&
((ServerCell)cell).hasArray())....
I believe the instanceof check is inexpensive. I can test.
You actually do above in CellUtil
if (cell instanceof ServerCell) {
This is definetly not on.. in HConstants making mention of ServerCell.
0 public static final ServerCell NO_NEXT_INDEXED_KEY = new KeyValue();
Is this right?
public class KeyValue implements ServerCell, HeapSize, Cloneable {
Why not a subclass of KV to add the ServerCell facility so can keep ServerCell
serverside?
Why does write path have ServerCell? Is that right? ServerCell will have stuff
like caching of parsed lengths. This will be on write path too? I am looking
at BufferedDataBlockEncoder Perhaps the changes are in decoder part only, if
so, ignore.
Thats enough for now.
> Add ServerCell an extension to Cell
> -----------------------------------
>
> Key: HBASE-13387
> URL: https://issues.apache.org/jira/browse/HBASE-13387
> Project: HBase
> Issue Type: Sub-task
> Components: regionserver, Scanners
> Reporter: Anoop Sam John
> Assignee: Anoop Sam John
> Attachments: WIP_ServerCell.patch
>
>
> This came in btw the discussion abt the parent Jira and recently Stack added
> as a comment on the E2E patch on the parent Jira.
> The idea is to add a new Interface 'ServerCell' in which we can add new
> buffer based getter APIs, hasArray API etc. We will keep this interface
> @InterfaceAudience.Private
> Also we have to change the timestamp and seqId on Cells in server side. We
> have added new interfaces SettableSequenceId, SettableTimestamp for this. Now
> if we can add a ServerCell we can add the setter APIs there.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)