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-7285) Erasure Coding Support inside HDFS
Date Mon, 29 Jun 2015 23:17:13 GMT

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

Zhe Zhang commented on HDFS-7285:
---------------------------------

I just finished another pass of the consolidated patch. The github [repo | https://github.com/zhe-thoughts/hadoop/tree/HDFS-EC-Merge]
has the latest code. I divided the consolidated patch into 13 sub-patches. Please let me know
if the list looks reasonable to you.
{code}
    13. Balancer and mover support for striped block groups
    12. Support striped block groups in fsimage and edit logs
    11. Change fsck to support EC files
    10. Add striped block support in INodeFile.
    9. Datanode support
    8. Distribute recovery work for striped blocks to DataNode.
    7. Client side support
    6. Create LocatedStripedBlock abstraction to represent striped block groups.
    5. BlockPlacementPolicies for erasure coding
    4. Allocate and manage striped blocks in NameNode blockmanagement module.
    3. Extend BlockInfo to handle striped block groups.
    2. Support Erasure Coding Zones.
    1. HADOOP-COMMON side support for codec calculations.
{code}

I still haven't added tests to the sub-patches. Also the {{INodeFile}} implementation is still
being discussed. They'll be addressed in the next pass.

In the next pass, to ensure we capture all latest branch changes, I will do the following:
# Take a latest consolidated patch from HDFS-7285
# Examine each file (if necessary, each diff in a file) in the patch and fit them into one
of the 13 sub-patches (or discard as pre-merged changes).

The consolidated patch has roughly 25k lines of code. So any volunteered help is much appreciated
:)

> Erasure Coding Support inside HDFS
> ----------------------------------
>
>                 Key: HDFS-7285
>                 URL: https://issues.apache.org/jira/browse/HDFS-7285
>             Project: Hadoop HDFS
>          Issue Type: New Feature
>            Reporter: Weihua Jiang
>            Assignee: Zhe Zhang
>         Attachments: ECAnalyzer.py, ECParser.py, HDFS-7285-initial-PoC.patch, HDFS-EC-Merge-PoC-20150624.patch,
HDFS-bistriped.patch, HDFSErasureCodingDesign-20141028.pdf, HDFSErasureCodingDesign-20141217.pdf,
HDFSErasureCodingDesign-20150204.pdf, HDFSErasureCodingDesign-20150206.pdf, HDFSErasureCodingPhaseITestPlan.pdf,
fsimage-analysis-20150105.pdf
>
>
> Erasure Coding (EC) can greatly reduce the storage overhead without sacrifice of data
reliability, comparing to the existing HDFS 3-replica approach. For example, if we use a 10+4
Reed Solomon coding, we can allow loss of 4 blocks, with storage overhead only being 40%.
This makes EC a quite attractive alternative for big data storage, particularly for cold data.

> Facebook had a related open source project called HDFS-RAID. It used to be one of the
contribute packages in HDFS but had been removed since Hadoop 2.0 for maintain reason. The
drawbacks are: 1) it is on top of HDFS and depends on MapReduce to do encoding and decoding
tasks; 2) it can only be used for cold files that are intended not to be appended anymore;
3) the pure Java EC coding implementation is extremely slow in practical use. Due to these,
it might not be a good idea to just bring HDFS-RAID back.
> We (Intel and Cloudera) are working on a design to build EC into HDFS that gets rid of
any external dependencies, makes it self-contained and independently maintained. This design
lays the EC feature on the storage type support and considers compatible with existing HDFS
features like caching, snapshot, encryption, high availability and etc. This design will also
support different EC coding schemes, implementations and policies for different deployment
scenarios. By utilizing advanced libraries (e.g. Intel ISA-L library), an implementation can
greatly improve the performance of EC encoding/decoding and makes the EC solution even more
attractive. We will post the design document soon. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message