Add missing assign hook for GUC checkpoint_completion_target
authorMichael Paquier <[email protected]>
Thu, 19 Jan 2023 04:13:28 +0000 (13:13 +0900)
committerMichael Paquier <[email protected]>
Thu, 19 Jan 2023 04:13:28 +0000 (13:13 +0900)
This is wrong since 88e9823, that has switched the WAL sizing
configuration from checkpoint_segments to min_wal_size and
max_wal_size.  This missed the recalculation of the internal value of
the internal "CheckPointSegments", that works as a mapping of the old
GUC checkpoint_segments, on reload, for example, and it controls the
timing of checkpoints depending on the volume of WAL generated.

Most users tend to leave checkpoint_completion_target at 0.9 to smooth
the I/O workload, which is why I guess this has gone unnoticed for so
long, still it can be useful to tweak and reload the value dynamically
in some cases to control the timing of checkpoints.

Author: Bharath Rupireddy
Discussion: https://postgr.es/m/CALj2ACXgPPAm28mruojSBno+F_=9cTOOxHAywu_dfZPeBdybQw@mail.gmail.com
Backpatch-through: 11

src/backend/utils/misc/guc.c

index ef62bb81885494d783e82006335a6e0ad700c6a9..ab6e943743296f6dac467064dd0883c7dd47cb76 100644 (file)
@@ -3798,7 +3798,7 @@ static struct config_real ConfigureNamesReal[] =
        },
        &CheckPointCompletionTarget,
        0.9, 0.0, 1.0,
-       NULL, NULL, NULL
+       NULL, assign_checkpoint_completion_target, NULL
    },
 
    {