Home | About | Sematext search-lucene.com search-hadoop.com
NEW: Monitor These Apps!
elasticsearch, apache solr, apache hbase, hadoop, redis, casssandra, amazon cloudwatch, mysql, memcached, apache kafka, apache zookeeper, apache storm, ubuntu, centOS, red hat, debian, puppet labs, java, senseiDB
 Search Hadoop and all its subprojects:

Switch to Plain View
Hadoop >> mail # dev >> Private, LimitedPrivate and contrib modules


+
Tom White 2009-09-18, 20:29
+
Sanjay Radia 2009-11-05, 19:05
+
Dhruba Borthakur 2009-11-05, 20:15
Copy link to this message
-
Re: Private, LimitedPrivate and contrib modules

On Nov 5, 2009, at 12:15 PM, Dhruba Borthakur wrote:

> Hi sanjay,
>
> Most of the contrib modules are in the same package as their  
> containers. For
> example, the fair share scheduler is in contrib but its package name  
> is
> org.apache.hadoop.mapred. Doesn't this mean that the fair-share  
> scheduler
> code can use LimitedPrivate methods from org.apache.hadoop.mapred  
> package?
>
The package/java public private does not imply an API's visibility.
We have often made certain API's java-public because of java's  
limitations on visibility rules (eg. if java had
subpackage-private, then a number of apis would change from java-
public to java-subpackage-private.

Generally contrib should be using API that are audience-public.

The FS/C schedulers are very good examples. I assume that it is using  
the scheduler's plugin interfaces. Is it using any other internal  
interfaces of MR?

Plugin interfaces or Abstract classes that are to be used by  
implementors are current planned to be marked
audience-public. (See AbstractFileSystem).
Makes sense?

As a side note:
Perhaps we need to add tag to the audience-public of "applicationUse"  
"implementorsOfInteface" or something like that.
(like the tag for limited-private).
sanjay
>
> thanks,
> dhruba
>
> On Thu, Nov 5, 2009 at 11:05 AM, Sanjay Radia <[EMAIL PROTECTED]>  
> wrote:
>
> >
> > Sorry for the late reply .. I missed in in my inbox.
> >
> > On Sep 18, 2009, at 1:29 PM, Tom White wrote:
> >
> >  I'm trying to better understand the meaning of the annotations  
> defined
> >> in org.apache.hadoop.classification.InterfaceAudience.
> >>
> >> 1. Private is documented as being "Intended for use only within  
> Hadoop
> >> itself". Does this mean the whole Hadoop project, or the subproject
> >> that the annotated element is in? (Or another scope?)
> >>
> >>
> >
> > Private means private to the subproject (ie private to HDFS, to  
> MR, etc).
> > We should update the doc to clarify this.
> >
> >>
> >> 2. Is a contrib module considered to be a part of the subproject?  
> For
> >> example, if something is marked as LimitedPrivate in Common say,  
> with
> >> intended audience MapReduce, can MapReduce contrib modules use it?
> >>
> >>
> > I believe the answer should be no.
> >
> >> Or, assuming the second meaning for 1, if something is marked as
> >> Private in MapReduce, can MapReduce contrib modules use it?
> >>
> >>
> > Again I believe the answer should be no.
> >
> > Any concrete examples that we can  use to examine/discuss this  
> further
> >
> >>
> >> Thanks,
> >> Tom
> >>
> >>
> >
>
>
> --
> Connect to me at http://www.facebook.com/dhruba
>

NEW: Monitor These Apps!
elasticsearch, apache solr, apache hbase, hadoop, redis, casssandra, amazon cloudwatch, mysql, memcached, apache kafka, apache zookeeper, apache storm, ubuntu, centOS, red hat, debian, puppet labs, java, senseiDB