[
https://issues.apache.org/jira/browse/HBASE-13387?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14486881#comment-14486881
]
ramkrishna.s.vasudevan commented on HBASE-13387:
------------------------------------------------
I agree with the Filter changes - but there is one place in here, the
compareFilters. All the compareFilters we may need to provide BC for the
compare APIs which is exposing the byte[] part. Even if we change those compare
APIs to handle cells we may need to proivde BC? If we can break that then even
in compareFilters we can just pass a cell and the CellUtil can handle.
bq.Ideally, at a high-level (does it have to be at the regionserver level since
read path spans block read to rpc?), a switch would be thrown, and a factory
would emit an appropriate Cell type AND any read path classes needed such as
comparators. Ideally the number of classes and the loci where we need to be
cognizant of difference will be few (two? The Cell type and its comparators)
and narrow. Is such an ideal possible lads?
But not sure how easy it would be to make this ideal soln.
bq.t looks ok to pass Cell only to Filter/CPs. If writer calls them with out
type check and all, there is a pref hit but functionally no issue.
If we want to do this and allow the offheap BBs to be copied onheap just
because the user tried to use getXXXArray APIs then we should have different
getXXXOffset APIs for byte[] and BB.
If instanceOf check is not going to cost us more then hasArray would not be
needed at all but we may have traces of instanceOf every where, right? Atleast
in the CellUtil classes.
> 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)