1[Rule "stall-too-many-memtables"]
2suggestions=inc-bg-flush:inc-write-buffer
3conditions=stall-too-many-memtables
4
5[Condition "stall-too-many-memtables"]
6source=LOG
7regex=Stopping writes because we have \d+ immutable memtables \(waiting for flush\), max_write_buffer_number is set to \d+
8
9[Rule "stall-too-many-L0"]
10suggestions=inc-max-subcompactions:inc-max-bg-compactions:inc-write-buffer-size:dec-max-bytes-for-level-base:inc-l0-slowdown-writes-trigger
11conditions=stall-too-many-L0
12
13[Condition "stall-too-many-L0"]
14source=LOG
15regex=Stalling writes because we have \d+ level-0 files
16
17[Rule "stop-too-many-L0"]
18suggestions=inc-max-bg-compactions:inc-write-buffer-size:inc-l0-stop-writes-trigger
19conditions=stop-too-many-L0
20
21[Condition "stop-too-many-L0"]
22source=LOG
23regex=Stopping writes because we have \d+ level-0 files
24
25[Rule "stall-too-many-compaction-bytes"]
26suggestions=inc-max-bg-compactions:inc-write-buffer-size:inc-hard-pending-compaction-bytes-limit:inc-soft-pending-compaction-bytes-limit
27conditions=stall-too-many-compaction-bytes
28
29[Condition "stall-too-many-compaction-bytes"]
30source=LOG
31regex=Stalling writes because of estimated pending compaction bytes \d+
32
33[Suggestion "inc-bg-flush"]
34option=DBOptions.max_background_flushes
35action=increase
36
37[Suggestion "inc-write-buffer"]
38option=CFOptions.max_write_buffer_number
39action=increase
40
41[Suggestion "inc-max-subcompactions"]
42option=DBOptions.max_subcompactions
43action=increase
44
45[Suggestion "inc-max-bg-compactions"]
46option=DBOptions.max_background_compactions
47action=increase
48
49[Suggestion "inc-write-buffer-size"]
50option=CFOptions.write_buffer_size
51action=increase
52
53[Suggestion "dec-max-bytes-for-level-base"]
54option=CFOptions.max_bytes_for_level_base
55action=decrease
56
57[Suggestion "inc-l0-slowdown-writes-trigger"]
58option=CFOptions.level0_slowdown_writes_trigger
59action=increase
60
61[Suggestion "inc-l0-stop-writes-trigger"]
62option=CFOptions.level0_stop_writes_trigger
63action=increase
64
65[Suggestion "inc-hard-pending-compaction-bytes-limit"]
66option=CFOptions.hard_pending_compaction_bytes_limit
67action=increase
68
69[Suggestion "inc-soft-pending-compaction-bytes-limit"]
70option=CFOptions.soft_pending_compaction_bytes_limit
71action=increase
72
73[Rule "level0-level1-ratio"]
74conditions=level0-level1-ratio
75suggestions=l0-l1-ratio-health-check
76
77[Condition "level0-level1-ratio"]
78source=OPTIONS
79options=CFOptions.level0_file_num_compaction_trigger:CFOptions.write_buffer_size:CFOptions.max_bytes_for_level_base
80evaluate=int(options[0])*int(options[1])-int(options[2])>=-268173312  # should evaluate to a boolean, condition triggered if evaluates to true
81
82[Suggestion "l0-l1-ratio-health-check"]
83description='modify options such that (level0_file_num_compaction_trigger * write_buffer_size - max_bytes_for_level_base < -268173312) is satisfied'
84