Hi,

I'd like to propose a vote to merge the HDFS-7285 feature branch back to
trunk. Since November 2014 we have been designing and developing this
feature under the umbrella JIRAs HDFS-7285 and HADOOP-11264, and have
committed approximately 210 patches.

The HDFS-7285 feature branch was created to support the first phase of HDFS
erasure coding (HDFS-EC). The objective of HDFS-EC is to significantly
reduce storage space usage in HDFS clusters. Instead of always creating 3
replicas of each block with 200% storage space overhead, HDFS-EC provides
data durability through parity data blocks. With most EC configurations,
the storage overhead is no more than 50%. Based on profiling results of
production clusters, we decided to support EC with the striped block layout
in the first phase, so that small files can be better handled. This means
dividing each logical HDFS file block into smaller units (striping cells)
and spreading them on a set of DataNodes in round-robin fashion. Parity
cells are generated for each stripe of original data cells. We have made
changes to NameNode, client, and DataNode to generalize the block concept
and handle the mapping between a logical file block and its internal
storage blocks. For further details please see the design doc on HDFS-7285.
HADOOP-11264 focuses on providing flexible and high-performance codec
calculation support.

The nightly Jenkins job of the branch has reported several successful runs,
and doesn't show new flaky tests compared with trunk. We have posted
several versions of the test plan including both unit testing and cluster
testing, and have executed most tests in the plan. The most basic
functionalities have been extensively tested and verified in several real
clusters with different hardware configurations; results have been very
stable. We have created follow-on tasks for more advanced error handling
and optimization under the umbrella HDFS-8031. We also plan to implement or
harden the integration of EC with existing features such as WebHDFS,
snapshot, append, truncate, hflush, hsync, and so forth.

Development of this feature has been a collaboration across many companies
and institutions. I'd like to thank J. Andreina, Takanobu Asanuma,
Vinayakumar B, Li Bo, Takuya Fukudome, Uma Maheswara Rao G, Rui Li, Yi Liu,
Colin McCabe, Xinwei Qin, Rakesh R, Gao Rui, Kai Sasaki, Walter Su, Tsz Wo
Nicholas Sze, Andrew Wang, Yong Zhang, Jing Zhao, Hui Zheng and Kai Zheng
for their code contributions and reviews. Andrew and Kai Zheng also made
fundamental contributions to the initial design. Rui Li, Gao Rui, Kai
Sasaki, Kai Zheng and many other contributors have made great efforts in
system testing. Many thanks go to Weihua Jiang for proposing the JIRA, and
ATM, Todd Lipcon, Silvius Rus, Suresh, as well as many others for providing
helpful feedbacks.

Following the community convention, this vote will last for 7 days (ending
September 29th). Votes from Hadoop committers are binding but non-binding
votes are very welcome as well. And here's my non-binding +1.

Thanks,
---
Zhe Zhang

Reply via email to