Skip to content

Commit 2ac52d6

Browse files
authored
Improve the checkpoint setting descriptions (#1062)
Replaces #838 Depends on neo-technology/neo4j#25103
1 parent bcd8121 commit 2ac52d6

File tree

1 file changed

+37
-6
lines changed

1 file changed

+37
-6
lines changed

modules/ROOT/pages/configuration/configuration-settings.adoc

Lines changed: 37 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,16 @@ See also, <<Transaction log settings>>.
4343
[frame="topbot", stripes=odd, grid="cols", cols="<1s,<4"]
4444
|===
4545
|Description
46-
a|Configures the general policy for when checkpoints should occur. The default policy is the 'periodic' checkpoint policy, as specified by the xref:configuration/configuration-settings.adoc#config_db.checkpoint.interval.tx[`db.checkpoint.interval.tx`] and xref:configuration/configuration-settings.adoc#config_db.checkpoint.interval.time[`db.checkpoint.interval.time`] settings. The Neo4j Enterprise Edition provides two alternative policies: The first is the 'continuous' checkpoint policy, which will ignore those settings and run the checkpoint process all the time. The second is the 'volumetric' checkpoint policy, which makes a best-effort at checkpointing often enough so that the database doesn't get too far behind on deleting old transaction logs in accordance with the `<<config_db.tx_log.rotation.retention_policy,db.tx_log.rotation.retention_policy>>` setting.
46+
a|Configures the general policy for when checkpoints should occur.
47+
Possible values are:
48+
49+
* `PERIODIC` (default)- it runs a checkpoint as per the interval specified by `<<config_db.checkpoint.interval.tx,db.checkpoint.interval.tx>>` and `<<config_db.checkpoint.interval.time,db.checkpoint.interval.time>>`.
50+
51+
* `VOLUME` -- it runs a checkpoint when the size of the transaction logs reaches the value specified by the `<<config_db.checkpoint.interval.volume,db.checkpoint.interval.volume>>` setting. By default, it is set to `250.00MiB`.
52+
53+
* `CONTINUOUS` (Enterprise Edition) -- it ignores `<<config_db.checkpoint.interval.tx,db.checkpoint.interval.tx>>` and `<<config_db.checkpoint.interval.time,db.checkpoint.interval.time>>` settings and runs the checkpoint process all the time.
54+
55+
* `VOLUMETRIC` (Enterprise Edition) -- it makes the best effort to checkpoint often enough so that the database does not get too far behind on deleting old transaction logs as specified in the `<<config_db.tx_log.rotation.retention_policy,db.tx_log.rotation.retention_policy>>` setting.
4756
|Valid values
4857
a|One of [PERIODIC, CONTINUOUS, VOLUME, VOLUMETRIC].
4958
|Default value
@@ -58,7 +67,11 @@ m|+++PERIODIC+++
5867
[frame="topbot", stripes=odd, grid="cols", cols="<1s,<4"]
5968
|===
6069
|Description
61-
a|Configures the time interval between checkpoints. The database will not checkpoint more often than this (unless checkpointing is triggered by a different event), but might checkpoint less often than this interval, if performing a checkpoint takes longer time than the configured interval. A checkpoint is a point in the transaction logs, which recovery would start from. Longer checkpoint intervals typically mean that recovery will take longer to complete in case of a crash. On the other hand, a longer checkpoint interval can also reduce the I/O load that the database places on the system, as each checkpoint implies a flushing and forcing of all the store files.
70+
a|Configures the time interval between checkpoints.
71+
The database does not checkpoint more often than the specified interval (unless checkpointing is triggered by a different event) but might checkpoint less often if performing a checkpoint takes longer time than the configured interval.
72+
A checkpoint is a point in the transaction logs from which recovery starts.
73+
Longer checkpoint intervals typically mean that recovery takes longer to complete in case of a crash.
74+
On the other hand, a longer checkpoint interval can also reduce the I/O load that the database places on the system, as each checkpoint implies a flushing and forcing of all the store files.
6275
|Valid values
6376
a|A duration (Valid units are: `ns`, `μs`, `ms`, `s`, `m`, `h` and `d`; default unit is `s`).
6477
|Default value
@@ -73,7 +86,12 @@ m|+++15m+++
7386
[frame="topbot", stripes=odd, grid="cols", cols="<1s,<4"]
7487
|===
7588
|Description
76-
a|Configures the transaction interval between checkpoints. The database will not checkpoint more often than this (unless check pointing is triggered by a different event), but might checkpoint less often than this interval, if performing a checkpoint takes longer time than the configured interval. A checkpoint is a point in the transaction logs, which recovery would start from. Longer checkpoint intervals typically mean that recovery will take longer to complete in case of a crash. On the other hand, a longer checkpoint interval can also reduce the I/O load that the database places on the system, as each checkpoint implies a flushing and forcing of all the store files. The default is '100000' for a checkpoint every 100000 transactions.
89+
a|Configures the transaction interval between checkpoints.
90+
The database does not checkpoint more often than the specified interval (unless checkpointing is triggered by a different event) but might checkpoint less often if performing a checkpoint takes longer time than the configured interval.
91+
A checkpoint is a point in the transaction logs from which recovery starts.
92+
Longer checkpoint intervals typically mean that recovery takes longer to complete in case of a crash.
93+
On the other hand, a longer checkpoint interval can also reduce the I/O load that the database places on the system, as each checkpoint implies a flushing and forcing of all the store files.
94+
The default is `100000` for a checkpoint every 100000 transactions.
7795
|Valid values
7896
a|An integer that is minimum `1`.
7997
|Default value
@@ -88,7 +106,11 @@ m|+++100000+++
88106
[frame="topbot", stripes=odd, grid="cols", cols="<1s,<4"]
89107
|===
90108
|Description
91-
a|Configures the volume of transaction logs between checkpoints. The database will not checkpoint more often than this (unless check pointing is triggered by a different event), but might checkpoint less often than this interval, if performing a checkpoint takes longer time than the configured interval. A checkpoint is a point in the transaction logs, which recovery would start from. Longer checkpoint intervals typically mean that recovery will take longer to complete in case of a crash. On the other hand, a longer checkpoint interval can also reduce the I/O load that the database places on the system, as each checkpoint implies a flushing and forcing of all the store files.
109+
a|Configures the volume of transaction logs between checkpoints.
110+
The database does not checkpoint more often than the specified interval (unless checkpointing is triggered by a different event) but might checkpoint less often if performing a checkpoint takes longer time than the configured interval.
111+
A checkpoint is a point in the transaction logs, which recovery would start from.
112+
Longer checkpoint intervals typically mean that recovery takes longer to complete in case of a crash.
113+
On the other hand, a longer checkpoint interval can also reduce the I/O load that the database places on the system, as each checkpoint implies a flushing and forcing of all the store files.
92114
|Valid values
93115
a|A byte size (valid multipliers are `B`, `KiB`, `KB`, `K`, `kB`, `kb`, `k`, `MiB`, `MB`, `M`, `mB`, `mb`, `m`, `GiB`, `GB`, `G`, `gB`, `gb`, `g`, `TiB`, `TB`, `PiB`, `PB`, `EiB`, `EB`) that is minimum `1.00KiB`.
94116
|Default value
@@ -100,13 +122,22 @@ m|+++250.00MiB+++
100122
[[config_db.checkpoint.iops.limit]]
101123
=== `db.checkpoint.iops.limit`
102124

103-
// label:dynamic[Dynamic]
125+
label:enterprise-edition[Enterprise Edition] label:dynamic[Dynamic]
104126

105127
.db.checkpoint.iops.limit
106128
[frame="topbot", stripes=odd, grid="cols", cols="<1s,<4"]
107129
|===
108130
|Description
109-
a|Limit the number of IOs the background checkpoint process will consume per second. This setting is advisory, is ignored in Neo4j Community Edition, and is followed to best effort in Enterprise Edition. An IO is in this case a 8 KiB (mostly sequential) write. Limiting the write IO in this way will leave more bandwidth in the IO subsystem to service random-read IOs, which is important for the response time of queries when the database cannot fit entirely in memory. The only drawback of this setting is that longer checkpoint times may lead to slightly longer recovery times in case of a database or system crash. A lower number means lower IO pressure, and consequently longer checkpoint times. Set this to -1 to disable the IOPS limit and remove the limitation entirely; this will let the checkpointer flush data as fast as the hardware will go. Removing the setting, or commenting it out, will set the default value of 600.
131+
a|Limit the number of IOs the background checkpoint process consumes per second.
132+
This setting is advisory.
133+
It is ignored in Neo4j Community Edition and is followed to best effort in Enterprise Edition.
134+
An IO is, in this case, an 8 KiB (mostly sequential) write.
135+
Limiting the write IO in this way leaves more bandwidth in the IO subsystem to service random-read IOs, which is important for the response time of queries when the database cannot fit entirely in memory.
136+
The only drawback of this setting is that longer checkpoint times may lead to slightly longer recovery times in case of a database or system crash.
137+
A lower number means lower IO pressure and, consequently, longer checkpoint times.
138+
Set this to `-1` to disable the IOPS limit and remove the limitation entirely.
139+
This lets the checkpointer flush data as fast as the hardware goes.
140+
Removing or commenting out the setting sets the default value of `600`.
110141
|Valid values
111142
a|An integer.
112143
|Default value

0 commit comments

Comments
 (0)