diff --git a/CHANGES.txt b/CHANGES.txt index aaea77307b..5fd28bcbb6 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 4.0 + * Lower default chunk_length_in_kb from 64kb to 16kb (CASSANDRA-13241) * Startup checker should wait for count rather than percentage (CASSANDRA-14297) * Fix incorrect sorting of replicas in SimpleStrategy.calculateNaturalReplicas (CASSANDRA-14862) * Partitioned outbound internode TCP connections can occur when nodes restart (CASSANDRA-14358) diff --git a/NEWS.txt b/NEWS.txt index 63c4a47cf5..af28b6e547 100644 --- a/NEWS.txt +++ b/NEWS.txt @@ -108,6 +108,9 @@ New features Upgrading --------- + - CASSANDRA-13241 lowered the default chunk_lengh_in_kb for compresesd tables from + 64kb to 16kb. For highly compressible data this can have a noticeable impact + on space utilization. You may want to consider manually specifying this value. - Additional columns have been added to system_distributed.repair_history, system_traces.sessions and system_traces.events. As a result select * queries againsts these tables will fail and generate an error in the log diff --git a/src/java/org/apache/cassandra/schema/CompressionParams.java b/src/java/org/apache/cassandra/schema/CompressionParams.java index d644c56912..25631116de 100644 --- a/src/java/org/apache/cassandra/schema/CompressionParams.java +++ b/src/java/org/apache/cassandra/schema/CompressionParams.java @@ -55,7 +55,7 @@ public final class CompressionParams private static volatile boolean hasLoggedChunkLengthWarning; private static volatile boolean hasLoggedCrcCheckChanceWarning; - public static final int DEFAULT_CHUNK_LENGTH = 65536; + public static final int DEFAULT_CHUNK_LENGTH = 1024 * 16; public static final double DEFAULT_MIN_COMPRESS_RATIO = 0.0; // Since pre-4.0 versions do not understand the // new compression parameter we can't use a // different default value. diff --git a/test/unit/org/apache/cassandra/cql3/validation/operations/AlterTest.java b/test/unit/org/apache/cassandra/cql3/validation/operations/AlterTest.java index a792bcbc68..79db6f29ae 100644 --- a/test/unit/org/apache/cassandra/cql3/validation/operations/AlterTest.java +++ b/test/unit/org/apache/cassandra/cql3/validation/operations/AlterTest.java @@ -347,7 +347,7 @@ public class AlterTest extends CQLTester SchemaKeyspace.TABLES), KEYSPACE, currentTable()), - row(map("chunk_length_in_kb", "64", "class", "org.apache.cassandra.io.compress.LZ4Compressor"))); + row(map("chunk_length_in_kb", "16", "class", "org.apache.cassandra.io.compress.LZ4Compressor"))); execute("ALTER TABLE %s WITH compression = { 'class' : 'SnappyCompressor', 'chunk_length_in_kb' : 32 };"); @@ -374,7 +374,7 @@ public class AlterTest extends CQLTester SchemaKeyspace.TABLES), KEYSPACE, currentTable()), - row(map("chunk_length_in_kb", "64", "class", "org.apache.cassandra.io.compress.LZ4Compressor", "min_compress_ratio", "2.0"))); + row(map("chunk_length_in_kb", "16", "class", "org.apache.cassandra.io.compress.LZ4Compressor", "min_compress_ratio", "2.0"))); execute("ALTER TABLE %s WITH compression = { 'class' : 'LZ4Compressor', 'min_compress_ratio' : 1 };"); @@ -383,7 +383,7 @@ public class AlterTest extends CQLTester SchemaKeyspace.TABLES), KEYSPACE, currentTable()), - row(map("chunk_length_in_kb", "64", "class", "org.apache.cassandra.io.compress.LZ4Compressor", "min_compress_ratio", "1.0"))); + row(map("chunk_length_in_kb", "16", "class", "org.apache.cassandra.io.compress.LZ4Compressor", "min_compress_ratio", "1.0"))); execute("ALTER TABLE %s WITH compression = { 'class' : 'LZ4Compressor', 'min_compress_ratio' : 0 };"); @@ -392,7 +392,7 @@ public class AlterTest extends CQLTester SchemaKeyspace.TABLES), KEYSPACE, currentTable()), - row(map("chunk_length_in_kb", "64", "class", "org.apache.cassandra.io.compress.LZ4Compressor"))); + row(map("chunk_length_in_kb", "16", "class", "org.apache.cassandra.io.compress.LZ4Compressor"))); execute("ALTER TABLE %s WITH compression = { 'class' : 'SnappyCompressor', 'chunk_length_in_kb' : 32 };"); execute("ALTER TABLE %s WITH compression = { 'enabled' : 'false'};"); diff --git a/test/unit/org/apache/cassandra/cql3/validation/operations/CreateTest.java b/test/unit/org/apache/cassandra/cql3/validation/operations/CreateTest.java index 37605d6695..1c3b44913a 100644 --- a/test/unit/org/apache/cassandra/cql3/validation/operations/CreateTest.java +++ b/test/unit/org/apache/cassandra/cql3/validation/operations/CreateTest.java @@ -564,7 +564,7 @@ public class CreateTest extends CQLTester SchemaKeyspace.TABLES), KEYSPACE, currentTable()), - row(map("chunk_length_in_kb", "64", "class", "org.apache.cassandra.io.compress.LZ4Compressor"))); + row(map("chunk_length_in_kb", "16", "class", "org.apache.cassandra.io.compress.LZ4Compressor"))); createTable("CREATE TABLE %s (a text, b int, c int, primary key (a, b))" + " WITH compression = { 'class' : 'SnappyCompressor', 'chunk_length_in_kb' : 32 };"); @@ -604,7 +604,7 @@ public class CreateTest extends CQLTester SchemaKeyspace.TABLES), KEYSPACE, currentTable()), - row(map("chunk_length_in_kb", "64", "class", "org.apache.cassandra.io.compress.SnappyCompressor", "min_compress_ratio", "2.0"))); + row(map("chunk_length_in_kb", "16", "class", "org.apache.cassandra.io.compress.SnappyCompressor", "min_compress_ratio", "2.0"))); createTable("CREATE TABLE %s (a text, b int, c int, primary key (a, b))" + " WITH compression = { 'sstable_compression' : 'SnappyCompressor', 'min_compress_ratio' : 1 };"); @@ -614,7 +614,7 @@ public class CreateTest extends CQLTester SchemaKeyspace.TABLES), KEYSPACE, currentTable()), - row(map("chunk_length_in_kb", "64", "class", "org.apache.cassandra.io.compress.SnappyCompressor", "min_compress_ratio", "1.0"))); + row(map("chunk_length_in_kb", "16", "class", "org.apache.cassandra.io.compress.SnappyCompressor", "min_compress_ratio", "1.0"))); createTable("CREATE TABLE %s (a text, b int, c int, primary key (a, b))" + " WITH compression = { 'sstable_compression' : 'SnappyCompressor', 'min_compress_ratio' : 0 };"); @@ -624,7 +624,7 @@ public class CreateTest extends CQLTester SchemaKeyspace.TABLES), KEYSPACE, currentTable()), - row(map("chunk_length_in_kb", "64", "class", "org.apache.cassandra.io.compress.SnappyCompressor"))); + row(map("chunk_length_in_kb", "16", "class", "org.apache.cassandra.io.compress.SnappyCompressor"))); createTable("CREATE TABLE %s (a text, b int, c int, primary key (a, b))" + " WITH compression = { 'sstable_compression' : '', 'chunk_length_kb' : 32 };");