From 7e4bd895909164a11fbddc2b38ed0730977b40ff Mon Sep 17 00:00:00 2001 From: Konstantin Shvachko Date: Tue, 7 Feb 2012 00:44:27 +0000 Subject: [PATCH] HDFS-2886. CreateEditLogs should generate a realistic edit log. Contributed by Konstantin Shvachko. git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1241296 13f79535-47bb-0310-9956-ffa450edef68 --- hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt | 2 ++ .../org/apache/hadoop/hdfs/server/namenode/FSDirectory.java | 5 +---- .../apache/hadoop/hdfs/server/namenode/FSEditLogLoader.java | 5 ++--- .../apache/hadoop/hdfs/server/namenode/CreateEditsLog.java | 4 +++- .../org/apache/hadoop/hdfs/server/namenode/TestEditLog.java | 4 ++-- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt index ab01424a24..66c59fae59 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt +++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt @@ -1689,6 +1689,8 @@ Release 0.22.1 - Unreleased HDFS-2718. Optimize OP_ADD in edits loading. (shv) + HDFS-2886. CreateEditLogs should generate a realistic edit log. (shv) + BUG FIXES HDFS-2877. If locking of a storage dir fails, it will remove the other diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSDirectory.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSDirectory.java index 7abdd1c070..ba045d106d 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSDirectory.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSDirectory.java @@ -313,12 +313,9 @@ public class FSDirectory implements Closeable { */ void updateFile(INodeFile file, String path, - PermissionStatus permissions, BlockInfo[] blocks, - short replication, long mtime, - long atime, - long preferredBlockSize) throws IOException { + long atime) throws IOException { // Update the salient file attributes. file.setAccessTime(atime); diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSEditLogLoader.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSEditLogLoader.java index fc28149505..4aa79dfa91 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSEditLogLoader.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSEditLogLoader.java @@ -203,9 +203,8 @@ public class FSEditLogLoader { addCloseOp.mtime, addCloseOp.atime, blockSize, addCloseOp.clientName, addCloseOp.clientMachine); } else { - fsDir.updateFile(oldFile, - addCloseOp.path, permissions, blocks, replication, - addCloseOp.mtime, addCloseOp.atime, blockSize); + fsDir.updateFile(oldFile, addCloseOp.path, blocks, + addCloseOp.mtime, addCloseOp.atime); if(addCloseOp.opCode == FSEditLogOpCodes.OP_CLOSE) { // OP_CLOSE assert oldFile.isUnderConstruction() : "File is not under construction: " + addCloseOp.path; diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/CreateEditsLog.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/CreateEditsLog.java index 818b2aacc1..4d09815283 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/CreateEditsLog.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/CreateEditsLog.java @@ -93,7 +93,9 @@ public class CreateEditsLog { dirInode = new INodeDirectory(p, 0L); editLog.logMkDir(currentDir, dirInode); } - editLog.logOpenFile(filePath, inode); + editLog.logOpenFile(filePath, + new INodeFileUnderConstruction( + p, replication, 0, blockSize, "", "", null)); editLog.logCloseFile(filePath, inode); if (currentBlockId - bidAtSync >= 2000) { // sync every 2K blocks diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestEditLog.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestEditLog.java index 50cbb38c3c..cf56c02d7a 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestEditLog.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestEditLog.java @@ -133,8 +133,8 @@ public class TestEditLog extends TestCase { for (int i = 0; i < numTransactions; i++) { INodeFileUnderConstruction inode = new INodeFileUnderConstruction( p, replication, blockSize, 0, "", "", null); - editLog.logOpenFile("/filename" + startIndex + i, inode); - editLog.logCloseFile("/filename" + startIndex + i, inode); + editLog.logOpenFile("/filename" + (startIndex + i), inode); + editLog.logCloseFile("/filename" + (startIndex + i), inode); editLog.logSync(); } }