Cap max table files size in db stress FIFO compactions (#14341)

Summary:
FIFO crash tests fail on DB open when `fifo_compaction_max_data_files_size_mb` is randomly set to 100 or 500 MB, because `max_table_files_size` defaults to 1GB and the validation requires `max_data_files_size` >= `max_table_files_size` when non-zero. Cap `max_table_files_size` to `max_data_files_size` in db_stress when the latter is set. `max_table_files_size` is ignored at runtime when `max_data_files_size` is non-zero, so this only satisfies the validation constraint.

Pull Request resolved: https://github.com/facebook/rocksdb/pull/14341

Reviewed By: pdillinger

Differential Revision: D93503113

Pulled By: mszeszko-meta

fbshipit-source-id: 5c3e7c9b568661244c71c548cb0fe5e55472c0ca
This commit is contained in:
Maciej Szeszko
2026-02-17 11:49:20 -08:00
committed by meta-codesync[bot]
parent 88ff4f6b12
commit 821bd37d09
+5
View File
@@ -4381,6 +4381,11 @@ void InitializeOptionsFromFlags(
if (FLAGS_fifo_compaction_max_data_files_size_mb > 0) {
options.compaction_options_fifo.max_data_files_size =
FLAGS_fifo_compaction_max_data_files_size_mb * 1024 * 1024;
// max_table_files_size is ignored when max_data_files_size is non-zero,
// but validation requires max_data_files_size >= max_table_files_size.
options.compaction_options_fifo.max_table_files_size =
std::min(options.compaction_options_fifo.max_table_files_size,
options.compaction_options_fifo.max_data_files_size);
}
options.compaction_options_fifo.use_kv_ratio_compaction =
FLAGS_fifo_compaction_use_kv_ratio_compaction;