[ https://issues.apache.org/jira/browse/HBASE-14997?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16156570#comment-16156570 ]
stack commented on HBASE-14997: ------------------------------- .003 incorporates [~anoop.hbase] review. He points out we break Region Interface and CPs. He is right. On the former, we've already broken it by removing methods and adding new (non-default) implementations. On latter, CPs are going to be incompatible in hbase2. He also suggests that we use new generic compare operator even inside the CompareFilter. This latter is probably worth doing. Filing a follow-up. > Move compareOp and Comparators out of filter to client package > -------------------------------------------------------------- > > Key: HBASE-14997 > URL: https://issues.apache.org/jira/browse/HBASE-14997 > Project: HBase > Issue Type: Sub-task > Reporter: Enis Soztutar > Assignee: stack > Priority: Critical > Fix For: 2.0.0-alpha-3 > > Attachments: HBASE-14997.master.001.patch, > HBASE-14997.master.002.patch, HBASE-14997.master.003.patch > > > {{Table.checkAndPut()}} and its cousins depend on CompareOp from the filter > package. Originally, ComparaOp and ByteArrayComparable, and various > "comparators" have been used in filters, so these are in the filter package. > However, for checkAndPut(), etc we depend on the filter subpackage although > these are not filter related operations. We can use some clean up. > {code} > boolean checkAndPut(byte[] row, byte[] family, byte[] qualifier, > CompareFilter.CompareOp compareOp, byte[] value, Put put) throws > IOException; > {code} > Some ideas > - Cleanup ByteArrayComparable interface (see the TODO at the class) > - Maybe introduce a {{Condition}} or a similar concept and do > {{checkAndPut(Condition condition, Put put)}} and change filters to use that > as well. > - Introducing Condition like thing will allow us to have an interface like: > {{checkAndMutate(List<Condition> conditions, List<Mutation> mutations)}}. > - BinaryComparator, etc are not "Comparators", they are comparables. -- This message was sent by Atlassian JIRA (v6.4.14#64029)