You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by br...@apache.org on 2022/12/07 11:26:15 UTC
[cassandra] branch trunk updated: Set the major compaction type correctly for compactionstats
This is an automated email from the ASF dual-hosted git repository.
brandonwilliams pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/cassandra.git
The following commit(s) were added to refs/heads/trunk by this push:
new 3f83396b76 Set the major compaction type correctly for compactionstats
3f83396b76 is described below
commit 3f83396b76115a25b8189410c68775f87f31f8ac
Author: maxwellguo <cc...@gmail.com>
AuthorDate: Thu Nov 17 21:04:23 2022 +0800
Set the major compaction type correctly for compactionstats
Patch by Maxwell Guo; reviewed by brandonwilliams and blambov for CASSANDRA-18055
---
CHANGES.txt | 1 +
.../org/apache/cassandra/db/compaction/CompactionIterator.java | 7 +++++--
.../org/apache/cassandra/db/compaction/CompactionManager.java | 3 +++
.../apache/cassandra/db/compaction/CompactionStrategyManager.java | 5 ++++-
.../org/apache/cassandra/db/compaction/CompactionTaskTest.java | 8 ++++++++
5 files changed, 21 insertions(+), 3 deletions(-)
diff --git a/CHANGES.txt b/CHANGES.txt
index ce975c6fa1..02655851b1 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
4.2
+ * Set the major compaction type correctly for compactionstats (CASSANDRA-18055)
* Print exception message without stacktrace when nodetool commands fail on probe.getOwnershipWithPort() (CASSANDRA-18079)
* Add option to print level in nodetool getsstables output (CASSANDRA-18023)
* Implement a guardrail for not having zero default_time_to_live on tables with TWCS (CASSANDRA-18042)
diff --git a/src/java/org/apache/cassandra/db/compaction/CompactionIterator.java b/src/java/org/apache/cassandra/db/compaction/CompactionIterator.java
index bceb2b6a97..4d1b2ac132 100644
--- a/src/java/org/apache/cassandra/db/compaction/CompactionIterator.java
+++ b/src/java/org/apache/cassandra/db/compaction/CompactionIterator.java
@@ -202,9 +202,12 @@ public class CompactionIterator extends CompactionInfo.Holder implements Unfilte
CompactionIterator.this.updateCounterFor(merged);
- if (type != OperationType.COMPACTION || !controller.cfs.indexManager.hasIndexes())
+ if ( (type != OperationType.COMPACTION && type != OperationType.MAJOR_COMPACTION)
+ || !controller.cfs.indexManager.hasIndexes() )
+ {
return null;
-
+ }
+
Columns statics = Columns.NONE;
Columns regulars = Columns.NONE;
for (int i=0, isize=versions.size(); i<isize; i++)
diff --git a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
index 2e1d94e807..b7d1a24b7b 100644
--- a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
+++ b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
@@ -985,7 +985,10 @@ public class CompactionManager implements CompactionManagerMBean
{
for (AbstractCompactionTask task : tasks)
if (task != null)
+ {
+ task.setCompactionType(OperationType.MAJOR_COMPACTION);
task.execute(active);
+ }
}
};
diff --git a/src/java/org/apache/cassandra/db/compaction/CompactionStrategyManager.java b/src/java/org/apache/cassandra/db/compaction/CompactionStrategyManager.java
index 08ab2c22fe..e98e4dd10f 100644
--- a/src/java/org/apache/cassandra/db/compaction/CompactionStrategyManager.java
+++ b/src/java/org/apache/cassandra/db/compaction/CompactionStrategyManager.java
@@ -1016,7 +1016,10 @@ public class CompactionStrategyManager implements INotificationConsumer
{
for (AbstractStrategyHolder holder : holders)
{
- tasks.addAll(holder.getMaximalTasks(gcBefore, splitOutput));
+ for (AbstractCompactionTask task: holder.getMaximalTasks(gcBefore, splitOutput))
+ {
+ tasks.add(task.setCompactionType(operationType));
+ }
}
}
finally
diff --git a/test/unit/org/apache/cassandra/db/compaction/CompactionTaskTest.java b/test/unit/org/apache/cassandra/db/compaction/CompactionTaskTest.java
index 24b0c3dfed..ca75453600 100644
--- a/test/unit/org/apache/cassandra/db/compaction/CompactionTaskTest.java
+++ b/test/unit/org/apache/cassandra/db/compaction/CompactionTaskTest.java
@@ -191,4 +191,12 @@ public class CompactionTaskTest
cfs.getTracker().removeUnsafe(sstables);
}
}
+
+ @Test
+ public void testMajorCompactTask()
+ {
+ //major compact without range/pk specified
+ CompactionTasks compactionTasks = cfs.getCompactionStrategyManager().getMaximalTasks(Integer.MAX_VALUE, false, OperationType.MAJOR_COMPACTION);
+ Assert.assertTrue(compactionTasks.stream().allMatch(task -> task.compactionType.equals(OperationType.MAJOR_COMPACTION)));
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org