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 20:42:11 UTC
svn commit: r1432247 - in
/hadoop/common/branches/HDFS-2802/hadoop-hdfs-project/hadoop-hdfs:
CHANGES.txt
src/main/java/org/apache/hadoop/hdfs/server/namenode/FSImageFormat.java
Author: suresh
Date: Fri Jan 11 19:42:11 2013
New Revision: 1432247
URL: http://svn.apache.org/viewvc?rev=1432247&view=rev
Log:
HDFS-4381. Merge change r1432149 from trunk
Modified:
hadoop/common/branches/HDFS-2802/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
hadoop/common/branches/HDFS-2802/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSImageFormat.java
Modified: hadoop/common/branches/HDFS-2802/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-2802/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt?rev=1432247&r1=1432246&r2=1432247&view=diff
==============================================================================
--- hadoop/common/branches/HDFS-2802/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt (original)
+++ hadoop/common/branches/HDFS-2802/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt Fri Jan 11 19:42:11 2013
@@ -432,6 +432,9 @@ Release 2.0.3-alpha - Unreleased
HDFS-4326. bump up Tomcat version for HttpFS to 6.0.36. (tucu via acmurthy)
+ HDFS-4381. Document fsimage format details in FSImageFormat class javadoc.
+ (Jing Zhao via suresh)
+
OPTIMIZATIONS
BUG FIXES
Modified: hadoop/common/branches/HDFS-2802/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/HDFS-2802/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSImageFormat.java?rev=1432247&r1=1432246&r2=1432247&view=diff
==============================================================================
--- hadoop/common/branches/HDFS-2802/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSImageFormat.java (original)
+++ hadoop/common/branches/HDFS-2802/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSImageFormat.java Fri Jan 11 19:42:11 2013
@@ -53,7 +53,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