From 6f99bee582da32868f6702b5584cae4244f1fd68 Mon Sep 17 00:00:00 2001 From: Reneta Popova Date: Thu, 14 Aug 2025 15:48:21 +0200 Subject: [PATCH] Document throughput based checkpoint limiter (#2535) --- .../database-internals/checkpointing.adoc | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/modules/ROOT/pages/database-internals/checkpointing.adoc b/modules/ROOT/pages/database-internals/checkpointing.adoc index 000406e0c..2ef608ba4 100644 --- a/modules/ROOT/pages/database-internals/checkpointing.adoc +++ b/modules/ROOT/pages/database-internals/checkpointing.adoc @@ -98,7 +98,7 @@ The default value of `db.tx_log.rotation.retention_policy` is changed from `2 da For more information, see xref:database-internals/transaction-logs.adoc#transaction-logging-log-retention[Configure transaction log retention policy]. Having the least amount of transaction log data speeds up the checkpoint process. -To configure the number of IOs per second the checkpoint process is allowed to use, use the configuration parameter xref:configuration/configuration-settings.adoc#config_db.checkpoint.iops.limit[`db.checkpoint.iops.limit`]. +To configure the number of IOs per second the checkpoint process is allowed to use, set the configuration parameter xref:configuration/configuration-settings.adoc#config_db.checkpoint.iops.limit[`db.checkpoint.iops.limit`]. [NOTE] ==== @@ -106,6 +106,23 @@ Disabling the IOPS limit can cause transaction processing to slow down a bit. For more information, see xref:performance/disks-ram-and-other-tips.adoc#performance-checkpoint-iops-limit[Checkpoint IOPS limit] and xref:configuration/configuration-settings.adoc#_transaction_log_settings[Transaction log settings]. ==== +Additionally, starting from 2025.07, you can also use xref:configuration/configuration-settings.adoc#config_db.checkpoint.throughput.limit[`db.checkpoint.throughput.limit`] to define checkpoint speed in terms of bytes per second. +Compared to the IOPS limit, the throughput limit enforces a stricter control over flush speed, with the checkpoint process yielding more to stay within the configured throughput. + +Starting from 2025.07, the checkpoint log messages also include the average flush speed: + +.Example of a log message with IOPS-limited checkpoint +[results] +---- +Checkpoint triggered by "Call to db.checkpoint() procedure" @ txId: 92, append index: 92 checkpoint completed in 7s 464ms. Checkpoint flushed 251909 pages (9% of total available pages), in 249641 IOs. Checkpoint performed with IO limit: 600 IOPS, paused in total 70 times(6026 millis). Average checkpoint flush speed: 281.1MiB/s. +---- + +.Example of a log message with throughput-limited checkpoint +[results] +---- +Checkpoint triggered by "Call to db.checkpoint() procedure" @ txId: 88, append index: 88 checkpoint completed in 39s 457ms. Checkpoint flushed 314688 pages (12% of total available pages), in 311753 IOs. Checkpoint performed with IO limit: 64.00MiB/s, paused in total 77 times(38085 millis). Average checkpoint flush speed: 63.04MiB/s. +---- + [[checkpoint-logging-and-metrics]] == Checkpoint logging and metrics