Skip to content

Commit

Permalink
v2.0: Deprecate --rocksdb-shred-compaction fifo (backport of #1882) (#…
Browse files Browse the repository at this point in the history
…1907)

Deprecate --rocksdb-shred-compaction fifo (#1882)

The fifo compaction option was originally added to mitigate write
stalls that were occurring with level compaction. Since fifo was
introduced, the level compaction implementation has been optimized
to reduce I/O amplification. With these improvements, level and fifo
are comparable and sticking with level only simplifies things.

For now, only a deprecation warning will be printed. In the next
release branch (2.1.0), specifying fifo will be an error

(cherry picked from commit e15e235)

Co-authored-by: steviez <steven@anza.xyz>
  • Loading branch information
mergify[bot] and steviez authored Jun 28, 2024
1 parent c21767a commit 54d4f7d
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 10 deletions.
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@ Release channels have their own copy of this changelog:
* Partitions are recalculated on boot from snapshot (#1159)
* `epoch_rewards_status` removed from snapshot (#1274)
* Added `unified-scheduler` option for `--block-verification-method` (#1668)
* Deprecate the `fifo` option for `--rocksdb-shred-compaction` (#1882)
* `fifo` will remain supported in v2.0 with plans to fully remove in v2.1

## [1.18.0]
* Changes
Expand Down
30 changes: 20 additions & 10 deletions validator/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1771,16 +1771,26 @@ pub fn main() {
None => ShredStorageType::default(),
Some(shred_compaction_string) => match shred_compaction_string {
"level" => ShredStorageType::RocksLevel,
"fifo" => match matches.value_of("rocksdb_fifo_shred_storage_size") {
None => ShredStorageType::rocks_fifo(default_fifo_shred_storage_size(
&validator_config,
)),
Some(_) => ShredStorageType::rocks_fifo(Some(value_t_or_exit!(
matches,
"rocksdb_fifo_shred_storage_size",
u64
))),
},
"fifo" => {
warn!(
"The value \"fifo\" for --rocksdb-shred-compaction has been deprecated. \
Use of \"fifo\" will still work for now, but is planned for full removal \
in v2.1. To update, use \"level\" for --rocksdb-shred-compaction, or \
remove the --rocksdb-shred-compaction argument altogether. Note that the \
entire \"rocksdb_fifo\" subdirectory within the ledger directory will \
need to be manually removed once the validator is running with \"level\"."
);
match matches.value_of("rocksdb_fifo_shred_storage_size") {
None => ShredStorageType::rocks_fifo(default_fifo_shred_storage_size(
&validator_config,
)),
Some(_) => ShredStorageType::rocks_fifo(Some(value_t_or_exit!(
matches,
"rocksdb_fifo_shred_storage_size",
u64
))),
}
}
_ => panic!("Unrecognized rocksdb-shred-compaction: {shred_compaction_string}"),
},
},
Expand Down

0 comments on commit 54d4f7d

Please sign in to comment.