[
https://issues.apache.org/jira/browse/HBASE-18945?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16210553#comment-16210553
]
ramkrishna.s.vasudevan commented on HBASE-18945:
------------------------------------------------
[~tedyu]
Thanks for the addendum. I was away the whole day and did not have access to my
laptop. Sorry for the trouble.
bq.I took a look at the patch. Seems good. What is the philosophy regards when
CellComparator vs CellComparatorImpl vs CellUtils? Can you stick it in release
note?
Yes will do it.
We already have CellUtil clean up JIRa - HBASE-18995.
bq.Main concern is that we have different CellComparator implemenations – one
for Meta Table Rows and another for user-table Rows – and you have to use the
right one else you get wonky results. Seems like you are doing right thing but
just checking.
Yes it has been taken care of . Generally the REgion and Store uses the
CellComparator and that is where we will get MetaCellcomparator and the generic
comparator. That place works as usual and infact we are continuing with
CellComparator only as a reference.
In the layers of ColumnTrackers there we are passing
CellComparatorImpl.COMPARATOR because there is no rows involved. But
[~chia7712] has raised another issue to continue with CellComparator that is
passed from ScanInfo so that we don't have this static references as far as
possible.
> Make a IA.LimitedPrivate interface for CellComparator
> -----------------------------------------------------
>
> Key: HBASE-18945
> URL: https://issues.apache.org/jira/browse/HBASE-18945
> Project: HBase
> Issue Type: Sub-task
> Reporter: ramkrishna.s.vasudevan
> Assignee: ramkrishna.s.vasudevan
> Fix For: 2.0.0-alpha-4
>
> Attachments: 18945-addendum-branch-2.txt, HBASE-18495.patch,
> HBASE-18945_2.patch, HBASE-18945_3.patch, HBASE-18945_4.patch,
> HBASE-18945_5.patch, HBASE-18945_6.patch, HBASE-18945_6.patch,
> HBASE-18945_7.patch
>
>
> Based on discussions over in HBASE-18826 and HBASE-18183 it is better we
> expose CellComparator as a public interface so that it could be used in
> Region/Store interfaces to be exposed to CPs.
> Currently the Comparator is exposed in Region, STore and StoreFile. There is
> another discussion whether to expose it at all layers or only at Region.
> However since we are exposing this to CPs CellComparator being @Private is
> not the ideal way to do it. We have to change it to LimitedPrivate. But
> CellComparator has lot of additional methods which are internal (like where a
> Cell is compared with an incoming byte[] used in index comparsions etc).
> One way to expose is that as being done now in HBASE-18826 - by exposing the
> return type as Comparator<Cell>. But this is not powerful. It only allows to
> compare cells. So we try to expose an IA.LimitedPrivate interface that is
> more powerful and allows comparing individual cell components also.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)