[Rule "single-condition-false"]
suggestions=inc-bg-flush:inc-write-buffer
conditions=log-4-false

[Rule "multiple-conds-true"]
suggestions=inc-write-buffer
conditions=log-1-true:log-2-true:log-3-true

[Rule "multiple-conds-one-false"]
suggestions=inc-bg-flush
conditions=log-1-true:log-4-false:log-3-true

[Rule "multiple-conds-all-false"]
suggestions=l0-l1-ratio-health-check
conditions=log-4-false:options-1-false

[Condition "log-1-true"]
source=LOG
regex=Stopping writes because we have \d+ immutable memtables \(waiting for flush\), max_write_buffer_number is set to \d+

[Condition "log-2-true"]
source=LOG
regex=Stalling writes because we have \d+ level-0 files

[Condition "log-3-true"]
source=LOG
regex=Stopping writes because we have \d+ level-0 files

[Condition "log-4-false"]
source=LOG
regex=Stalling writes because of estimated pending compaction bytes \d+

[Condition "options-1-false"]
source=OPTIONS
options=CFOptions.level0_file_num_compaction_trigger:CFOptions.write_buffer_size:DBOptions.random_access_max_buffer_size
evaluate=int(options[0])*int(options[1])-int(options[2])<0  # should evaluate to a boolean

[Suggestion "inc-bg-flush"]
option=DBOptions.max_background_flushes
action=increase

[Suggestion "inc-write-buffer"]
option=CFOptions.max_write_buffer_number
action=increase

[Suggestion "l0-l1-ratio-health-check"]
description='modify options such that (level0_file_num_compaction_trigger * write_buffer_size - max_bytes_for_level_base < 5) is satisfied'
