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 2012/10/19 23:01:27 UTC
svn commit: r1400285 - in
/hadoop/common/branches/HDFS-2802/hadoop-hdfs-project/hadoop-hdfs: ./
src/main/java/org/apache/hadoop/hdfs/server/namenode/
Author: suresh
Date: Fri Oct 19 21:01:26 2012
New Revision: 1400285
URL: http://svn.apache.org/viewvc?rev=1400285&view=rev
Log:
Moving HDFS-2802 related changes to a separate CHANGES.txt
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/FSEditLog.java
hadoop/common/branches/HDFS-2802/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSEditLogOp.java
hadoop/common/branches/HDFS-2802/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSEditLogOpCodes.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=1400285&r1=1400284&r2=1400285&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 Oct 19 21:01:26 2012
@@ -1,14 +1,5 @@
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
Modified: hadoop/common/branches/HDFS-2802/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSEditLog.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/FSEditLog.java?rev=1400285&r1=1400284&r2=1400285&view=diff
==============================================================================
--- hadoop/common/branches/HDFS-2802/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSEditLog.java (original)
+++ hadoop/common/branches/HDFS-2802/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSEditLog.java Fri Oct 19 21:01:26 2012
@@ -44,12 +44,14 @@ import org.apache.hadoop.hdfs.server.com
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;
@@ -877,6 +879,18 @@ public class FSEditLog implements LogsPu
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.
*/
Modified: hadoop/common/branches/HDFS-2802/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSEditLogOp.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/FSEditLogOp.java?rev=1400285&r1=1400284&r2=1400285&view=diff
==============================================================================
--- hadoop/common/branches/HDFS-2802/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSEditLogOp.java (original)
+++ hadoop/common/branches/HDFS-2802/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSEditLogOp.java Fri Oct 19 21:01:26 2012
@@ -2281,7 +2281,115 @@ public abstract class FSEditLogOp {
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));
}
Modified: hadoop/common/branches/HDFS-2802/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSEditLogOpCodes.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/FSEditLogOpCodes.java?rev=1400285&r1=1400284&r2=1400285&view=diff
==============================================================================
--- hadoop/common/branches/HDFS-2802/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSEditLogOpCodes.java (original)
+++ hadoop/common/branches/HDFS-2802/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSEditLogOpCodes.java Fri Oct 19 21:01:26 2012
@@ -58,7 +58,9 @@ 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_DELETE_SNAPSHOT ((byte) 27),
+ OP_ALLOW_SNAPSHOT ((byte) 28),
+ OP_DISALLOW_SNAPSHOT ((byte) 29);
private byte opCode;