hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Nick Dimiduk (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-14944) Minimize or eliminate source incompatible changes due to HBASE-14605, HBASE-14631, and HBASE-14655
Date Thu, 10 Dec 2015 17:24:11 GMT

    [ https://issues.apache.org/jira/browse/HBASE-14944?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15051288#comment-15051288
] 

Nick Dimiduk commented on HBASE-14944:
--------------------------------------

All three of these interfaces are marked as {{LimitedPrivate(COPROC)}}, {{Evolving}} on 1.1.
According to out [guidelines|http://hbase.apache.org/book.html#hbase.versioning], we promise
only ABI compatibility for server-side limited private interfaces.

bq. This implies binary compatibility for coprocessors and plugins (pluggable classes, including
replication) as long as these are only using marked interfaces/classes.

{{Evolving}} appears to mean we could break this ABI compatibility on minor releases, but
not patch releases.

Furthermore, we say in summary (emphasis my own),

bq. A patch upgrade is a drop-in replacement. Any change that is not Java binary compatible
would not be allowed. _Downgrading versions within patch releases may not be compatible._

Since the parent ticket HBASE-14686 is addressing a security lapse, I now think we can and
should accept these changes into 1.0 and 1.1.

Unless there are new objectors, I will go forward with the 1.1 release.

FYI [~enis] [~busbey]

> Minimize or eliminate source incompatible changes due to HBASE-14605, HBASE-14631, and
HBASE-14655
> --------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-14944
>                 URL: https://issues.apache.org/jira/browse/HBASE-14944
>             Project: HBase
>          Issue Type: Sub-task
>            Reporter: Andrew Purtell
>            Priority: Blocker
>             Fix For: 1.1.3, 1.0.4
>
>
> Minimize or eliminate source incompatible changes due to HBASE-14605, HBASE-14631, and
HBASE-14655. The changes are due to abstract method additions to carry the correct (not current)
{{User}} through to where authoritative decisions or audit is performed.
> HBASE-14605 introduces source incompatible changes to the SplitTransaction interface:
> - Adds abstract method execute(Server, RegionServerServices, User)
> - Adds abstract method rollback(Server, RegionServerServices, User)
> HBASE-14631 introduces source incompatible changes to the RegionMergeTransaction interface:
> - Adds abstract method execute(Server, RegionServerServices, User)
> - Adds abstract method rollback(Server, RegionServerServices, User)
> HBASE-14655 introduces source incompatible changes to the Store interface:
> - Adds abstract method compact(CompactionContext, CompactionThroughputController, User)
> - Adds abstract method requestCompaction( int, CompactionRequest, User)
> Default implementations are provided for binary compatibility but implementors of these
interface won't recompile until implementations of the new methods are added.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message