HDFS-8719. Erasure Coding: client generates too many small packets when writing parity data. Contributed by Li Bo.
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/91d0873c Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/91d0873c Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/91d0873c Branch: refs/heads/HDFS-7285-REBASE Commit: 91d0873cba1950fd45a7004499129b9c2cae8c71 Parents: 3a24001 Author: Walter Su <[email protected]> Authored: Thu Jul 9 16:18:05 2015 +0800 Committer: Vinayakumar B <[email protected]> Committed: Thu Aug 13 17:18:40 2015 +0530 ---------------------------------------------------------------------- hadoop-hdfs-project/hadoop-hdfs/CHANGES-HDFS-EC-7285.txt | 3 +++ .../src/main/java/org/apache/hadoop/hdfs/DFSOutputStream.java | 4 +--- .../main/java/org/apache/hadoop/hdfs/DFSStripedOutputStream.java | 1 + 3 files changed, 5 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/91d0873c/hadoop-hdfs-project/hadoop-hdfs/CHANGES-HDFS-EC-7285.txt ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/CHANGES-HDFS-EC-7285.txt b/hadoop-hdfs-project/hadoop-hdfs/CHANGES-HDFS-EC-7285.txt index 58b91b6..cdbef05 100755 --- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES-HDFS-EC-7285.txt +++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES-HDFS-EC-7285.txt @@ -332,3 +332,6 @@ HDFS-8461. Erasure coding: fix priority level of UnderReplicatedBlocks for striped block. (Walter Su via jing9) + + HDFS-8719. Erasure Coding: client generates too many small packets when + writing parity data. (Li Bo via waltersu4549) http://git-wip-us.apache.org/repos/asf/hadoop/blob/91d0873c/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSOutputStream.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSOutputStream.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSOutputStream.java index 7e8dd21..088f6dd 100755 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSOutputStream.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSOutputStream.java @@ -24,8 +24,6 @@ import java.nio.channels.ClosedChannelException; import java.util.EnumSet; import java.util.concurrent.atomic.AtomicReference; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import org.apache.hadoop.HadoopIllegalArgumentException; import org.apache.hadoop.classification.InterfaceAudience; import org.apache.hadoop.crypto.CryptoProtocolVersion; @@ -457,7 +455,7 @@ public class DFSOutputStream extends FSOutputSummer * write filled up its partial chunk. Tell the summer to generate full * crc chunks from now on. */ - private void adjustChunkBoundary() { + protected void adjustChunkBoundary() { if (getStreamer().getAppendChunk() && getStreamer().getBytesCurBlock() % bytesPerChecksum == 0) { getStreamer().setAppendChunk(false); http://git-wip-us.apache.org/repos/asf/hadoop/blob/91d0873c/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSStripedOutputStream.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSStripedOutputStream.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSStripedOutputStream.java index a18a30b..5e80b46 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSStripedOutputStream.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSStripedOutputStream.java @@ -318,6 +318,7 @@ public class DFSStripedOutputStream extends DFSOutputStream { private synchronized StripedDataStreamer setCurrentStreamer(int i) { streamer = streamers.get(i); + adjustChunkBoundary(); return getCurrentStreamer(); }
