diff --git a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt index d9a678f166..3fe7c9c5cb 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt +++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt @@ -1,5 +1,14 @@ Hadoop HDFS Change Log +Branch-2802 Snapshot (Unreleased) + + NEW FEATURES + + HDFS-4076. Support snapshot of single files. (szetszwo) + + HDFS-4082. Add editlog opcodes for snapshot create and delete operations. + (suresh via szetszwo) + Trunk (Unreleased) INCOMPATIBLE CHANGES diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSEditLog.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSEditLog.java index f7ccb552d9..c64d85a121 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSEditLog.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSEditLog.java @@ -44,14 +44,12 @@ import org.apache.hadoop.hdfs.server.common.Storage.FormatConfirmable; import org.apache.hadoop.hdfs.server.common.Storage.StorageDirectory; import org.apache.hadoop.hdfs.server.namenode.FSEditLogOp.AddOp; -import org.apache.hadoop.hdfs.server.namenode.FSEditLogOp.AllowSnapshotOp; import org.apache.hadoop.hdfs.server.namenode.FSEditLogOp.CancelDelegationTokenOp; import org.apache.hadoop.hdfs.server.namenode.FSEditLogOp.CloseOp; import org.apache.hadoop.hdfs.server.namenode.FSEditLogOp.ConcatDeleteOp; import org.apache.hadoop.hdfs.server.namenode.FSEditLogOp.CreateSnapshotOp; import org.apache.hadoop.hdfs.server.namenode.FSEditLogOp.DeleteOp; import org.apache.hadoop.hdfs.server.namenode.FSEditLogOp.DeleteSnapshotOp; -import org.apache.hadoop.hdfs.server.namenode.FSEditLogOp.DisallowSnapshotOp; import org.apache.hadoop.hdfs.server.namenode.FSEditLogOp.GetDelegationTokenOp; import org.apache.hadoop.hdfs.server.namenode.FSEditLogOp.LogSegmentOp; import org.apache.hadoop.hdfs.server.namenode.FSEditLogOp.MkdirOp; @@ -879,18 +877,6 @@ void logDeleteSnapshot(String snapName, String snapRoot) { logEdit(op); } - void logAllowSnapshot(String snapName, String snapRoot) { - AllowSnapshotOp op = AllowSnapshotOp.getInstance(cache.get()) - .setSnapshotRoot(snapRoot); - logEdit(op); - } - - void logDisallowSnapshot(String snapName, String snapRoot) { - DisallowSnapshotOp op = DisallowSnapshotOp.getInstance(cache.get()) - .setSnapshotRoot(snapRoot); - logEdit(op); - } - /** * Get all the journals this edit log is currently operating on. */ diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSEditLogOp.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSEditLogOp.java index d819543f7c..743cbf091e 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSEditLogOp.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSEditLogOp.java @@ -2281,115 +2281,7 @@ public String toString() { return builder.toString(); } } - - /** - * Operation corresponding to allow creating snapshot on a directory - */ - static class AllowSnapshotOp extends FSEditLogOp { - String snapshotRoot; - - public AllowSnapshotOp() { - super(OP_ALLOW_SNAPSHOT); - } - - public AllowSnapshotOp(String snapRoot) { - super(OP_ALLOW_SNAPSHOT); - snapshotRoot = snapRoot; - } - - static AllowSnapshotOp getInstance(OpInstanceCache cache) { - return (AllowSnapshotOp) cache.get(OP_ALLOW_SNAPSHOT); - } - - public AllowSnapshotOp setSnapshotRoot(String snapRoot) { - snapshotRoot = snapRoot; - return this; - } - - @Override - void readFields(DataInputStream in, int logVersion) throws IOException { - snapshotRoot = FSImageSerialization.readString(in); - } - - @Override - public void writeFields(DataOutputStream out) throws IOException { - FSImageSerialization.writeString(snapshotRoot, out); - } - - @Override - protected void toXml(ContentHandler contentHandler) throws SAXException { - XMLUtils.addSaxString(contentHandler, "SNAPSHOTROOT", snapshotRoot); - } - - @Override - void fromXml(Stanza st) throws InvalidXmlException { - snapshotRoot = st.getValue("SNAPSHOTROOT"); - } - - @Override - public String toString() { - StringBuilder builder = new StringBuilder(); - builder.append("AllowSnapshotOp [snapshotRoot="); - builder.append(snapshotRoot); - builder.append("]"); - return builder.toString(); - } - } - - /** - * Operation corresponding to disallow creating snapshot on a directory - */ - static class DisallowSnapshotOp extends FSEditLogOp { - String snapshotRoot; - - public DisallowSnapshotOp() { - super(OP_DISALLOW_SNAPSHOT); - } - - public DisallowSnapshotOp(String snapRoot) { - super(OP_DISALLOW_SNAPSHOT); - snapshotRoot = snapRoot; - } - - static DisallowSnapshotOp getInstance(OpInstanceCache cache) { - return (DisallowSnapshotOp) cache.get(OP_DISALLOW_SNAPSHOT); - } - - public DisallowSnapshotOp setSnapshotRoot(String snapRoot) { - snapshotRoot = snapRoot; - return this; - } - - @Override - void readFields(DataInputStream in, int logVersion) throws IOException { - snapshotRoot = FSImageSerialization.readString(in); - } - - @Override - public void writeFields(DataOutputStream out) throws IOException { - FSImageSerialization.writeString(snapshotRoot, out); - } - - @Override - protected void toXml(ContentHandler contentHandler) throws SAXException { - XMLUtils.addSaxString(contentHandler, "SNAPSHOTROOT", snapshotRoot); - } - - @Override - void fromXml(Stanza st) throws InvalidXmlException { - snapshotRoot = st.getValue("SNAPSHOTROOT"); - } - - @Override - public String toString() { - StringBuilder builder = new StringBuilder(); - builder.append("DisallowSnapshotOp [snapshotRoot="); - builder.append(snapshotRoot); - builder.append("]"); - return builder.toString(); - } - } - + static private short readShort(DataInputStream in) throws IOException { return Short.parseShort(FSImageSerialization.readString(in)); } diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSEditLogOpCodes.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSEditLogOpCodes.java index e50b0876f0..8c218cdf16 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSEditLogOpCodes.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSEditLogOpCodes.java @@ -58,9 +58,7 @@ public enum FSEditLogOpCodes { OP_START_LOG_SEGMENT ((byte) 24), OP_UPDATE_BLOCKS ((byte) 25), OP_CREATE_SNAPSHOT ((byte) 26), - OP_DELETE_SNAPSHOT ((byte) 27), - OP_ALLOW_SNAPSHOT ((byte) 28), - OP_DISALLOW_SNAPSHOT ((byte) 29); + OP_DELETE_SNAPSHOT ((byte) 27); private byte opCode;