Skip to content

Commit ef81c66

Browse files
docs: recommend InnoDB over MEMORY engine for Boost tables
Refs #106 Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>
1 parent c707c76 commit ef81c66

1 file changed

Lines changed: 23 additions & 9 deletions

File tree

Boost.md

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,22 @@ on demand by the Cacti Administrator. They include:
3131

3232
## Prerequisites
3333

34+
> **Recommendation**: For most installations, especially those using the
35+
> **multiprocessing update** feature introduced in Cacti 1.2.17, or any
36+
> deployment with multiple Data Collectors, use **InnoDB** for all Boost tables.
37+
> The MEMORY engine can cause race conditions between concurrent processes
38+
> competing for memory table locks, which leads to polling backlogs and data
39+
> loss on busy systems. InnoDB with SSD or NVMe storage performs comparably and
40+
> avoids these failure modes. MEMORY tables are also incompatible with MariaDB
41+
> Galera and MySQL replication.
42+
3443
In its initial design the Boost process leveraged MySQL Memory Tables to
35-
increase overall performance, and to reduce writing data to disk. This is still
36-
a valid case however, with improvements in InnoDB performance over the years
37-
combined with Flash storage, the need for using MySQL Memory Tables has
38-
diminished. In some cases, for example when using MariaDB Galera, or MySQL
39-
Master/Slave replication, it can not be used.
44+
increase overall performance, and to reduce writing data to disk. With
45+
improvements in InnoDB performance over the years combined with Flash storage,
46+
the need for MySQL Memory Tables has diminished. The sections below document
47+
MEMORY table sizing for sites that have an explicit reason to use it, but InnoDB
48+
is the recommended engine. Cacti installs MEMORY tables by default; see below
49+
for the conversion steps.
4050

4151
If you do wish to use Memory you have to pay close attention to the amount of
4252
data that will be cached in your design. You should periodically check that you
@@ -178,10 +188,14 @@ Then, save the file, and restart MySQL. Once this is done, you are ready to
178188

179189
## Flushing the Boost Cache
180190

181-
If you are planning on system maintenance if you are using MEMORY storage in
182-
MySQL or MariaDB, you should flush your Boost Cache before your system is taken
183-
offline for maintenance. To do this, you simply login to the Cacti system as
184-
root, and flush the Cache using the commands below
191+
> **Warning**: MEMORY tables are cleared on every MySQL/MariaDB restart. If you
192+
> are using MEMORY storage, always flush the Boost Cache before taking the
193+
> database offline. Failure to do so will result in loss of all buffered poller
194+
> data since the last flush.
195+
196+
If you are planning on system maintenance and are using MEMORY storage in
197+
MySQL or MariaDB, flush your Boost Cache before the system is taken offline.
198+
Login to the Cacti system as root and run the following:
185199

186200
```console
187201
cd /var/www/html/cacti

0 commit comments

Comments
 (0)