[ 
https://issues.apache.org/jira/browse/HBASE-18945?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ramkrishna.s.vasudevan updated HBASE-18945:
-------------------------------------------
    Attachment: HBASE-18945_3.patch

Patch based on comments. It is still bigger but the main changes are
-> CellComparator is the interface.
-> Impl class is CellComparatorImpl
-> Most of the places it remains as CellComparator only.
-> CellComparator#compareRow(Cell,  byte[], offset, len) is now added to the 
interface itself as we have wide use of it in the code base and also it is 
useful when exposed to do a compare of rows of normal table and meta table. If 
you feel this is not need then it has to go to CellUtil.
-> Many static APIs have been moved to CellUtil and also some new ones have 
been added.
-> FixedFileTrailer has to be fixed for BC for files which have been serialized 
with the name of CellComparator.

Will try QA.


> Make a Public 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-beta-1
>
>         Attachments: HBASE-18495.patch, HBASE-18945_2.patch, 
> HBASE-18945_3.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)

Reply via email to