dlmarion commented on code in PR #5399:
URL: https://github.com/apache/accumulo/pull/5399#discussion_r1992165306


##########
server/gc/src/main/java/org/apache/accumulo/gc/GarbageCollectWriteAheadLogs.java:
##########
@@ -266,37 +271,62 @@ private long 
removeTabletServerMarkers(Map<UUID,TServerInstance> uidMap,
     return result;
   }
 
-  private long removeFile(Path path) {
-    try {
-      if (!useTrash || !fs.moveToTrash(path)) {
-        fs.deleteRecursively(path);
+  private void removeFile(ExecutorService deleteThreadPool, Path path, 
AtomicLong counter,
+      String msg) {
+    deleteThreadPool.execute(() -> {
+      try {
+        log.debug(msg);
+        if (!useTrash || !fs.moveToTrash(path)) {
+          fs.deleteRecursively(path);
+        }
+        counter.incrementAndGet();
+      } catch (FileNotFoundException ex) {
+        // ignored
+      } catch (IOException ex) {
+        log.error("Unable to delete wal {}", path, ex);
       }
-      return 1;
-    } catch (FileNotFoundException ex) {
-      // ignored
-    } catch (IOException ex) {
-      log.error("Unable to delete wal {}", path, ex);
-    }
-
-    return 0;
+    });
   }
 
   private long removeFiles(Collection<Pair<WalState,Path>> collection, final 
GCStatus status) {
+
+    final ExecutorService deleteThreadPool = ThreadPools.getServerThreadPools()
+        .createExecutorService(context.getConfiguration(), 
Property.GC_DELETE_THREADS);
+    final AtomicLong counter = new AtomicLong();
+
     for (Pair<WalState,Path> stateFile : collection) {
       Path path = stateFile.getSecond();
-      log.debug("Removing {} WAL {}", stateFile.getFirst(), path);
-      status.currentLog.deleted += removeFile(path);
+      removeFile(deleteThreadPool, path, counter,
+          "Removing " + stateFile.getFirst() + " WAL " + path);
     }
-    return status.currentLog.deleted;
+
+    deleteThreadPool.shutdown();
+    try {
+      while (!deleteThreadPool.awaitTermination(1000, TimeUnit.MILLISECONDS)) 
{ // empty
+      }
+    } catch (InterruptedException e1) {
+      log.error("{}", e1.getMessage(), e1);
+    }
+    return counter.get();

Review Comment:
   Yep, I forgot to increment the counter. I created it though, so I was half 
way there.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscr...@accumulo.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to