[
https://issues.apache.org/jira/browse/HDFS-8499?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14639629#comment-14639629
]
Zhe Zhang commented on HDFS-8499:
---------------------------------
bq. Do you agree that Design #2 does not break trunk as you described
previously? Please answer this question.
[~szetszwo] I realized one of my previous comments might be ambiguous,
apologies.
* I agree with you Design #2 doesn't break the fact that both UC classes are
eventually subclassing {{BlockInfo}}.
* I was pointing out that {{BlockInfoUnderConstruction}} itself no longer is-a
{{BlockInfo}}. That changes how NN uses {{BlockInfoUnderConstruction}}. I plan
to change it anyway in HDFS-8796.
bq. In your comment, you try to force both UC implementations to be the same.
But we do want the flexibility to have different implementation.
In the beginning of the project we chose to extend {{BlockInfo}} to handle
block groups, instead of building something like {{BlockGroupInfo}} from
scratch. One of the most important reasons was that most block mgmt logics
(including UC logic) are orthogonal to striping logic. Conceptually (and
ideally), when we see a need to implement a non-EC logic differently for
contiguous and striped blocks, we should generalize that logic to handle both
formats. Jing's work on {{BlockInfo#hasNoStorage()}},
{{BlockManager#hasMinStorage()}} (and many more) are excellent examples.
> 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, HDFS-bistriped.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
(v6.3.4#6332)