Error in 9.6 documentation? checkpoint_flush_after
The following documentation comment has been logged on the website:
Page: https://www.postgresql.org/docs/9.6/runtime-config-wal.html
Description:
https://www.postgresql.org/docs/9.6/runtime-config-wal.html
19.5.2
checkpoint_flush_after (integer)
Whenever more than checkpoint_flush_after bytes have been written while
performing a checkpoint, attempt to force the OS to issue these writes to
the ...
bytes or pages?tgresql.conf says pages
On Fri, Mar 1, 2019 at 05:58:21AM +0000, PG Doc comments form wrote:
The following documentation comment has been logged on the website:
Page: https://www.postgresql.org/docs/9.6/runtime-config-wal.html
Description:https://www.postgresql.org/docs/9.6/runtime-config-wal.html
19.5.2checkpoint_flush_after (integer)
Whenever more than checkpoint_flush_after bytes have been written while
performing a checkpoint, attempt to force the OS to issue these writes to
the ...bytes or pages? postgresql.conf says pages
You bring up a good point. This problem affects these postgresql.conf
variables:
bgwriter_flush_after
backend_flush_after
checkpoint_flush_after
and probably more. The issue is that the value is in bytes, as opposed
to a value of time, like milliseconds. You can specify the bytes in
terms of the number of pages, e.g., 2 = 16kB, or you can specify it
directly in bytes, e.g., 32kB.
The line in postgresql.conf is saying:
#checkpoint_flush_after = 256kB # measured in pages, 0 disables
-----------------
if you specify a number like:
checkpoint_flush_after = 12
that is 12 * 8kB or 96kB. If you specify an actual byte amount like
256kB, that is the value that is used.
Do you have any suggestions on how this could be made clearer?
--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com
+ As you are, so once was I. As I am, so you will be. +
+ Ancient Roman grave inscription +
Hi,
On 2019-03-05 11:05:31 -0500, Bruce Momjian wrote:
On Fri, Mar 1, 2019 at 05:58:21AM +0000, PG Doc comments form wrote:
The following documentation comment has been logged on the website:
Page: https://www.postgresql.org/docs/9.6/runtime-config-wal.html
Description:https://www.postgresql.org/docs/9.6/runtime-config-wal.html
19.5.2checkpoint_flush_after (integer)
Whenever more than checkpoint_flush_after bytes have been written while
performing a checkpoint, attempt to force the OS to issue these writes to
the ...bytes or pages? postgresql.conf says pages
It's bytes, rounded to pages. Describing it as pages is too complicated
because we'd need to reference the block size for it to make sense etc.
What's the problem with describing it in bytes?
You bring up a good point. This problem affects these postgresql.conf
variables:bgwriter_flush_after
backend_flush_after
checkpoint_flush_afterand probably more. The issue is that the value is in bytes, as opposed
to a value of time, like milliseconds. You can specify the bytes in
terms of the number of pages, e.g., 2 = 16kB, or you can specify it
directly in bytes, e.g., 32kB.
I'm not following? Why is bytes vs time a problem? We have similar
base-unit issues in plenty time based GUCs?
Greetings,
Andres Freund
On Tue, Mar 5, 2019 at 09:11:14AM -0800, Andres Freund wrote:
Hi,
On 2019-03-05 11:05:31 -0500, Bruce Momjian wrote:
On Fri, Mar 1, 2019 at 05:58:21AM +0000, PG Doc comments form wrote:
The following documentation comment has been logged on the website:
Page: https://www.postgresql.org/docs/9.6/runtime-config-wal.html
Description:https://www.postgresql.org/docs/9.6/runtime-config-wal.html
19.5.2checkpoint_flush_after (integer)
Whenever more than checkpoint_flush_after bytes have been written while
performing a checkpoint, attempt to force the OS to issue these writes to
the ...bytes or pages? postgresql.conf says pages
It's bytes, rounded to pages. Describing it as pages is too complicated
because we'd need to reference the block size for it to make sense etc.
What's the problem with describing it in bytes?
Well, if postgrsql.conf has:
checkpoint_flush_after = 2
it is intepreted in pages and output as bytes:
SHOW checkpoint_flush_after;
checkpoint_flush_after
------------------------
16kB
You bring up a good point. This problem affects these postgresql.conf
variables:bgwriter_flush_after
backend_flush_after
checkpoint_flush_afterand probably more. The issue is that the value is in bytes, as opposed
to a value of time, like milliseconds. You can specify the bytes in
terms of the number of pages, e.g., 2 = 16kB, or you can specify it
directly in bytes, e.g., 32kB.I'm not following? Why is bytes vs time a problem? We have similar
base-unit issues in plenty time based GUCs?
I am only pointing out that pages and literal bytes are all bytes, while
wal_writer_delay is time, e.g., 200ms.
--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com
+ As you are, so once was I. As I am, so you will be. +
+ Ancient Roman grave inscription +