1919
2020import static com .datastax .oss .driver .api .querybuilder .SchemaBuilder .RowsPerPartition ;
2121
22+ import com .datastax .oss .driver .api .core .config .DriverConfigLoader ;
2223import com .datastax .oss .driver .api .querybuilder .SchemaBuilder ;
2324import com .datastax .oss .driver .api .querybuilder .schema .compaction .CompactionStrategy ;
2425import com .datastax .oss .driver .shaded .guava .common .collect .ImmutableMap ;
@@ -97,22 +98,32 @@ default SelfT withCompaction(@NonNull CompactionStrategy<?> compactionStrategy)
9798 }
9899
99100 /**
100- * Configures compression using the LZ4 algorithm with the given chunk length and crc check
101- * chance.
102- *
103- * @see #withCompression(String, int, double)
101+ * @deprecated This method only exists for backward compatibility. Use {@link
102+ * RelationOptions#withLZ4Compression(chunkLengthKB)} instead.
104103 */
104+ @ Deprecated
105105 @ NonNull
106106 @ CheckReturnValue
107107 default SelfT withLZ4Compression (int chunkLengthKB , double crcCheckChance ) {
108108 return withCompression ("LZ4Compressor" , chunkLengthKB , crcCheckChance );
109109 }
110110
111+ /**
112+ * Configures compression using the LZ4 algorithm with the given chunk length.
113+ *
114+ * @see #withCompression(String, int)
115+ */
116+ @ NonNull
117+ @ CheckReturnValue
118+ default SelfT withLZ4Compression (int chunkLengthKB ) {
119+ return withCompression ("LZ4Compressor" , chunkLengthKB );
120+ }
121+
111122 /**
112123 * Configures compression using the LZ4 algorithm using the default configuration (64kb
113- * chunk_length, and 1.0 crc_check_chance ).
124+ * chunk_length).
114125 *
115- * @see #withCompression(String, int, double )
126+ * @see #withCompression(String, int)
116127 */
117128 @ NonNull
118129 @ CheckReturnValue
@@ -121,22 +132,55 @@ default SelfT withLZ4Compression() {
121132 }
122133
123134 /**
124- * Configures compression using the Snappy algorithm with the given chunk length and crc check
125- * chance.
135+ * Configures compression using the Zstd algorithm with the given chunk length.
136+ *
137+ * @see #withCompression(String, int)
138+ */
139+ @ NonNull
140+ @ CheckReturnValue
141+ default SelfT withZstdCompression (int chunkLengthKB ) {
142+ return withCompression ("org.apache.cassandra.io.compress.ZstdCompressor" , chunkLengthKB );
143+ }
144+
145+ /**
146+ * Configures compression using the Zstd algorithm using the default configuration (64kb
147+ * chunk_length).
126148 *
127- * @see #withCompression(String, int, double)
149+ * @see #withCompression(String, int)
150+ */
151+ @ NonNull
152+ @ CheckReturnValue
153+ default SelfT withZstdCompression () {
154+ return withCompression ("org.apache.cassandra.io.compress.ZstdCompressor" );
155+ }
156+
157+ /**
158+ * @deprecated This method only exists for backward compatibility. Use {@link
159+ * RelationOptions#withSnappyCompression(chunkLengthKB)} instead.
128160 */
161+ @ Deprecated
129162 @ NonNull
130163 @ CheckReturnValue
131164 default SelfT withSnappyCompression (int chunkLengthKB , double crcCheckChance ) {
132165 return withCompression ("SnappyCompressor" , chunkLengthKB , crcCheckChance );
133166 }
134167
168+ /**
169+ * Configures compression using the Snappy algorithm with the given chunk length.
170+ *
171+ * @see #withCompression(String, int)
172+ */
173+ @ NonNull
174+ @ CheckReturnValue
175+ default SelfT withSnappyCompression (int chunkLengthKB ) {
176+ return withCompression ("SnappyCompressor" , chunkLengthKB );
177+ }
178+
135179 /**
136180 * Configures compression using the Snappy algorithm using the default configuration (64kb
137- * chunk_length, and 1.0 crc_check_chance ).
181+ * chunk_length).
138182 *
139- * @see #withCompression(String, int, double )
183+ * @see #withCompression(String, int)
140184 */
141185 @ NonNull
142186 @ CheckReturnValue
@@ -145,22 +189,32 @@ default SelfT withSnappyCompression() {
145189 }
146190
147191 /**
148- * Configures compression using the Deflate algorithm with the given chunk length and crc check
149- * chance.
150- *
151- * @see #withCompression(String, int, double)
192+ * @deprecated This method only exists for backward compatibility. Use {@link
193+ * RelationOptions#withDeflateCompression(chunkLengthKB)} instead.
152194 */
195+ @ Deprecated
153196 @ NonNull
154197 @ CheckReturnValue
155198 default SelfT withDeflateCompression (int chunkLengthKB , double crcCheckChance ) {
156199 return withCompression ("DeflateCompressor" , chunkLengthKB , crcCheckChance );
157200 }
158201
202+ /**
203+ * Configures compression using the Deflate algorithm with the given chunk length.
204+ *
205+ * @see #withCompression(String, int)
206+ */
207+ @ NonNull
208+ @ CheckReturnValue
209+ default SelfT withDeflateCompression (int chunkLengthKB ) {
210+ return withCompression ("DeflateCompressor" , chunkLengthKB );
211+ }
212+
159213 /**
160214 * Configures compression using the Deflate algorithm using the default configuration (64kb
161215 * chunk_length, and 1.0 crc_check_chance).
162216 *
163- * @see #withCompression(String, int, double )
217+ * @see #withCompression(String, int)
164218 */
165219 @ NonNull
166220 @ CheckReturnValue
@@ -170,13 +224,13 @@ default SelfT withDeflateCompression() {
170224
171225 /**
172226 * Configures compression using the given algorithm using the default configuration (64kb
173- * chunk_length, and 1.0 crc_check_chance ).
227+ * chunk_length).
174228 *
175229 * <p>Unless specifying a custom compression algorithm implementation, it is recommended to use
176230 * {@link #withLZ4Compression()}, {@link #withSnappyCompression()}, or {@link
177231 * #withDeflateCompression()}.
178232 *
179- * @see #withCompression(String, int, double )
233+ * @see #withCompression(String, int)
180234 */
181235 @ NonNull
182236 @ CheckReturnValue
@@ -185,27 +239,43 @@ default SelfT withCompression(@NonNull String compressionAlgorithmName) {
185239 }
186240
187241 /**
188- * Configures compression using the given algorithm, chunk length and crc check chance .
242+ * Configures compression using the given algorithm, chunk length.
189243 *
190244 * <p>Unless specifying a custom compression algorithm implementation, it is recommended to use
191245 * {@link #withLZ4Compression()}, {@link #withSnappyCompression()}, or {@link
192246 * #withDeflateCompression()}.
193247 *
194248 * @param compressionAlgorithmName The class name of the compression algorithm.
195249 * @param chunkLengthKB The chunk length in KB of compression blocks. Defaults to 64.
196- * @param crcCheckChance The probability (0.0 to 1.0) that checksum will be checked on each read.
197- * Defaults to 1.0.
198250 */
199251 @ NonNull
200252 @ CheckReturnValue
253+ default SelfT withCompression (
254+ @ NonNull String compressionAlgorithmName , int chunkLengthKB ) {
255+ return withOption (
256+ "compression" ,
257+ ImmutableMap .of (
258+ "class" ,
259+ compressionAlgorithmName ,
260+ "chunk_length_in_kb" ,
261+ chunkLengthKB ));
262+ }
263+
264+ /**
265+ * @deprecated This method only exists for backward compatibility. Use {@link
266+ * RelationOptions#withCompression(compressionAlgorithmName, chunkLengthKB)} instead.
267+ */
268+ @ NonNull
269+ @ CheckReturnValue
270+ @ Deprecated
201271 default SelfT withCompression (
202272 @ NonNull String compressionAlgorithmName , int chunkLengthKB , double crcCheckChance ) {
203273 return withOption (
204274 "compression" ,
205275 ImmutableMap .of (
206276 "class" ,
207277 compressionAlgorithmName ,
208- "chunk_length_in_kb " ,
278+ "chunk_length_kb " ,
209279 chunkLengthKB ,
210280 "crc_check_chance" ,
211281 crcCheckChance ));
0 commit comments