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 2021/10/11 17:08:47 UTC
[cassandra] branch cassandra-3.0 updated: Don't take snapshots when
truncating system tables
This is an automated email from the ASF dual-hosted git repository.
brandonwilliams pushed a commit to branch cassandra-3.0
in repository https://gitbox.apache.org/repos/asf/cassandra.git
The following commit(s) were added to refs/heads/cassandra-3.0 by this push:
new 0e12b8d Don't take snapshots when truncating system tables
0e12b8d is described below
commit 0e12b8d4fc9183cb8bb37cb461c3fe9e434ba9b8
Author: Brandon Williams <br...@apache.org>
AuthorDate: Fri Oct 8 10:52:11 2021 -0500
Don't take snapshots when truncating system tables
Patch by brandonwilliams; reviewed by adelapena and blerer for CASSANDRA-16839
---
CHANGES.txt | 1 +
src/java/org/apache/cassandra/db/ColumnFamilyStore.java | 17 ++++++++++++++---
src/java/org/apache/cassandra/db/SystemKeyspace.java | 2 +-
3 files changed, 16 insertions(+), 4 deletions(-)
diff --git a/CHANGES.txt b/CHANGES.txt
index 2ca4481..ae88aaa 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
3.0.26:
+ * Don't take snapshots when truncating system tables (CASSANDRA-16839)
* Make -Dtest.methods consistently optional in all Ant test targets (CASSANDRA-17014)
* Immediately apply stream throughput, considering negative values as unthrottled (CASSANDRA-16959)
* Do not release new SSTables in offline transactions (CASSANDRA-16975)
diff --git a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
index 405aec7..e7c1868 100644
--- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
+++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
@@ -2035,10 +2035,21 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean
}
}
+ public void truncateBlocking()
+ {
+ truncateBlocking(false);
+ }
+
+ public void truncateBlockingWithoutSnapshot()
+ {
+ truncateBlocking(true);
+ }
+
/**
* Truncate deletes the entire column family's data with no expensive tombstone creation
+ * @param noSnapshot if {@code true} no snapshot will be taken
*/
- public void truncateBlocking()
+ private void truncateBlocking(boolean noSnapshot)
{
// We have two goals here:
// - truncate should delete everything written before truncate was invoked
@@ -2059,7 +2070,7 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean
final long truncatedAt;
final ReplayPosition replayAfter;
- if (keyspace.getMetadata().params.durableWrites || DatabaseDescriptor.isAutoSnapshot())
+ if (!noSnapshot && (keyspace.getMetadata().params.durableWrites || DatabaseDescriptor.isAutoSnapshot()))
{
replayAfter = forceBlockingFlush();
viewManager.forceBlockingFlush();
@@ -2089,7 +2100,7 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean
logger.debug("Discarding sstable data for truncated CF + indexes");
data.notifyTruncated(truncatedAt);
- if (DatabaseDescriptor.isAutoSnapshot())
+ if (!noSnapshot && DatabaseDescriptor.isAutoSnapshot())
snapshot(Keyspace.getTimestampedSnapshotName(name));
discardSSTables(truncatedAt);
diff --git a/src/java/org/apache/cassandra/db/SystemKeyspace.java b/src/java/org/apache/cassandra/db/SystemKeyspace.java
index 7fd9268..dc550df 100644
--- a/src/java/org/apache/cassandra/db/SystemKeyspace.java
+++ b/src/java/org/apache/cassandra/db/SystemKeyspace.java
@@ -1347,7 +1347,7 @@ public final class SystemKeyspace
public static void resetAvailableRanges()
{
ColumnFamilyStore availableRanges = Keyspace.open(NAME).getColumnFamilyStore(AVAILABLE_RANGES);
- availableRanges.truncateBlocking();
+ availableRanges.truncateBlockingWithoutSnapshot();
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org