From 961bdf83e2c9aae1eede15fef69a7903b086b3ec Mon Sep 17 00:00:00 2001 From: Daniel Roberts ddanielr Date: Mon, 23 Feb 2026 16:35:55 +0000 Subject: [PATCH 1/2] Added correct thread naming to compactor threads Sets the thread name based on the compaction type instead of defaulting to MajC. --- .../apache/accumulo/server/compaction/FileCompactor.java | 6 ++++-- .../main/java/org/apache/accumulo/compactor/ExtCEnv.java | 5 +++++ .../java/org/apache/accumulo/tserver/tablet/MajCEnv.java | 5 +++++ .../java/org/apache/accumulo/tserver/tablet/MinCEnv.java | 5 +++++ 4 files changed, 19 insertions(+), 2 deletions(-) diff --git a/server/base/src/main/java/org/apache/accumulo/server/compaction/FileCompactor.java b/server/base/src/main/java/org/apache/accumulo/server/compaction/FileCompactor.java index b22d5a34d3c..48df92fecf4 100644 --- a/server/base/src/main/java/org/apache/accumulo/server/compaction/FileCompactor.java +++ b/server/base/src/main/java/org/apache/accumulo/server/compaction/FileCompactor.java @@ -99,6 +99,8 @@ public static class CompactionCanceledException extends Exception { public interface CompactionEnv { + String getThreadPrefix(); + boolean isCompactionEnabled(); IteratorScope getIteratorScope(); @@ -324,8 +326,8 @@ public CompactionStats call() throws IOException, CompactionCanceledException, clearCurrentEntryCounts(); String oldThreadName = Thread.currentThread().getName(); - String newThreadName = - "MajC compacting " + extent + " started " + threadStartDate + " file: " + outputFile; + String newThreadName = env.getThreadPrefix() + " compacting " + extent + " started " + + threadStartDate + " file: " + outputFile; Thread.currentThread().setName(newThreadName); // Use try w/ resources for clearing the thread instead of finally because clearing may throw an // exception. Java's handling of exceptions thrown in finally blocks is not good. diff --git a/server/compactor/src/main/java/org/apache/accumulo/compactor/ExtCEnv.java b/server/compactor/src/main/java/org/apache/accumulo/compactor/ExtCEnv.java index d109c97d9ca..39112db3377 100644 --- a/server/compactor/src/main/java/org/apache/accumulo/compactor/ExtCEnv.java +++ b/server/compactor/src/main/java/org/apache/accumulo/compactor/ExtCEnv.java @@ -80,6 +80,11 @@ public String getQueueName() { this.queueName = queueName; } + @Override + public String getThreadPrefix() { + return "ExtC"; + } + @Override public boolean isCompactionEnabled() { return !jobHolder.isCancelled(); diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/MajCEnv.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/MajCEnv.java index 1d8c1884a2a..0032a84c842 100644 --- a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/MajCEnv.java +++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/MajCEnv.java @@ -48,6 +48,11 @@ public MajCEnv(CompactionKind kind, CompactableImpl.CompactionCheck compactionCh this.compactionCheck = compactionCheck; } + @Override + public String getThreadPrefix() { + return "MajC"; + } + @Override public boolean isCompactionEnabled() { return compactionCheck.isCompactionEnabled(); diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/MinCEnv.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/MinCEnv.java index c3bbb7cf475..1f7e74268c2 100644 --- a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/MinCEnv.java +++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/MinCEnv.java @@ -41,6 +41,11 @@ public MinCEnv(MinorCompactionReason reason, SortedKeyValueIterator i this.iter = iter; } + @Override + public String getThreadPrefix() { + return "MinC"; + } + @Override public boolean isCompactionEnabled() { return true; From c09df3380819ed81bb2ce478044292b6bb418a7b Mon Sep 17 00:00:00 2001 From: Daniel Roberts ddanielr Date: Mon, 23 Feb 2026 21:06:35 +0000 Subject: [PATCH 2/2] Reduce changes by not supporting ExtC Compactors are single threaded and only run major compactions so MajC thread names are still accurate. --- .../server/compaction/FileCompactor.java | 19 ++++++++++++------- .../apache/accumulo/compactor/ExtCEnv.java | 5 ----- .../accumulo/tserver/tablet/MajCEnv.java | 5 ----- .../accumulo/tserver/tablet/MinCEnv.java | 5 ----- 4 files changed, 12 insertions(+), 22 deletions(-) diff --git a/server/base/src/main/java/org/apache/accumulo/server/compaction/FileCompactor.java b/server/base/src/main/java/org/apache/accumulo/server/compaction/FileCompactor.java index 48df92fecf4..e058db5ac82 100644 --- a/server/base/src/main/java/org/apache/accumulo/server/compaction/FileCompactor.java +++ b/server/base/src/main/java/org/apache/accumulo/server/compaction/FileCompactor.java @@ -99,8 +99,6 @@ public static class CompactionCanceledException extends Exception { public interface CompactionEnv { - String getThreadPrefix(); - boolean isCompactionEnabled(); IteratorScope getIteratorScope(); @@ -325,10 +323,19 @@ public CompactionStats call() throws IOException, CompactionCanceledException, clearCurrentEntryCounts(); + final boolean isMinC = env.getIteratorScope() == IteratorUtil.IteratorScope.minc; + + StringBuilder newThreadName = new StringBuilder(); + if (isMinC) { + newThreadName.append("MinC "); + } else { + newThreadName.append("MajC "); + } + String oldThreadName = Thread.currentThread().getName(); - String newThreadName = env.getThreadPrefix() + " compacting " + extent + " started " - + threadStartDate + " file: " + outputFile; - Thread.currentThread().setName(newThreadName); + newThreadName.append("compacting ").append(extent).append(" started ").append(threadStartDate) + .append(" file: ").append(outputFile); + Thread.currentThread().setName(newThreadName.toString()); // Use try w/ resources for clearing the thread instead of finally because clearing may throw an // exception. Java's handling of exceptions thrown in finally blocks is not good. try (var ignored = setThread()) { @@ -350,8 +357,6 @@ public CompactionStats call() throws IOException, CompactionCanceledException, final EnumSet dropCacheFileTypes = ConfigurationTypeHelper.getDropCacheBehindFilePrefixes(dropCachePrefixProperty); - final boolean isMinC = env.getIteratorScope() == IteratorUtil.IteratorScope.minc; - final boolean dropCacheBehindOutput = !RootTable.ID.equals(this.extent.tableId()) && !MetadataTable.ID.equals(this.extent.tableId()) && ((isMinC && acuTableConf.getBoolean(Property.TABLE_MINC_OUTPUT_DROP_CACHE)) diff --git a/server/compactor/src/main/java/org/apache/accumulo/compactor/ExtCEnv.java b/server/compactor/src/main/java/org/apache/accumulo/compactor/ExtCEnv.java index 39112db3377..d109c97d9ca 100644 --- a/server/compactor/src/main/java/org/apache/accumulo/compactor/ExtCEnv.java +++ b/server/compactor/src/main/java/org/apache/accumulo/compactor/ExtCEnv.java @@ -80,11 +80,6 @@ public String getQueueName() { this.queueName = queueName; } - @Override - public String getThreadPrefix() { - return "ExtC"; - } - @Override public boolean isCompactionEnabled() { return !jobHolder.isCancelled(); diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/MajCEnv.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/MajCEnv.java index 0032a84c842..1d8c1884a2a 100644 --- a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/MajCEnv.java +++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/MajCEnv.java @@ -48,11 +48,6 @@ public MajCEnv(CompactionKind kind, CompactableImpl.CompactionCheck compactionCh this.compactionCheck = compactionCheck; } - @Override - public String getThreadPrefix() { - return "MajC"; - } - @Override public boolean isCompactionEnabled() { return compactionCheck.isCompactionEnabled(); diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/MinCEnv.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/MinCEnv.java index 1f7e74268c2..c3bbb7cf475 100644 --- a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/MinCEnv.java +++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/MinCEnv.java @@ -41,11 +41,6 @@ public MinCEnv(MinorCompactionReason reason, SortedKeyValueIterator i this.iter = iter; } - @Override - public String getThreadPrefix() { - return "MinC"; - } - @Override public boolean isCompactionEnabled() { return true;