hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Joe Pallas (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HDFS-5631) Expose interfaces required by FsDatasetSpi implementations
Date Wed, 07 Jan 2015 20:13:34 GMT

    [ https://issues.apache.org/jira/browse/HDFS-5631?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14268147#comment-14268147

Joe Pallas commented on HDFS-5631:

Yes, the ExternalDatasetImpl would need to be updated for changes to the SPI, just as SimulatedFSDataset
needs to be updated.

Why, then is ExternalDatasetImpl even necessary?  Because the goal of ExternalDatasetImpl
is to guarantee that all the classes necessary to implement the interface are (and remain)
publicly accessible, and SimulatedFSDataset doesn't do that (because it resides in the same
package as the interface, org.apache.hadoop.hdfs.server.datanode).

Also, the test classes make sure that constructors for the necessary classes are visible,
which SimulatedFSDataset would not do even if it were moved into a different package.

There's some burden placed on people who want to make changes to the SPI, but that's probably
a good thing.  Changes to the SPI should not be made casually, because they may have impact
outside of HDFS.

> Expose interfaces required by FsDatasetSpi implementations
> ----------------------------------------------------------
>                 Key: HDFS-5631
>                 URL: https://issues.apache.org/jira/browse/HDFS-5631
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>          Components: datanode
>    Affects Versions: 3.0.0
>            Reporter: David Powell
>            Assignee: David Powell
>            Priority: Minor
>         Attachments: HDFS-5631.patch, HDFS-5631.patch
> This sub-task addresses section 4.1 of the document attached to HDFS-5194,
> the exposure of interfaces needed by a FsDatasetSpi implementation.
> Specifically it makes ChunkChecksum public and BlockMetadataHeader's
> readHeader() and writeHeader() methods public.
> The changes to BlockReaderUtil (and related classes) discussed by section
> 4.1 are only needed if supporting short-circuit, and should be addressed
> as part of an effort to provide such support rather than this JIRA.
> To help ensure these changes are complete and are not regressed in the
> future, tests that gauge the accessibility (though *not* behavior)
> of interfaces needed by a FsDatasetSpi subclass are also included.
> These take the form of a dummy FsDatasetSpi subclass -- a successful
> compilation is effectively a pass.  Trivial unit tests are included so
> that there is something tangible to track.

This message was sent by Atlassian JIRA

View raw message