You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "Ted Yu (JIRA)" <ji...@apache.org> on 2017/10/17 23:12:00 UTC

[jira] [Reopened] (HBASE-18945) Make a IA.LimitedPrivate interface for CellComparator

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

Ted Yu reopened HBASE-18945:
----------------------------

Jenkins build for 2.0 fails with:
{code}
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.1:compile (default-compile) on project hbase-mapreduce: Compilation failure: Compilation failure:
[ERROR] /home/jenkins/jenkins-slave/workspace/HBase-2.0/a3159d73/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/Import.java:[167,28] package CellComparator does not exist
[ERROR] /home/jenkins/jenkins-slave/workspace/HBase-2.0/a3159d73/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/KeyValueSortReducer.java:[45,57] cannot find symbol
[ERROR] symbol:   variable COMPARATOR
[ERROR] location: interface org.apache.hadoop.hbase.CellComparator
{code}

> 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: 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)