hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Zhe Zhang (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HDFS-8499) Refactor BlockInfo class hierarchy with static helper class
Date Fri, 17 Jul 2015 23:27:05 GMT

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

Zhe Zhang commented on HDFS-8499:

Thanks for the discussions Nicholas and Jing.

Basically, I think the long term solution to this multi-inheritance is to eliminate {{BlockInfo}}
subclassing altogether and using feature / op classes instead, like {{INodeFile}} features.
It is more explicit, clearer, and safer than relying on {{instanceof}} and type casting. Moreover,
it allows scaling to more types of {{BlockInfo}}. For example, as mentioned above, in phase
II of erasure coding we will likely support contiguous + erasure coded blocks.

*If* we agree upon the long term solution, then *A* and *B*, as Nicholas summarized, are both
intermediate states. I chose option *A* primarily to minimize change and keep trunk more stable.
A secondary reason is to get rid of duplicate code between the two UC classes. I started writing
a patch to make UC an Op class but found it much more change than contiguous / striped Op

> Refactor BlockInfo class hierarchy with static helper class
> -----------------------------------------------------------
>                 Key: HDFS-8499
>                 URL: https://issues.apache.org/jira/browse/HDFS-8499
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>          Components: namenode
>    Affects Versions: 2.7.0
>            Reporter: Zhe Zhang
>            Assignee: Zhe Zhang
>             Fix For: 2.8.0
>         Attachments: HDFS-8499.00.patch, HDFS-8499.01.patch, HDFS-8499.02.patch, HDFS-8499.03.patch,
HDFS-8499.04.patch, HDFS-8499.05.patch, HDFS-8499.06.patch, HDFS-8499.07.patch, HDFS-8499.UCFeature.patch,
> In HDFS-7285 branch, the {{BlockInfoUnderConstruction}} interface provides a common abstraction
for striped and contiguous UC blocks. This JIRA aims to merge it to trunk.

This message was sent by Atlassian JIRA

View raw message