HDFS-12884. BlockUnderConstructionFeature.truncateBlock should be of type BlockInfo. Contributed by chencan.
(cherry picked from commit 8d898ab25f1c2032a07c9bbd96ba3d0c4eb5be87) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/37403e17 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/37403e17 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/37403e17 Branch: refs/heads/branch-2.7 Commit: 37403e1755aca4f7a7a603a59345c0f4775689d9 Parents: fec04c4 Author: Konstantin V Shvachko <s...@apache.org> Authored: Wed Mar 21 16:46:03 2018 -0700 Committer: Konstantin V Shvachko <s...@apache.org> Committed: Wed Mar 21 18:27:59 2018 -0700 ---------------------------------------------------------------------- .../blockmanagement/BlockInfoContiguousUnderConstruction.java | 6 +++--- .../org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java | 5 +++-- .../java/org/apache/hadoop/hdfs/server/namenode/INode.java | 6 ++---- .../hadoop/hdfs/server/namenode/snapshot/FileDiffList.java | 3 +-- 4 files changed, 9 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/37403e17/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockInfoContiguousUnderConstruction.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockInfoContiguousUnderConstruction.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockInfoContiguousUnderConstruction.java index 1342c84..409295a 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockInfoContiguousUnderConstruction.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockInfoContiguousUnderConstruction.java @@ -57,7 +57,7 @@ public class BlockInfoContiguousUnderConstruction extends BlockInfoContiguous { /** * The block source to use in the event of copy-on-write truncate. */ - private Block truncateBlock; + private BlockInfoContiguous truncateBlock; /** * ReplicaUnderConstruction contains information about replicas while @@ -233,11 +233,11 @@ public class BlockInfoContiguousUnderConstruction extends BlockInfoContiguous { } /** Get recover block */ - public Block getTruncateBlock() { + public BlockInfoContiguous getTruncateBlock() { return truncateBlock; } - public void setTruncateBlock(Block recoveryBlock) { + public void setTruncateBlock(BlockInfoContiguous recoveryBlock) { this.truncateBlock = recoveryBlock; } http://git-wip-us.apache.org/repos/asf/hadoop/blob/37403e17/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java index bedf7e8..b458900 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java @@ -2192,7 +2192,8 @@ public class FSNamesystem implements Namesystem, FSNamesystemMBean, oldBlock = file.getLastBlock(); assert !oldBlock.isComplete() : "oldBlock should be under construction"; truncatedBlockUC = (BlockInfoContiguousUnderConstruction) oldBlock; - truncatedBlockUC.setTruncateBlock(new Block(oldBlock)); + truncatedBlockUC.setTruncateBlock(new BlockInfoContiguous(oldBlock, + file.getBlockReplication())); truncatedBlockUC.getTruncateBlock().setNumBytes( oldBlock.getNumBytes() - lastBlockDelta); truncatedBlockUC.getTruncateBlock().setGenerationStamp( @@ -4069,7 +4070,7 @@ public class FSNamesystem implements Namesystem, FSNamesystemMBean, case UNDER_RECOVERY: final BlockInfoContiguousUnderConstruction uc = (BlockInfoContiguousUnderConstruction)lastBlock; // determine if last block was intended to be truncated - Block recoveryBlock = uc.getTruncateBlock(); + BlockInfoContiguous recoveryBlock = uc.getTruncateBlock(); boolean truncateRecovery = recoveryBlock != null; boolean copyOnTruncate = truncateRecovery && recoveryBlock.getBlockId() != uc.getBlockId(); http://git-wip-us.apache.org/repos/asf/hadoop/blob/37403e17/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INode.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INode.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INode.java index b23b989..d4659ce 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INode.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INode.java @@ -879,14 +879,12 @@ public abstract class INode implements INodeAttributes, Diff.Element<byte[]> { if(!(toDelete instanceof BlockInfoContiguousUnderConstruction)) { return; } - Block truncateBlock = + BlockInfoContiguous truncateBlock = ((BlockInfoContiguousUnderConstruction)toDelete).getTruncateBlock(); if(truncateBlock == null || truncateBlock.equals(toDelete)) { return; } - assert truncateBlock instanceof BlockInfoContiguous : - "should be BlockInfoContiguous"; - addDeleteBlock((BlockInfoContiguous) truncateBlock); + addDeleteBlock(truncateBlock); } public void removeDeleteBlock(Block block) { http://git-wip-us.apache.org/repos/asf/hadoop/blob/37403e17/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/snapshot/FileDiffList.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/snapshot/FileDiffList.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/snapshot/FileDiffList.java index 5c9e121..6e735d3 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/snapshot/FileDiffList.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/snapshot/FileDiffList.java @@ -20,7 +20,6 @@ package org.apache.hadoop.hdfs.server.namenode.snapshot; import java.util.Collections; import java.util.List; -import org.apache.hadoop.hdfs.protocol.Block; import org.apache.hadoop.hdfs.server.blockmanagement.BlockInfoContiguous; import org.apache.hadoop.hdfs.server.blockmanagement.BlockInfoContiguousUnderConstruction; import org.apache.hadoop.hdfs.server.blockmanagement.BlockStoragePolicySuite; @@ -130,7 +129,7 @@ public class FileDiffList extends } // Check if last block is part of truncate recovery BlockInfoContiguous lastBlock = file.getLastBlock(); - Block dontRemoveBlock = null; + BlockInfoContiguous dontRemoveBlock = null; if(lastBlock != null && lastBlock.getBlockUCState().equals( HdfsServerConstants.BlockUCState.UNDER_RECOVERY)) { dontRemoveBlock = ((BlockInfoContiguousUnderConstruction) lastBlock) --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org