From: | Thomas Munro <thomas(dot)munro(at)gmail(dot)com> |
---|---|
To: | Dimitrios Apostolou <jimis(at)gmx(dot)net> |
Cc: | Tomas Vondra <tomas(at)vondra(dot)me>, pgsql-hackers(at)lists(dot)postgresql(dot)org, Andres Freund <andres(at)anarazel(dot)de>, Melanie Plageman <melanieplageman(at)gmail(dot)com>, Heikki Linnakangas <hlinnaka(at)iki(dot)fi>, Kyotaro Horiguchi <horikyota(dot)ntt(at)gmail(dot)com>, David Rowley <dgrowleyml(at)gmail(dot)com> |
Subject: | Re: [PING] fallocate() causes btrfs to never compress postgresql files |
Date: | 2025-06-09 08:33:25 |
Message-ID: | CA+hUKGLib4Wo9n637HCq2BvOrczwvzReGTHWdyYKn6_KXUP2ag@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Tue, Jun 3, 2025 at 1:58 AM Dimitrios Apostolou <jimis(at)gmx(dot)net> wrote:
> This sounds like the best solution IMO. People can then experiment with
> different settings and filesystems, and that way we also learn in the
> process. Thank you for the effort and patches so far.
OK, here's a basic patch to experiment with. You can set:
file_extend_method = fallocate,ftruncate,write
file_extend_method_threshold = 8 # (below 8 always write, 0 means never write)
To really make COPY fly we also need to get write combining and AIO
going (we've had this working with various prototypes, but it all
missed the boat for v18 which can only do that stuff for reads). Then
you'll have concurrent 128kB or up to 1MB writes trundling along in
the background which I guess should work pretty nicely for stuff like
BTRFS/ZFS and compression and all that jazz.
Attachment | Content-Type | Size |
---|---|---|
0001-Add-file_extend_method-setting.patch | text/x-patch | 6.6 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Nikita Malakhov | 2025-06-09 08:33:43 | Re: Proposal: Global Index for PostgreSQL |
Previous Message | Fujii Masao | 2025-06-09 08:27:19 | Re: Extend COPY FROM with HEADER <integer> to skip multiple lines |