hadoop-common-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sanjay Radia (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HADOOP-6668) Apply audience and stability annotations to classes in common
Date Wed, 12 May 2010 01:44:43 GMT

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

Sanjay Radia commented on HADOOP-6668:

Have gone through the Suresh's original proposal from HADOOP-6289 and Tom's patch and comments
on it. 
There are several areas of disagreements - I will comment on each of them separately.
Let me start with metrics - it is very instructive use case with some subtle issues.
Suresh got it mostly right in his proposal. Here is slightly modified version to highlight
reasoning behind the classification choices for metrics:
# The actual metrics themsleves - many or most  are *audience-public*;  more comfortable tagging
them *evolving* rather than *stable*.
The actual metrics have to be documented separately, since making the implementation-class
audience-pubic is not appropriate. 
** RPC metrics
** JVM Metrics
** HDFS metrics
** MR Metrics
# Interfaces for those implementing metrics (*Audience-LimitedPrivate* MR, HDFS)
Developers use these Interfaces for adding new metrics to the Hadoop system (For example classes
in item 3. use these interfaces to implement metrics)
** org/apache/hadoop/metrics/util/MetricsDynamicMBeanBase.java hdfs
** org/apache/hadoop/metrics/util/MetricsIntValue.java hdfs
** org/apache/hadoop/metrics/util/MetricsLongValue.java hdfs
** org/apache/hadoop/metrics/util/MetricsRegistry.java hdfs
** org/apache/hadoop/metrics/util/MetricsTimeVaryingInt.java hdfs
** org/apache/hadoop/metrics/util/MetricsTimeVaryingLong.java hdfs
** org/apache/hadoop/metrics/util/MetricsTimeVaryingRate.java hdfs
** org/apache/hadoop/metrics/util/MBeanUtil.java 
** org/apache/hadoop/metrics/Updater.java hdfs mapreduce
** org/apache/hadoop/metrics/MetricsUtil.java 
# Actual implementations of metrics (*Audience-Private*)
(Note the actual metrics can be public - see item 1)
** org/apache/hadoop/ipc/metrics/RpcActivityMBean.java 
** org/apache/hadoop/ipc/metrics/RpcMetrics.java 
** org/apache/hadoop/ipc/metrics/RpcMgt.java 
** org/apache/hadoop/ipc/metrics/RpcMgtMBean.java 
** org/apache/hadoop/metrics/jvm/EventCounter.java 
** org/apache/hadoop/metrics/jvm/JvmMetrics.java 
# Interfaces needed to implement the plugins (See the actual impls in item 5: Ganglia, File,
etc) - *Audience-public*, evolving
** org/apache/hadoop/metrics/spi/AbstractMetricsContext.java 
** org/apache/hadoop/metrics/spi/CompositeContext.java 
** org/apache/hadoop/metrics/spi/MetricsRecordImpl.java 
** org/apache/hadoop/metrics/spi/MetricValue.java 
** org/apache/hadoop/metrics/spi/OutputRecord.java 
** org/apache/hadoop/metrics/spi/Util.java
# The impelmentation of metrics plugins
 The actual impl is *audience-private* but the class *name* is public since the class name
is used in the config file.
 So mark the class as *audience-public*(evolving), but mark all its public methods as *audience-private*.
** org/apache/hadoop/metrics/ganglia/GangliaContext.java 
** org/apache/hadoop/metrics/file/FileContext.java hdfs
** org/apache/hadoop/metrics/spi/NoEmitMetricsContext.java 
** org/apache/hadoop/metrics/spi/NullContext.java 
** org/apache/hadoop/metrics/spi/NullContextWithUpdateThread.java 
# Metrics Framework Impl - *audience-private*
** org/apache/hadoop/metrics/MetricsContext.java hdfs mapreduce
** org/apache/hadoop/metrics/util/MetricsBase.java 
** org/apache/hadoop/metrics/MetricsRecord.java hdfs mapreduce
** org/apache/hadoop/metrics/ContextFactory.java 
** org/apache/hadoop/metrics/MetricsException.java 
** org/apache/hadoop/metrics/MetricsServlet.java 

> Apply audience and stability annotations to classes in common
> -------------------------------------------------------------
>                 Key: HADOOP-6668
>                 URL: https://issues.apache.org/jira/browse/HADOOP-6668
>             Project: Hadoop Common
>          Issue Type: Sub-task
>          Components: documentation
>            Reporter: Tom White
>            Assignee: Tom White
>            Priority: Blocker
>             Fix For: 0.21.0
>         Attachments: common.interface-tw-annotated.txt, HADOOP-6668.patch, HADOOP-6668.patch,
HADOOP-6668.patch, HADOOP-6668.patch, HADOOP-6668.patch, HADOOP-6668.patch
> Mark private implementation classes with the InterfaceAudience.Private or InterfaceAudience.LimitedPrivate
annotation to exclude them from user Javadoc and JDiff.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message