dragon created HDFS-9965:
----------------------------

             Summary: CLONE - Representing striped block groups in NameNode 
with hierarchical naming protocol
                 Key: HDFS-9965
                 URL: https://issues.apache.org/jira/browse/HDFS-9965
             Project: Hadoop HDFS
          Issue Type: Sub-task
            Reporter: dragon
            Assignee: Zhe Zhang


All erasure codec operations center around the concept of _block group_; they 
are formed in initial encoding and looked up in recoveries and conversions. A 
lightweight class {{BlockGroup}} is created to record the original and parity 
blocks in a coding group, as well as a pointer to the codec schema (pluggable 
codec schemas will be supported in HDFS-7337). With the striping layout, the 
HDFS client needs to operate on all blocks in a {{BlockGroup}} concurrently. 
Therefore we propose to extend a file’s inode to switch between _contiguous_ 
and _striping_ modes, with the current mode recorded in a binary flag. An array 
of BlockGroups (or BlockGroup IDs) is added, which remains empty for 
“traditional” HDFS files with contiguous block layout.

The NameNode creates and maintains {{BlockGroup}} instances through the new 
{{ECManager}} component; the attached figure has an illustration of the 
architecture. As a simple example, when a {_Striping+EC_} file is created and 
written to, it will serve requests from the client to allocate new 
{{BlockGroups}} and store them under the {{INodeFile}}. In the current phase, 
{{BlockGroups}} are allocated both in initial online encoding and in the 
conversion from replication to EC. {{ECManager}} also facilitates the lookup of 
{{BlockGroup}} information for block recovery work.



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

Reply via email to