Hadoop Common
  1. Hadoop Common
  2. HADOOP-6289

Add interface classification stable & scope to common

    Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Major Major
    • Resolution: Duplicate
    • Affects Version/s: 0.21.0
    • Fix Version/s: 0.21.0
    • Component/s: None
    • Labels:
      None
    1. common.interface.txt
      19 kB
      Suresh Srinivas

      Issue Links

        Activity

        Hide
        Suresh Srinivas added a comment -

        Attached file has interface classification for classes in hadoop common. This needs extensive review.
        How InterfaceAudience classification was done:

        1. Classes that are expected to be used by the applications are tagged as Public
        2. Searched for uses of clasess from common in hdfs and mapreduce, with the exception of tests. The classes used in hdfs and mapreduce are classified as LimitedPrivate with projects set to (HDFS, MAPREDUCE).
        3. Rest of the classes are marked as Private.

        How InterfaceStability classification was done:

        1. All Audience=Public classes are marked either Stable or Evolving based on its stability. All Evolving classes are candidates for eventually becoming Stable.
        2. All the super classes of Stable or Evolving classess, the return values and the parameters in public methods are recursively marked Stable/Evolving.

        How labeling will be done:

        1. Classes that are private and unstable are not labelled.
        2. Classes that are marked as stable will need backward/forward compatibility tests.

        Open issues:

        1. A separate jira is needed to track writing tests for backward/forward compatility of Stable classes.
        2. Labelng clarifies where a class can be used and the stability expectation. But there is no tool available to check if a class is being misused. Alternatively instead of tool, we could have separate jars (a jar for application, a jar for internal projects and a jar with all the classes?). Applications use a jar that includes only classes relevant to it, avoiding misuse of classes. tool or separate jars. Will open a separate jira track this.
        Show
        Suresh Srinivas added a comment - Attached file has interface classification for classes in hadoop common. This needs extensive review. How InterfaceAudience classification was done: Classes that are expected to be used by the applications are tagged as Public Searched for uses of clasess from common in hdfs and mapreduce, with the exception of tests. The classes used in hdfs and mapreduce are classified as LimitedPrivate with projects set to (HDFS, MAPREDUCE). Rest of the classes are marked as Private. How InterfaceStability classification was done: All Audience=Public classes are marked either Stable or Evolving based on its stability. All Evolving classes are candidates for eventually becoming Stable. All the super classes of Stable or Evolving classess, the return values and the parameters in public methods are recursively marked Stable/Evolving. How labeling will be done: Classes that are private and unstable are not labelled. Classes that are marked as stable will need backward/forward compatibility tests. Open issues: A separate jira is needed to track writing tests for backward/forward compatility of Stable classes. Labelng clarifies where a class can be used and the stability expectation. But there is no tool available to check if a class is being misused. Alternatively instead of tool, we could have separate jars (a jar for application, a jar for internal projects and a jar with all the classes?). Applications use a jar that includes only classes relevant to it, avoiding misuse of classes. tool or separate jars. Will open a separate jira track this.
        Hide
        Hong Tang added a comment -

        TFile should be public evolving. Specifically, all public classes under o.a.h.io.file.tfile are public-evolving. The rest are private-unstable.

        Show
        Hong Tang added a comment - TFile should be public evolving. Specifically, all public classes under o.a.h.io.file.tfile are public-evolving. The rest are private-unstable.
        Hide
        Tom White added a comment -

        Duplicate of HADOOP-6668.

        Show
        Tom White added a comment - Duplicate of HADOOP-6668 .

          People

          • Assignee:
            Suresh Srinivas
            Reporter:
            Suresh Srinivas
          • Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development