Hi,
We have PostgreSQL server, which currently runs PostgreSQL 15 on compressed btrfs.
I tried to migrate DB to PostgreSQL 16, and found that data is not being compressed for PostgreSQL 16 server. One of the possible reason why btrfs won't compress data is data preallocation.
When running "compsize" tool, I indeed see that PostgreSQL preallocating data and it is not compressed (there is separate "preallocated" entry in output).
I am wondering if there were preallocation related changes in PG16, and if it is possible to disable preallocation in PostgreSQL 16?
I posted this on StackExchange, and someone pointed on this commit as possible reason of such behavior.
Long discussion on lore.kernel.org about exactly this issue.