[
https://issues.apache.org/jira/browse/HDFS-7369?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Zhe Zhang updated HDFS-7369:
----------------------------
Attachment: HDFS-7369-001.patch
The main change in this patch is to extend existing {{ReplicationWork}} class
in {{BlockManager}}
# Create a new parent class {{BlockRecoveryWork}} to abstract the common
properties of replication- and EC-based recovery task
# Create a subclass {{ErasureCodingWork}} with EC-specific logic
A re-replication task works in a pushing mode, with 1 source (pusher) and
multiple targets. A EC-based recovery task works in a pull mode, with multiple
sources and 1 target (puller). Therefore the {{BlockRecoveryWork}} has both
sources and targets as arrays. {{ReplicationWork}} and {{ErasureCodingWork}}
picks the first element from the corresponding array as their source/target. An
{{ErasureCodingWork}} should also record the index of the missing block, which
is a TODO to be added in the next rev or another JIRA.
> Erasure coding: distribute block recovery work to DataNode
> ----------------------------------------------------------
>
> Key: HDFS-7369
> URL: https://issues.apache.org/jira/browse/HDFS-7369
> Project: Hadoop HDFS
> Issue Type: Sub-task
> Reporter: Zhe Zhang
> Assignee: Zhe Zhang
> Attachments: HDFS-7369-000-part1.patch, HDFS-7369-000-part2.patch,
> HDFS-7369-001.patch
>
>
> This JIRA updates NameNode to handle background / offline recovery of erasure
> coded blocks. It includes 2 parts:
> # Extend {{UnderReplicatedBlocks}} to recognize EC blocks and insert them to
> appropriate priority levels.
> # Update {{ReplicationMonitor}} to distinguish block codec tasks and send a
> new DataNode command.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)