Anoop Sam John commented on HBASE-16134:

Forgot abt this jira for some time..  Coming back to this as am working on 
subtasks for the parent jira.
We do have diff Codec impls which us used at RPC edge. One for writing Tags and 
one for filtering.  We can use those as per the need.
Here the method write(OutputStream) is implemented in a Cell impl class. (Like 
KeyValue).  The method contract is to write this Cell bytes in a KV 
serialization format.   Codec just call this method on Cell object and wont do 
getXXXLength(), getXXXArray() and write individual parts one by one. Means this 
method impl in Cell objects has to know how to write itself in KV format and 
what all to write.  In case of Codec which needs tags filter, it has to write 
<KL><VL><key><value>.  Where as when the Codec is the one which need tags the 
method has to write <KL><VL><key><value><tagsLength><tags>..So the point is how 
to make the method know whether it has to write the tag or not. For this reason 
only the method was taking a boolean param.  Or else how we will do this?  We 
dont want the Codec to call diff getters on Cell and write each part by part. 
We want to do this in one shot.  

> Introduce Cell extension for server side.
> -----------------------------------------
>                 Key: HBASE-16134
>                 URL: https://issues.apache.org/jira/browse/HBASE-16134
>             Project: HBase
>          Issue Type: Sub-task
>          Components: regionserver
>            Reporter: Anoop Sam John
>            Assignee: Anoop Sam John
>             Fix For: 2.0.0
>         Attachments: HBASE-16134.patch, HBASE-16134.patch, 
> HBASE-16134_V2.patch
> Came after the discussion under HBASE-15721 and HBASE-15879.
> InternalCell is a Cell extension. We do have Cell extensions across different 
> interfaces now.
> SettableSeqId
> SettableTimestamp
> Streamable.
> And demand for this keep growing.
> So let us include everything into one Interface.

This message was sent by Atlassian JIRA

Reply via email to