Updated Branches:
  refs/heads/1.6.0-SNAPSHOT c10ccf375 -> 437da6ec6

ACCUMULO-1831 fix recovered log cleanup


Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/437da6ec
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/437da6ec
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/437da6ec

Branch: refs/heads/1.6.0-SNAPSHOT
Commit: 437da6ec69fc05958c60a47c2ac768473ec89827
Parents: c10ccf3
Author: Eric Newton <eric.new...@gmail.com>
Authored: Mon Nov 18 19:35:34 2013 -0500
Committer: Eric Newton <eric.new...@gmail.com>
Committed: Mon Nov 18 19:35:44 2013 -0500

----------------------------------------------------------------------
 .../gc/GarbageCollectWriteAheadLogs.java        | 21 ++++++++++----------
 1 file changed, 10 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/437da6ec/server/gc/src/main/java/org/apache/accumulo/gc/GarbageCollectWriteAheadLogs.java
----------------------------------------------------------------------
diff --git 
a/server/gc/src/main/java/org/apache/accumulo/gc/GarbageCollectWriteAheadLogs.java
 
b/server/gc/src/main/java/org/apache/accumulo/gc/GarbageCollectWriteAheadLogs.java
index 6eed80d..51ed477 100644
--- 
a/server/gc/src/main/java/org/apache/accumulo/gc/GarbageCollectWriteAheadLogs.java
+++ 
b/server/gc/src/main/java/org/apache/accumulo/gc/GarbageCollectWriteAheadLogs.java
@@ -74,7 +74,7 @@ public class GarbageCollectWriteAheadLogs {
     Span span = Trace.start("scanServers");
     try {
       
-      Set<Path> sortedWALogs = getSortedWALogs();
+      Map<String, Path> sortedWALogs = getSortedWALogs();
       
       status.currentLog.started = System.currentTimeMillis();
       
@@ -132,7 +132,7 @@ public class GarbageCollectWriteAheadLogs {
     }
   }
   
-  private int removeFiles(Map<String,Path> nameToFileMap, 
Map<String,ArrayList<Path>> serverToFileMap, Set<Path> sortedWALogs, final 
GCStatus status) {
+  private int removeFiles(Map<String,Path> nameToFileMap, 
Map<String,ArrayList<Path>> serverToFileMap, Map<String, Path> sortedWALogs, 
final GCStatus status) {
     AccumuloConfiguration conf = instance.getConfiguration();
     for (Entry<String,ArrayList<Path>> entry : serverToFileMap.entrySet()) {
       if (entry.getKey().isEmpty()) {
@@ -182,7 +182,7 @@ public class GarbageCollectWriteAheadLogs {
       }
     }
     
-    for (Path swalog : sortedWALogs) {
+    for (Path swalog : sortedWALogs.values()) {
       log.debug("Removing sorted WAL " + swalog);
       try {
         if (!useTrash || !fs.moveToTrash(swalog)) {
@@ -226,7 +226,7 @@ public class GarbageCollectWriteAheadLogs {
     return result;
   }
   
-  private int removeMetadataEntries(Map<String,Path>  nameToFileMap, Set<Path> 
sortedWALogs, GCStatus status) throws IOException, KeeperException,
+  private int removeMetadataEntries(Map<String,Path>  nameToFileMap, 
Map<String, Path> sortedWALogs, GCStatus status) throws IOException, 
KeeperException,
       InterruptedException {
     int count = 0;
     Iterator<LogEntry> iterator = 
MetadataTableUtil.getLogEntries(SystemCredentials.get());
@@ -243,7 +243,7 @@ public class GarbageCollectWriteAheadLogs {
         Path pathFromNN = nameToFileMap.remove(path.getName());
         if (pathFromNN != null) {
           status.currentLog.inUse++;
-          sortedWALogs.remove(pathFromNN);
+          sortedWALogs.remove(path.getName());
         }
         count++;
       }
@@ -280,21 +280,20 @@ public class GarbageCollectWriteAheadLogs {
         }
       }
     }
-    log.debug("fileToServerMap " + fileToServerMap);
-    log.debug("nameToFileMap " + nameToFileMap);
     return servers.size();
   }
   
-  private Set<Path> getSortedWALogs() throws IOException {
-    Set<Path> result = new HashSet<Path>();
+  private Map<String, Path> getSortedWALogs() throws IOException {
+    Map<String, Path> result = new HashMap<String, Path>();
     
     for (String dir : ServerConstants.getRecoveryDirs()) {
       Path recoveryDir = new Path(dir);
       
       if (fs.exists(recoveryDir)) {
         for (FileStatus status : fs.listStatus(recoveryDir)) {
-          if (isUUID(status.getPath().getName())) {
-            result.add(status.getPath());
+          String name = status.getPath().getName();
+          if (isUUID(name)) {
+            result.put(name, status.getPath());
           } else {
             log.debug("Ignoring file " + status.getPath() + " because it 
doesn't look like a uuid");
           }

Reply via email to