HDFS-8167. BlockManager.addBlockCollectionWithCheck should check if the block is a striped block. Contributed by Hui Zheng.
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/c1aa8f54 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/c1aa8f54 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/c1aa8f54 Branch: refs/heads/HDFS-7285 Commit: c1aa8f542b2e724aa954b6324320db040d3f742d Parents: 0559d00 Author: Zhe Zhang <z...@apache.org> Authored: Fri Apr 17 12:05:31 2015 -0700 Committer: Zhe Zhang <z...@apache.org> Committed: Mon May 11 11:36:15 2015 -0700 ---------------------------------------------------------------------- .../hadoop-hdfs/CHANGES-HDFS-EC-7285.txt | 2 ++ .../hdfs/server/blockmanagement/BlockManager.java | 18 ++++-------------- 2 files changed, 6 insertions(+), 14 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/c1aa8f54/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 78ca6d3..0ed61cd 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES-HDFS-EC-7285.txt +++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES-HDFS-EC-7285.txt @@ -85,3 +85,5 @@ HDFS-7994. Detect if resevered EC Block ID is already used during namenode startup. (Hui Zheng via szetszwo) + + HDFS-8167. BlockManager.addBlockCollectionWithCheck should check if the block is a striped block. (Hui Zheng via zhz). http://git-wip-us.apache.org/repos/asf/hadoop/blob/c1aa8f54/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 5b554b3..f7b1fda 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 @@ -2932,15 +2932,6 @@ public class BlockManager { } /** - * Set the value of whether there are any non-EC blocks using StripedID. - * - * @param has - the value of whether there are any non-EC blocks using StripedID. - */ - public void hasNonEcBlockUsingStripedID(boolean has){ - hasNonEcBlockUsingStripedID = has; - } - - /** * Process a single possibly misreplicated block. This adds it to the * appropriate queues if necessary, and returns a result code indicating * what happened with it. @@ -3547,7 +3538,7 @@ public class BlockManager { if (BlockIdManager.isStripedBlockID(block.getBlockId())) { info = blocksMap.getStoredBlock( new Block(BlockIdManager.convertToStripedID(block.getBlockId()))); - if ((info == null) && hasNonEcBlockUsingStripedID()){ + if ((info == null) && hasNonEcBlockUsingStripedID){ info = blocksMap.getStoredBlock(block); } } else { @@ -3731,10 +3722,9 @@ public class BlockManager { */ public BlockInfo addBlockCollectionWithCheck( BlockInfo block, BlockCollection bc) { - if (!hasNonEcBlockUsingStripedID()){ - if (BlockIdManager.isStripedBlockID(block.getBlockId())) { - hasNonEcBlockUsingStripedID(true); - } + if (!hasNonEcBlockUsingStripedID && !block.isStriped() && + BlockIdManager.isStripedBlockID(block.getBlockId())) { + hasNonEcBlockUsingStripedID = true; } return addBlockCollection(block, bc); }