You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by jm...@apache.org on 2013/02/13 19:12:23 UTC
svn commit: r1445788 - in
/hbase/branches/hbase-7290/hbase-server/src/main/java/org/apache/hadoop/hbase:
master/HMaster.java master/snapshot/manage/SnapshotManager.java
snapshot/SnapshotDescriptionUtils.java
Author: jmhsieh
Date: Wed Feb 13 18:12:23 2013
New Revision: 1445788
URL: http://svn.apache.org/r1445788
Log:
HBASE-7240 Cleanup old snapshots on start (Jesse Yates)
Modified:
hbase/branches/hbase-7290/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
hbase/branches/hbase-7290/hbase-server/src/main/java/org/apache/hadoop/hbase/master/snapshot/manage/SnapshotManager.java
hbase/branches/hbase-7290/hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/SnapshotDescriptionUtils.java
Modified: hbase/branches/hbase-7290/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
URL: http://svn.apache.org/viewvc/hbase/branches/hbase-7290/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java?rev=1445788&r1=1445787&r2=1445788&view=diff
==============================================================================
--- hbase/branches/hbase-7290/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java (original)
+++ hbase/branches/hbase-7290/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java Wed Feb 13 18:12:23 2013
@@ -595,6 +595,7 @@ Server {
// create the snapshot monitor
// TODO should this be config based?
this.snapshotManager = new SnapshotManager(this, zooKeeper, this.executorService);
+ snapshotManager.start();
}
/**
Modified: hbase/branches/hbase-7290/hbase-server/src/main/java/org/apache/hadoop/hbase/master/snapshot/manage/SnapshotManager.java
URL: http://svn.apache.org/viewvc/hbase/branches/hbase-7290/hbase-server/src/main/java/org/apache/hadoop/hbase/master/snapshot/manage/SnapshotManager.java?rev=1445788&r1=1445787&r2=1445788&view=diff
==============================================================================
--- hbase/branches/hbase-7290/hbase-server/src/main/java/org/apache/hadoop/hbase/master/snapshot/manage/SnapshotManager.java (original)
+++ hbase/branches/hbase-7290/hbase-server/src/main/java/org/apache/hadoop/hbase/master/snapshot/manage/SnapshotManager.java Wed Feb 13 18:12:23 2013
@@ -81,6 +81,23 @@ public class SnapshotManager implements
}
/**
+ * Start running the manager.
+ * <p>
+ * <ol>
+ * <li>Cleans up any snapshots in the snapshot/.tmp directory that were left from failed
+ * snapshot/export attempts</li>
+ * </ol>
+ * @throws IOException if we can't reach the filesystem
+ */
+ public void start() throws IOException {
+ // cleanup any existing snapshots.
+ Path tmpdir = SnapshotDescriptionUtils.getWorkingSnapshotDir(rootDir);
+ if (master.getMasterFileSystem().getFileSystem().delete(tmpdir, true)) {
+ LOG.warn("Couldn't delete working snapshot directory: " + tmpdir);
+ }
+ }
+
+ /**
* @return <tt>true</tt> if there is a snapshot currently being taken, <tt>false</tt> otherwise
*/
public boolean isTakingSnapshot() {
Modified: hbase/branches/hbase-7290/hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/SnapshotDescriptionUtils.java
URL: http://svn.apache.org/viewvc/hbase/branches/hbase-7290/hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/SnapshotDescriptionUtils.java?rev=1445788&r1=1445787&r2=1445788&view=diff
==============================================================================
--- hbase/branches/hbase-7290/hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/SnapshotDescriptionUtils.java (original)
+++ hbase/branches/hbase-7290/hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/SnapshotDescriptionUtils.java Wed Feb 13 18:12:23 2013
@@ -233,14 +233,23 @@ public class SnapshotDescriptionUtils {
}
/**
+ * Get the general working directory for snapshots - where they are built, where they are
+ * temporarily copied on export, etc.
+ * @param rootDir root directory of the HBase installation
+ * @return Path to the snapshot tmp directory, relative to the passed root directory
+ */
+ public static Path getWorkingSnapshotDir(final Path rootDir) {
+ return new Path(getSnapshotsDir(rootDir), SNAPSHOT_TMP_DIR_NAME);
+ }
+
+ /**
* Get the directory to build a snapshot, before it is finalized
* @param snapshot snapshot that will be built
* @param rootDir root directory of the hbase installation
* @return {@link Path} where one can build a snapshot
*/
public static Path getWorkingSnapshotDir(SnapshotDescription snapshot, final Path rootDir) {
- return getCompletedSnapshotDir(new Path(getSnapshotsDir(rootDir), SNAPSHOT_TMP_DIR_NAME),
- snapshot.getName());
+ return getCompletedSnapshotDir(getWorkingSnapshotDir(rootDir), snapshot.getName());
}
/**
@@ -250,8 +259,7 @@ public class SnapshotDescriptionUtils {
* @return {@link Path} where one can build a snapshot
*/
public static Path getWorkingSnapshotDir(String snapshotName, final Path rootDir) {
- return getCompletedSnapshotDir(new Path(getSnapshotsDir(rootDir), SNAPSHOT_TMP_DIR_NAME),
- snapshotName);
+ return getCompletedSnapshotDir(getWorkingSnapshotDir(rootDir), snapshotName);
}
/**