This is an automated email from the ASF dual-hosted git repository. ycai pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git
commit cbabfd39b1bad7024283c537b027207cdd65bf67 Merge: 01d8cbdd1e 9dc0378c2f Author: Yifan Cai <[email protected]> AuthorDate: Thu Nov 30 17:47:18 2023 +0800 Merge branch 'cassandra-5.0' into trunk CHANGES.txt | 1 + .../cassandra/io/sstable/CQLSSTableWriter.java | 59 ++++++++++++--- .../io/sstable/SSTableSimpleUnsortedWriter.java | 11 +-- .../cassandra/io/sstable/SSTableSimpleWriter.java | 88 ++++++++++++++++++---- .../cassandra/io/sstable/SSTableTxnWriter.java | 11 +++ .../cassandra/io/sstable/CQLSSTableWriterTest.java | 76 +++++++++++++++++++ .../io/sstable/StressCQLSSTableWriter.java | 2 +- 7 files changed, 215 insertions(+), 33 deletions(-) diff --cc CHANGES.txt index ecc330bf8b,98cd7ba1b0..d1488c7c58 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -52,10 -56,8 +52,11 @@@ Merged from 4.1 * Internode legacy SSL storage port certificate is not hot reloaded on update (CASSANDRA-18681) * Nodetool paxos-only repair is no longer incremental (CASSANDRA-18466) Merged from 4.0: - * Retrieve keyspaces metadata and schema version concistently in DescribeStatement (CASSANDRA-18921) ++ * Support max SSTable size in sorted CQLSSTableWriter (CASSANDRA-18941) + * Fix nodetool repair_admin summarize-pending command to not throw exception (CASSANDRA-19014) + * Fix cassandra-stress in simplenative mode with prepared statements (CASSANDRA-18744) + * Fix filtering system ks sstables for relocation on startup (CASSANDRA-18963) + * Remove completed coordinator sessions (CASSANDRA-18903) * Gossip NPE due to shutdown event corrupting empty statuses (CASSANDRA-18913) * Update hdrhistogram to 2.1.12 (CASSANDRA-18893) * Improve performance of compactions when table does not have an index (CASSANDRA-18773) diff --cc src/java/org/apache/cassandra/io/sstable/CQLSSTableWriter.java index 0d804bf4f2,c164066ba3..60e2179c0f --- a/src/java/org/apache/cassandra/io/sstable/CQLSSTableWriter.java +++ b/src/java/org/apache/cassandra/io/sstable/CQLSSTableWriter.java @@@ -568,23 -591,26 +593,30 @@@ public class CQLSSTableWriter implement Preconditions.checkState(Sets.difference(SchemaConstants.LOCAL_SYSTEM_KEYSPACE_NAMES, Schema.instance.getKeyspaces()).isEmpty(), "Local keyspaces were not loaded. If this is running as a client, please make sure to add %s=true system property.", CassandraRelevantProperties.FORCE_LOAD_LOCAL_KEYSPACES.getKey()); + + // Assign the default max SSTable size if not defined in builder + if (isMaxSSTableSizeUnset()) + { + maxSSTableSizeInMiB = sorted ? -1L : DEFAULT_BUFFER_SIZE_IN_MIB_FOR_UNSORTED; + } + synchronized (CQLSSTableWriter.class) { - String keyspaceName = schemaStatement.keyspace(); - Schema.instance.transform(SchemaTransformations.addKeyspace(KeyspaceMetadata.create(keyspaceName, - KeyspaceParams.simple(1), - Tables.none(), - Views.none(), - Types.none(), - UserFunctions.none()), true)); + Schema.instance.submit(SchemaTransformations.addKeyspace(KeyspaceMetadata.create(keyspaceName, + KeyspaceParams.simple(1), + Tables.none(), + Views.none(), + Types.none(), + UserFunctions.none()), true)); - KeyspaceMetadata ksm = Schema.instance.getKeyspaceMetadata(keyspaceName); + KeyspaceMetadata ksm = KeyspaceMetadata.create(keyspaceName, + KeyspaceParams.simple(1), + Tables.none(), + Views.none(), + Types.none(), + UserFunctions.none()); TableMetadata tableMetadata = ksm.tables.getNullable(schemaStatement.table()); if (tableMetadata == null) @@@ -597,10 -623,10 +629,10 @@@ ModificationStatement preparedModificationStatement = prepareModificationStatement(); - TableMetadataRef ref = TableMetadataRef.forOfflineTools(tableMetadata); + TableMetadataRef ref = tableMetadata.ref; AbstractSSTableSimpleWriter writer = sorted - ? new SSTableSimpleWriter(directory, ref, preparedModificationStatement.updatedColumns()) - : new SSTableSimpleUnsortedWriter(directory, ref, preparedModificationStatement.updatedColumns(), bufferSizeInMiB); + ? new SSTableSimpleWriter(directory, ref, preparedModificationStatement.updatedColumns(), maxSSTableSizeInMiB) + : new SSTableSimpleUnsortedWriter(directory, ref, preparedModificationStatement.updatedColumns(), maxSSTableSizeInMiB); if (format != null) writer.setSSTableFormatType(format); diff --cc test/unit/org/apache/cassandra/io/sstable/CQLSSTableWriterTest.java index 6039f0aba7,c5e69fb65d..ee78862f83 --- a/test/unit/org/apache/cassandra/io/sstable/CQLSSTableWriterTest.java +++ b/test/unit/org/apache/cassandra/io/sstable/CQLSSTableWriterTest.java @@@ -31,7 -31,7 +31,8 @@@ import java.util.stream.StreamSupport import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; + import org.apache.cassandra.io.sstable.format.big.BigFormat; +import org.apache.cassandra.ServerTestUtils; import org.apache.cassandra.io.util.File; import org.junit.Before; import org.junit.BeforeClass; --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
