On Oct 8, 2025, at 19:38, Karina Litskevich <litskevichkarina@gmail.com> wrote:
Hi hackers,
I noticed that GUCs io_combine_limit and io_max_combine_limit are marked
as GUC_UNIT_BLOCKS, but in the documentation nothing is said about that.
Other GUCs marked as GUC_UNIT_BLOCKS have a phrase "If this value is
specified without units, it is taken as blocks, that is BLCKSZ bytes,
typically 8kB" in their descriptions in the documentation. Please find
the attached patch that adds the same phrase for io_combine_limit and
io_max_combine_limit. This will need backpatching: io_combine_limit has
been present since PostgreSQL 17, and io_max_combine_limit since
PostgreSQL 18.
I also have a question about the main part of the description of these
GUCs. It says, "Controls the largest I/O size in operations that combine
I/O." From what I can see, these GUCs really only affect read operations,
and this description looks misleading to me. Am I wrong?
Best regards,
Karina Litskevich
Postgres Professional: http://postgrespro.com/
<v1-0001-doc-Improve-description-of-io_combine_limit-and-i.patch>
I agree that is a good catch.
I verified that, if I set in postgresql.conf:
```
io_combine_limit = 1 # usually 1-128 blocks (depends on OS)
```
Then I get:
```
evantest=# show io_combine_limit;
io_combine_limit
------------------
8kB
(1 row)
```
And if I set:
```
io_combine_limit = 12bkB # usually 1-128 blocks (depends on OS)
```
Then I get:
```
evantest=# show io_combine_limit;
io_combine_limit
------------------
128kB
(1 row)
```
So, this patch looks good to me. Please any committer takes care of this patch.
--
Chao Li (Evan)
HighGo Software Co., Ltd.
https://www.highgo.com/