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]

Reply via email to