You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Andrew Purtell (JIRA)" <ji...@apache.org> on 2015/12/07 22:55:11 UTC

[jira] [Commented] (HBASE-14944) Minimize or eliminate source incompatible changes due to HBASE-14605, HBASE-14631, and HBASE-14655

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

Andrew Purtell commented on HBASE-14944:
----------------------------------------

For SplitTransaction and RegionMergeTransaction we could add add new methods getRequestUser and setRequestUser for accessing the request user (and setting it), but this leaves us with the same problem, new abstract methods, because these are both interfaces.

For the compaction related changes to Store we can carry around the request User within CompactionContext and CompactionRequest. CompactionContext is private. CompactionRequest is LP(Coprocessor). However both are abstract classes so by providing implementations of getters and setters we won't cause source or binary compat problems. We would however introduce changes where code written against new release N won't compile after rollback to N-1. 

Any other ideas [~ndimiduk], [~ted_yu] ?

Also for sake of completness, we also have the option of reverting the chain of commits leading to this point back to the original security bug fix for secure bulk load, and advise in the troubleshooting section of the manual and/or release notes that we can't fix the problem in 1.0 or 1.1.

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