HDFS-8484. Erasure coding: Two contiguous blocks occupy IDs belong to same striped group. Contributed by Walter Su.
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/61b228a9 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/61b228a9 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/61b228a9 Branch: refs/heads/HDFS-7285-REBASE Commit: 61b228a96c8c47c502f778a7260721db6a49105b Parents: 05acfd4 Author: Jing Zhao <[email protected]> Authored: Thu Jul 9 14:07:37 2015 -0700 Committer: Vinayakumar B <[email protected]> Committed: Thu Aug 13 17:19:11 2015 +0530 ---------------------------------------------------------------------- .../hadoop-hdfs/CHANGES-HDFS-EC-7285.txt | 3 +++ .../server/blockmanagement/BlockManager.java | 20 +++++++++++--------- 2 files changed, 14 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/61b228a9/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 7db7f15..90f6732 100755 --- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES-HDFS-EC-7285.txt +++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES-HDFS-EC-7285.txt @@ -338,3 +338,6 @@ HDFS-8563. Erasure Coding: fsck handles file smaller than a full stripe. (Walter Su via jing9) + + HDFS-8484. Erasure coding: Two contiguous blocks occupy IDs belong to same + striped group. (Walter Su via jing9) http://git-wip-us.apache.org/repos/asf/hadoop/blob/61b228a9/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManager.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManager.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManager.java index d951d3f..971d38c 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManager.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManager.java @@ -3749,17 +3749,19 @@ public class BlockManager implements BlockStatsMXBean { } public BlockInfo getStoredBlock(Block block) { - BlockInfo info = null; - if (BlockIdManager.isStripedBlockID(block.getBlockId())) { - info = blocksMap.getStoredBlock( + if (!BlockIdManager.isStripedBlockID(block.getBlockId())) { + return blocksMap.getStoredBlock(block); + } + if (!hasNonEcBlockUsingStripedID) { + return blocksMap.getStoredBlock( new Block(BlockIdManager.convertToStripedID(block.getBlockId()))); - if ((info == null) && hasNonEcBlockUsingStripedID){ - info = blocksMap.getStoredBlock(block); - } - } else { - info = blocksMap.getStoredBlock(block); } - return info; + BlockInfo info = blocksMap.getStoredBlock(block); + if (info != null) { + return info; + } + return blocksMap.getStoredBlock( + new Block(BlockIdManager.convertToStripedID(block.getBlockId()))); } /** updates a block in under replication queue */
