I have a small RocksDB stored in a RAM filesystem on Windows. The total size is about 25MB, with 15-20 column families.
The DB options are configured as follows:
options.max_total_wal_size = 10 * 1024 * 1024; // 10 MB
options.wal_bytes_per_sync = 512 * 1024; // 512 KB
options.write_buffer_size = 16 * 1024 * 1024; // 16 MB
options.max_write_buffer_number = 6;
options.level0_file_num_compaction_trigger = 4;
options.level0_slowdown_writes_trigger = 8;
options.level0_stop_writes_trigger = 12;
options.max_background_jobs = 4;
options.max_subcompactions = 4;
options.max_open_files = 5000;
options.avoid_flush_during_recovery = true;
From another application, a secondary instance is opened and periodically synchronized with the primary instance using TryCatchUpWithPrimary(). The time for each catch-up operation is about 2 seconds, which is too high from my perspective (I expect it to be less than 1 second). I know RocksDB provides a huge number of tuning options, but I’m not sure which ones might help in this case.
Could you please provide recommendations on how to tune RocksDB for this scenario?