This is an automated email from the ASF dual-hosted git repository.
bdeggleston pushed a commit to branch cep-45-mutation-tracking
in repository https://gitbox.apache.org/repos/asf/cassandra.git
The following commit(s) were added to refs/heads/cep-45-mutation-tracking by
this push:
new 7fe059077a CEP-45 - flushing memtables directly to repaired set
corrupts sstables
7fe059077a is described below
commit 7fe059077a96258a6366b3fc1119003f6e03aa88
Author: Blake Eggleston <[email protected]>
AuthorDate: Tue Oct 20 09:25:16 2026 -0700
CEP-45 - flushing memtables directly to repaired set corrupts sstables
Patch by Blake Eggleston; Reviewed by Francisco Guerrero for CASSANDRA-21789
---
.../org/apache/cassandra/io/sstable/format/SSTableWriter.java | 10 +++++++++-
.../cassandra/io/sstable/metadata/MetadataSerializer.java | 2 ++
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/src/java/org/apache/cassandra/io/sstable/format/SSTableWriter.java
b/src/java/org/apache/cassandra/io/sstable/format/SSTableWriter.java
index 27957132ab..1bec4cea35 100644
--- a/src/java/org/apache/cassandra/io/sstable/format/SSTableWriter.java
+++ b/src/java/org/apache/cassandra/io/sstable/format/SSTableWriter.java
@@ -19,6 +19,7 @@
package org.apache.cassandra.io.sstable.format;
import java.io.IOError;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
@@ -460,7 +461,14 @@ public abstract class SSTableWriter extends SSTable
implements Transactional
if (finalReader.getSSTableMetadata().repairedAt !=
stale.repairedAt)
{
metadata.put(MetadataType.STATS,
finalReader.getSSTableMetadata());
- new StatsComponent(metadata).save(descriptor);
+ try
+ {
+
descriptor.getMetadataSerializer().rewriteSSTableMetadata(descriptor, metadata);
+ }
+ catch (IOException e)
+ {
+ throw new FSWriteError(e,
descriptor.fileFor(Components.STATS));
+ }
}
}
}
diff --git
a/src/java/org/apache/cassandra/io/sstable/metadata/MetadataSerializer.java
b/src/java/org/apache/cassandra/io/sstable/metadata/MetadataSerializer.java
index 36325eea5f..4a4ed117f1 100644
--- a/src/java/org/apache/cassandra/io/sstable/metadata/MetadataSerializer.java
+++ b/src/java/org/apache/cassandra/io/sstable/metadata/MetadataSerializer.java
@@ -47,6 +47,7 @@ import org.apache.cassandra.io.util.File;
import org.apache.cassandra.io.util.FileDataInput;
import org.apache.cassandra.io.util.RandomAccessReader;
import org.apache.cassandra.replication.ImmutableCoordinatorLogOffsets;
+import org.apache.cassandra.utils.SyncUtil;
import org.apache.cassandra.utils.TimeUUID;
import static org.apache.cassandra.utils.FBUtilities.updateChecksumInt;
@@ -282,5 +283,6 @@ public class MetadataSerializer implements
IMetadataSerializer
throw new FSWriteError(e, file);
}
file.move(descriptor.fileFor(Components.STATS));
+ SyncUtil.trySyncDir(descriptor.directory);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]