Author: ecn
Date: Thu Feb 14 20:11:42 2013
New Revision: 1446314
URL: http://svn.apache.org/r1446314
Log:
ACCUMULO-919 use the trash to cleanup root tablet files, recovery files, and WAL
Modified:
accumulo/trunk/server/src/main/java/org/apache/accumulo/server/gc/GarbageCollectWriteAheadLogs.java
accumulo/trunk/server/src/main/java/org/apache/accumulo/server/gc/SimpleGarbageCollector.java
accumulo/trunk/server/src/main/java/org/apache/accumulo/server/tabletserver/Tablet.java
accumulo/trunk/server/src/main/java/org/apache/accumulo/server/tabletserver/TabletServer.java
Modified:
accumulo/trunk/server/src/main/java/org/apache/accumulo/server/gc/GarbageCollectWriteAheadLogs.java
URL:
http://svn.apache.org/viewvc/accumulo/trunk/server/src/main/java/org/apache/accumulo/server/gc/GarbageCollectWriteAheadLogs.java?rev=1446314r1=1446313r2=1446314view=diff
==
---
accumulo/trunk/server/src/main/java/org/apache/accumulo/server/gc/GarbageCollectWriteAheadLogs.java
(original)
+++
accumulo/trunk/server/src/main/java/org/apache/accumulo/server/gc/GarbageCollectWriteAheadLogs.java
Thu Feb 14 20:11:42 2013
@@ -47,6 +47,7 @@ import org.apache.accumulo.trace.instrum
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.fs.Trash;
import org.apache.log4j.Logger;
import org.apache.thrift.TException;
import org.apache.zookeeper.KeeperException;
@@ -57,10 +58,14 @@ public class GarbageCollectWriteAheadLog
private final Instance instance;
private final FileSystem fs;
+
+ private Trash trash;
- GarbageCollectWriteAheadLogs(Instance instance, FileSystem fs) {
+ GarbageCollectWriteAheadLogs(Instance instance, FileSystem fs, boolean
noTrash) throws IOException {
this.instance = instance;
this.fs = fs;
+if (!noTrash)
+ this.trash = new Trash(fs, fs.getConf());
}
public void collect(GCStatus status) {
@@ -129,7 +134,9 @@ public class GarbageCollectWriteAheadLog
for (String filename : entry.getValue()) {
log.debug(Removing old-style WAL + entry.getValue());
try {
-fs.delete(new Path(Constants.getWalDirectory(conf), filename),
true);
+Path path = new Path(Constants.getWalDirectory(conf), filename);
+if (trash == null || !trash.moveToTrash(path))
+ fs.delete(path, true);
} catch (IOException ex) {
log.error(Unable to delete wal + filename + : + ex);
}
Modified:
accumulo/trunk/server/src/main/java/org/apache/accumulo/server/gc/SimpleGarbageCollector.java
URL:
http://svn.apache.org/viewvc/accumulo/trunk/server/src/main/java/org/apache/accumulo/server/gc/SimpleGarbageCollector.java?rev=1446314r1=1446313r2=1446314view=diff
==
---
accumulo/trunk/server/src/main/java/org/apache/accumulo/server/gc/SimpleGarbageCollector.java
(original)
+++
accumulo/trunk/server/src/main/java/org/apache/accumulo/server/gc/SimpleGarbageCollector.java
Thu Feb 14 20:11:42 2013
@@ -296,8 +296,8 @@ public class SimpleGarbageCollector impl
// Clean up any unused write-ahead logs
Span waLogs = Trace.start(walogs);
- GarbageCollectWriteAheadLogs walogCollector = new
GarbageCollectWriteAheadLogs(instance, fs);
try {
+GarbageCollectWriteAheadLogs walogCollector = new
GarbageCollectWriteAheadLogs(instance, fs, trash == null);
log.info(Beginning garbage collection of write-ahead logs);
walogCollector.collect(status);
} catch (Exception e) {
Modified:
accumulo/trunk/server/src/main/java/org/apache/accumulo/server/tabletserver/Tablet.java
URL:
http://svn.apache.org/viewvc/accumulo/trunk/server/src/main/java/org/apache/accumulo/server/tabletserver/Tablet.java?rev=1446314r1=1446313r2=1446314view=diff
==
---
accumulo/trunk/server/src/main/java/org/apache/accumulo/server/tabletserver/Tablet.java
(original)
+++
accumulo/trunk/server/src/main/java/org/apache/accumulo/server/tabletserver/Tablet.java
Thu Feb 14 20:11:42 2013
@@ -132,6 +132,7 @@ import org.apache.hadoop.conf.Configurat
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.fs.Trash;
import org.apache.hadoop.io.Text;
import org.apache.log4j.Logger;
import org.apache.zookeeper.KeeperException;
@@ -1037,8 +1038,11 @@ public class Tablet {
// start deleting files, if we do not finish they will be cleaned
// up later
+ Trash trash = new Trash(fs, fs.getConf());
for (Path path : oldDatafiles) {
-fs.delete(new Path(location + /delete+ + compactName + + +
path.getName()), true);
+