hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ramkrishna.s.vasudevan (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HBASE-18945) Make a Public interface for CellComparator
Date Thu, 12 Oct 2017 08:00:03 GMT

     [ 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
> 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

View raw message