Re: [PING] fallocate() causes btrfs to never compress postgresql files

Magnus Hagander <magnus@hagander.net>

From: Magnus Hagander <magnus@hagander.net>
To: Thomas Munro <thomas.munro@gmail.com>
Cc: Dimitrios Apostolou <jimis@gmx.net>, Tomas Vondra <tomas@vondra.me>, pgsql-hackers@lists.postgresql.org, Andres Freund <andres@anarazel.de>, Melanie Plageman <melanieplageman@gmail.com>, Heikki Linnakangas <hlinnaka@iki.fi>, Kyotaro Horiguchi <horikyota.ntt@gmail.com>, David Rowley <dgrowleyml@gmail.com>
Date: 2025-08-07T13:38:10Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Add file_extend_method=posix_fallocate,write_zeros.

  2. Add smgrzeroextend(), FileZero(), FileFallocate()

On Tue, Aug 5, 2025 at 3:08 PM Thomas Munro <thomas.munro@gmail.com> wrote:

> On Tue, Jul 29, 2025 at 6:52 PM Magnus Hagander <magnus@hagander.net>
> wrote:
> > Not just to throw a wrench in there, but... Should this perhaps be a
> tablespace option? ISTM having different filesystems for them is a good
> reason to use tablespaces in the first place, and then being able to pick
> different options...
>
> We discussed that a bit earlier in the thread.  Some problems about
> layering violations and general weirdness, I recall trying it even.
> On the flip side, is it right to declare very local
> filesystem-specific choices in a system catalogue that is replicated
> and affects replicas?
> What about a fancier GUC that can reference tablespaces?
>

Wouldn't that be something that applies to *all* the tablespace configs
then, taht is a proper movement of the goalposts? :) Such as being able to
set random_page_cost per tablespace to different values on different
machines. I agree that it would be useful though.  But it seems like a
different patch, if useful, and one that should be generic?

-- 
 Magnus Hagander
 Me: https://www.hagander.net/ <http://www.hagander.net/>
 Work: https://www.redpill-linpro.com/ <http://www.redpill-linpro.com/>