diff --git a/CHANGES.txt b/CHANGES.txt index a46f8afa2a..7672ce8207 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 6.0-alpha2 + * Change default for cassandra.set_sep_thread_name to false to reduce CPU usage (CASSANDRA-21089) * Avoid permission checks for masked columns when the table doesn't have any (CASSANDRA-21299) * Reduce allocations and array copies due to buffer resizing in LocalDataResponse during row serialization (CASSANDRA-21285) * Implement a guardrail for client driver versions (CASSANDRA-21146) diff --git a/src/java/org/apache/cassandra/concurrent/SEPWorker.java b/src/java/org/apache/cassandra/concurrent/SEPWorker.java index 27efbdbfa7..8f1a5e9aa2 100644 --- a/src/java/org/apache/cassandra/concurrent/SEPWorker.java +++ b/src/java/org/apache/cassandra/concurrent/SEPWorker.java @@ -53,6 +53,8 @@ final class SEPWorker extends AtomicReference implements Runnabl private final AtomicReference currentTask = new AtomicReference<>(); + private String lastUsedExecutorName; + SEPWorker(ThreadGroup threadGroup, Long workerId, Work initialState, SharedExecutorPool pool) { this.pool = pool; @@ -129,8 +131,11 @@ final class SEPWorker extends AtomicReference implements Runnabl assigned = get().assigned; if (assigned == null) continue; - if (SET_THREAD_NAME) + if (SET_THREAD_NAME && assigned.name != lastUsedExecutorName) // .equals is not used intentionally + { Thread.currentThread().setName(assigned.name + workerIdThreadSuffix); + lastUsedExecutorName = assigned.name; + } task = assigned.tasks.poll(); currentTask.lazySet(task); diff --git a/src/java/org/apache/cassandra/config/CassandraRelevantProperties.java b/src/java/org/apache/cassandra/config/CassandraRelevantProperties.java index c4adaf0c2a..c72577e7ec 100644 --- a/src/java/org/apache/cassandra/config/CassandraRelevantProperties.java +++ b/src/java/org/apache/cassandra/config/CassandraRelevantProperties.java @@ -536,7 +536,7 @@ public enum CassandraRelevantProperties */ SEED_COUNT_WARN_THRESHOLD("cassandra.seed_count_warn_threshold"), SERIALIZATION_EMPTY_TYPE_NONEMPTY_BEHAVIOR("cassandra.serialization.emptytype.nonempty_behavior"), - SET_SEP_THREAD_NAME("cassandra.set_sep_thread_name", "true"), + SET_SEP_THREAD_NAME("cassandra.set_sep_thread_name", "false"), SHUTDOWN_ANNOUNCE_DELAY_IN_MS("cassandra.shutdown_announce_in_ms", "2000"), SIMULATOR_ITERATIONS("simulator.iterations", "3"), SIMULATOR_SEED("cassandra.simulator.seed"),