Add missing assign hook for GUC checkpoint_completion_target
authorMichael Paquier <michael@paquier.xyz>
Thu, 19 Jan 2023 04:13:05 +0000 (13:13 +0900)
committerMichael Paquier <michael@paquier.xyz>
Thu, 19 Jan 2023 04:13:05 +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_tables.c

index 5025e80f89d32f80232ea5ba3b16923a9f844a64..cd0fc2cb8f90659e460a3f239d0db2298f5c14e1 100644 (file)
@@ -3713,7 +3713,7 @@ struct config_real ConfigureNamesReal[] =
        },
        &CheckPointCompletionTarget,
        0.9, 0.0, 1.0,
-       NULL, NULL, NULL
+       NULL, assign_checkpoint_completion_target, NULL
    },
 
    {