[
https://issues.apache.org/jira/browse/HBASE-15879?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
ramkrishna.s.vasudevan updated HBASE-15879:
-------------------------------------------
Attachment: HBASE-15879_1.patch
Renames ContiguousKey to Key. Discussing with Anoop here, its better that this
standalone Key be used with the cell impls alone where we think Key is
contiguous. Not every cell should be implementing this Key. This is just for
performance optimization and reduce garbage in cases of Bloom.
[[email protected]]
To your point that Key can be created by asking a cell and what ever type it
may be is true but that the idea of this interface is for optimzation and if we
allow every cell to be Key then it is good enough adding the new getKey() APIs
in cell itself.
But one downside in having only certain cells impl the new Key interface is
that we need to check if the Cell is of type Key and then see if the Cell is
backed by array or BB and then call the suitable API in the Key interface. If
not add isArray API in the Key interface.
> Introduce Key interface
> -----------------------
>
> Key: HBASE-15879
> URL: https://issues.apache.org/jira/browse/HBASE-15879
> Project: HBase
> Issue Type: Improvement
> Reporter: ramkrishna.s.vasudevan
> Assignee: ramkrishna.s.vasudevan
> Attachments: HBASE-15879.patch, HBASE-15879_1.patch
>
>
> Introduce an interface called Key and allow Cell implementations to implement
> this Key interface for cases like KeyValue, OffheapKeyValue and DBE cells
> (Except prefix tree) so that we can avoid copies when we deal with only Cells
> in case of block index creations (like ROOT, Bloom etc). Helps in reduction
> of garbage also.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)