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

Jason Lowe commented on HADOOP-10506:
-------------------------------------

bq.  LimitedPrivate does not imply backwards compatibility since the 
LimitedPrivate APIs could be Unstable. It just means that the depended 
components are using the API.

The problem is if we ignore backwards compatibility when changing classes 
marked LimitedPrivate used by downstream components then we are creating a 
knife-switch type of upgrade, where upgrading the Hadoop core requires a 
simultaneous corresponding update of 
hive/pig/hbase/pick-your-favorite-LimitedPrivate-user.  That becomes 
particularly problematic when supporting a rolling upgrade of the cluster, as 
tasks launched by the downstream component on new nodes may suddenly fail to 
find a LimitedPrivate method/class they relied upon.  IMHO that means we need 
to preserve backwards compatibility for LimitedPrivate APIs otherwise we can't 
do rolling upgrades when those APIs break.

> LimitedPrivate annotation not useful
> ------------------------------------
>
>                 Key: HADOOP-10506
>                 URL: https://issues.apache.org/jira/browse/HADOOP-10506
>             Project: Hadoop Common
>          Issue Type: Bug
>    Affects Versions: 3.0.0, 2.4.0
>            Reporter: Thomas Graves
>
> The LimitedPrivate annotation isn't useful.  The intention seems to have been 
> those interfaces were only intended to be used by these components.  But in 
> many cases those components are separate from core hadoop.  This means any 
> changes to them will break backwards compatibility with those, which breaks 
> the new compatibility rules in Hadoop.  
> Note that many of the annotation are also not marked properly, or have fallen 
> out of date.  I see Public Interfaces that use LimitedPrivate classes in the 
> api.  (TokenCache using Credentials is an example). 



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to