You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-commits@hadoop.apache.org by su...@apache.org on 2013/01/11 18:03:10 UTC
svn commit: r1432153 - in
/hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs: CHANGES.txt
src/main/java/org/apache/hadoop/hdfs/server/namenode/FSImageFormat.java
Author: suresh
Date: Fri Jan 11 17:03:09 2013
New Revision: 1432153
URL: http://svn.apache.org/viewvc?rev=1432153&view=rev
Log:
HDFS-4381. Merge 1432149 from trunk
Modified:
hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSImageFormat.java
Modified: hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt?rev=1432153&r1=1432152&r2=1432153&view=diff
==============================================================================
--- hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt (original)
+++ hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt Fri Jan 11 17:03:09 2013
@@ -188,6 +188,9 @@ Release 2.0.3-alpha - Unreleased
HDFS-4377. Some trivial DN comment cleanup. (eli)
+ HDFS-4381. Document fsimage format details in FSImageFormat class javadoc.
+ (Jing Zhao via suresh)
+
OPTIMIZATIONS
BUG FIXES
Modified: hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSImageFormat.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSImageFormat.java?rev=1432153&r1=1432152&r2=1432153&view=diff
==============================================================================
--- hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSImageFormat.java (original)
+++ hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSImageFormat.java Fri Jan 11 17:03:09 2013
@@ -48,7 +48,57 @@ import org.apache.hadoop.io.MD5Hash;
import org.apache.hadoop.io.Text;
/**
- * Contains inner classes for reading or writing the on-disk format for FSImages.
+ * Contains inner classes for reading or writing the on-disk format for
+ * FSImages.
+ *
+ * In particular, the format of the FSImage looks like:
+ * <pre>
+ * FSImage {
+ * LayoutVersion: int, NamespaceID: int, NumberItemsInFSDirectoryTree: long,
+ * NamesystemGenerationStamp: long, TransactionID: long
+ * {FSDirectoryTree, FilesUnderConstruction, SecretManagerState} (can be compressed)
+ * }
+ *
+ * FSDirectoryTree (if {@link Feature#FSIMAGE_NAME_OPTIMIZATION} is supported) {
+ * INodeInfo of root, NumberOfChildren of root: int
+ * [list of INodeInfo of root's children],
+ * [list of INodeDirectoryInfo of root's directory children]
+ * }
+ *
+ * FSDirectoryTree (if {@link Feature#FSIMAGE_NAME_OPTIMIZATION} not supported){
+ * [list of INodeInfo of INodes in topological order]
+ * }
+ *
+ * INodeInfo {
+ * {
+ * LocalName: short + byte[]
+ * } when {@link Feature#FSIMAGE_NAME_OPTIMIZATION} is supported
+ * or
+ * {
+ * FullPath: byte[]
+ * } when {@link Feature#FSIMAGE_NAME_OPTIMIZATION} is not supported
+ * ReplicationFactor: short, ModificationTime: long,
+ * AccessTime: long, PreferredBlockSize: long,
+ * NumberOfBlocks: int (-1 for INodeDirectory, -2 for INodeSymLink),
+ * {
+ * NsQuota: long, DsQuota: long, FsPermission: short, PermissionStatus
+ * } for INodeDirectory
+ * or
+ * {
+ * SymlinkString, FsPermission: short, PermissionStatus
+ * } for INodeSymlink
+ * or
+ * {
+ * [list of BlockInfo], FsPermission: short, PermissionStatus
+ * } for INodeFile
+ * }
+ *
+ * INodeDirectoryInfo {
+ * FullPath of the directory: short + byte[],
+ * NumberOfChildren: int, [list of INodeInfo of children INode]
+ * [list of INodeDirectoryInfo of the directory children]
+ * }
+ * </pre>
*/
@InterfaceAudience.Private
@InterfaceStability.Evolving