Add missing assign hook for GUC checkpoint_completion_target
authorMichael Paquier
Thu, 19 Jan 2023 04:13:30 +0000 (13:13 +0900)
committerMichael Paquier
Thu, 19 Jan 2023 04:13:30 +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 3acafaad5a8613ff945f20df89e2cb927fd6c198..98651b473a95038e37d70d87dc610770012502e1 100644 (file)
@@ -3638,7 +3638,7 @@ static struct config_real ConfigureNamesReal[] =
        },
        &CheckPointCompletionTarget,
        0.5, 0.0, 1.0,
-       NULL, NULL, NULL
+       NULL, assign_checkpoint_completion_target, NULL
    },
 
    {