Large block sizes support in Linux

From: "Pankaj Raghav (Samsung)" <kernel(at)pankajraghav(dot)com>
To: pgsql-hackers(at)postgresql(dot)org
Cc: p(dot)raghav(at)samsung(dot)com, mcgrof(at)kernel(dot)org, gost(dot)dev(at)samsung(dot)com
Subject: Large block sizes support in Linux
Date: 2024-03-21 17:46:19
Message-ID: hhz5ybsaxdf3vlenw4mbhzwppfwsgug5vjbyvdmtjeewnswaqw@s6ot254pmo73
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hello,

My team and I have been working on adding Large block size(LBS)
support to XFS in Linux[1]. Once this feature lands upstream, we will be
able to create XFS with FS block size > page size of the system on Linux.
We also gave a talk about it in Linux Plumbers conference recently[2]
for more context. The initial support is only for XFS but more FSs will
follow later.

On an x86_64 system, fs block size was limited to 4k, but traditionally
Postgres uses 8k as its default internal page size. With LBS support,
fs block size can be set to 8K, thereby matching the Postgres page size.

If the file system block size == DB page size, then Postgres can have
guarantees that a single DB page will be written as a single unit during
kernel write back and not split.

My knowledge of Postgres internals is limited, so I'm wondering if there
are any optimizations or potential optimizations that Postgres could
leverage once we have LBS support on Linux?

[1] https://lore.kernel.org/linux-xfs/20240313170253(dot)2324812-1-kernel(at)pankajraghav(dot)com/
[2] https://www.youtube.com/watch?v=ar72r5Xf7x4
--
Pankaj Raghav

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Bharath Rupireddy 2024-03-21 17:51:03 Re: Introduce XID age and inactive timeout based replication slot invalidation
Previous Message Isaac Morland 2024-03-21 17:36:25 Re: Catalog domain not-null constraints