Explicitly set compression to none by default for blockstore columns (#32426)

Per rust-rocksdb docs, snappy compression will be the default if snappy
feature is enabled in that crate. We don't want compression by default
and there is seemingly a minor bug with the compression type selection
upstream, so explicitly set compression type to none in our code.
This commit is contained in:
steviez 2023-07-10 11:49:14 -05:00 committed by GitHub
parent a58b84ce95
commit d7250b10d9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 7 additions and 2 deletions

View File

@ -21,8 +21,9 @@ use {
compaction_filter::CompactionFilter, compaction_filter::CompactionFilter,
compaction_filter_factory::{CompactionFilterContext, CompactionFilterFactory}, compaction_filter_factory::{CompactionFilterContext, CompactionFilterFactory},
properties as RocksProperties, ColumnFamily, ColumnFamilyDescriptor, CompactionDecision, properties as RocksProperties, ColumnFamily, ColumnFamilyDescriptor, CompactionDecision,
DBCompactionStyle, DBIterator, DBPinnableSlice, DBRawIterator, FifoCompactOptions, DBCompactionStyle, DBCompressionType, DBIterator, DBPinnableSlice, DBRawIterator,
IteratorMode as RocksIteratorMode, LiveFile, Options, WriteBatch as RWriteBatch, DB, FifoCompactOptions, IteratorMode as RocksIteratorMode, LiveFile, Options,
WriteBatch as RWriteBatch, DB,
}, },
serde::{de::DeserializeOwned, Serialize}, serde::{de::DeserializeOwned, Serialize},
solana_runtime::hardened_unpack::UnpackError, solana_runtime::hardened_unpack::UnpackError,
@ -1709,6 +1710,10 @@ fn process_cf_options_advanced<C: 'static + Column + ColumnName>(
cf_options: &mut Options, cf_options: &mut Options,
column_options: &LedgerColumnOptions, column_options: &LedgerColumnOptions,
) { ) {
// Explicitly disable compression on all columns by default
// See https://docs.rs/rocksdb/0.21.0/rocksdb/struct.Options.html#method.set_compression_type
cf_options.set_compression_type(DBCompressionType::None);
if should_enable_compression::<C>() { if should_enable_compression::<C>() {
cf_options.set_compression_type( cf_options.set_compression_type(
column_options column_options