ZOOKEEPER-4872: SnapshotCommand should not perform fastForwardFromEdits

Reviewers: kezhuw
Author: li4wang
Closes #2210 from li4wang/ZOOKEEPER-4872
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/ZooKeeperServer.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/ZooKeeperServer.java
index 6740f6d..8e291f8 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/ZooKeeperServer.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/ZooKeeperServer.java
@@ -554,7 +554,7 @@ public File takeSnapshot() throws IOException {
     }
 
     public File takeSnapshot(boolean syncSnap) throws IOException {
-        return takeSnapshot(syncSnap, true, false);
+        return takeSnapshot(syncSnap, true);
     }
 
     /**
@@ -562,18 +562,13 @@ public File takeSnapshot(boolean syncSnap) throws IOException {
      *
      * @param syncSnap syncSnap sync the snapshot immediately after write
      * @param isSevere if true system exist, otherwise throw IOException
-     * @param fastForwardFromEdits whether fast forward database to the latest recorded transactions
-     *
      * @return file snapshot file object
      * @throws IOException
      */
-    public synchronized File takeSnapshot(boolean syncSnap, boolean isSevere, boolean fastForwardFromEdits) throws IOException {
+    public synchronized File takeSnapshot(boolean syncSnap, boolean isSevere) throws IOException {
         long start = Time.currentElapsedTime();
         File snapFile = null;
         try {
-            if (fastForwardFromEdits) {
-                zkDb.fastForwardDataBase();
-            }
             snapFile = txnLogFactory.save(zkDb.getDataTree(), zkDb.getSessionWithTimeOuts(), syncSnap);
         } catch (IOException e) {
             if (isSevere) {
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/admin/Commands.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/admin/Commands.java
index 74dfdc3..cd5adc7 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/admin/Commands.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/admin/Commands.java
@@ -783,7 +783,7 @@ public CommandResponse runGet(final ZooKeeperServer zkServer, final Map<String,
 
             // take snapshot and stream out data if needed
             try {
-                final File snapshotFile = zkServer.takeSnapshot(false, false, true);
+                final File snapshotFile = zkServer.takeSnapshot(false, false);
                 final long lastZxid = Util.getZxidFromName(snapshotFile.getName(), SNAPSHOT_FILE_PREFIX);
                 response.addHeader(RESPONSE_HEADER_LAST_ZXID, "0x" + ZxidUtils.zxidToString(lastZxid));
 
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/ZookeeperServerRestoreTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/ZookeeperServerRestoreTest.java
index 85f514d..ac7a008 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/ZookeeperServerRestoreTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/ZookeeperServerRestoreTest.java
@@ -74,7 +74,7 @@ public void testRestoreFromSnapshot() throws Exception {
             }
 
             // take Snapshot
-            final File snapshotFile = zks.takeSnapshot(false, false, true);
+            final File snapshotFile = zks.takeSnapshot(false, false);
             final long lastZxidFromSnapshot = Util.getZxidFromName(snapshotFile.getName(), SNAPSHOT_FILE_PREFIX);
 
             // zk2 create more test data after snapshotting
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/ZookeeperServerSnapshotTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/ZookeeperServerSnapshotTest.java
index c9d74a4..890cbd2 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/ZookeeperServerSnapshotTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/ZookeeperServerSnapshotTest.java
@@ -62,7 +62,7 @@ public void testTakeSnapshot() throws Exception {
             }
 
             // takeSnapshot
-            zks.takeSnapshot(false, false, true);
+            zks.takeSnapshot(false, false);
 
             // clean up
             zk.close();
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/admin/RestoreQuorumTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/admin/RestoreQuorumTest.java
index 38ca7f8..e5d43f7 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/admin/RestoreQuorumTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/admin/RestoreQuorumTest.java
@@ -85,7 +85,7 @@ public void testRestoreAfterQuorumLost() throws Exception {
 
             // create more data after restore
             for (int i = NODE_COUNT * 2; i < NODE_COUNT * 3; i++) {
-                servers.zk[leaderId].create(PATH + "/" + i, new byte[0], ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL_SEQUENTIAL);
+                servers.zk[leaderId].create(PATH + "/" + i, new byte[0], ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
             }
 
             // validate all servers have expected data