Re: fdatasync performance problem with large number of DB files

From: Fujii Masao <masao(dot)fujii(at)oss(dot)nttdata(dot)com>
To: Thomas Munro <thomas(dot)munro(at)gmail(dot)com>, Michael Brown <michael(dot)brown(at)discourse(dot)org>
Cc: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: fdatasync performance problem with large number of DB files
Date: 2021-03-11 01:00:37
Message-ID: cfc60fae-dfac-eb49-4bab-9e90bc633588@oss.nttdata.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 2021/03/11 8:30, Thomas Munro wrote:
> On Thu, Mar 11, 2021 at 11:38 AM Thomas Munro <thomas(dot)munro(at)gmail(dot)com> wrote:
>> On Thu, Mar 11, 2021 at 11:01 AM Michael Brown
>> <michael(dot)brown(at)discourse(dot)org> wrote:
>>> * is there a knob missing we can configure?
>>> * can we get an opt-in knob to use a single sync() call instead of a
>>> recursive fsync()?
>>> * would you be open to merging a patch providing said knob?
>>> * is there something else we missed?
>>
>> As discussed on that other thread, I don't think sync() is an option
>> (it doesn't wait on all OSes or in the standard and it doesn't report
>> errors). syncfs() on Linux 5.8+ looks like a good candidate though,
>> and I think we'd consider a patch like that. I mean, I even posted
>> one[1] in that other thread. There will of course be cases where
>> that's slower (small database sharing filesystem with other software
>> that has a lot of dirty data to write back).
>
> Thinking about this some more, if you were to propose a patch like
> that syncfs() one but make it a configurable option, I'd personally be
> in favour of trying to squeeze it into v14. Others might object on
> commitfest procedural grounds, I dunno, but I think this is a real
> operational issue and that's a fairly simple and localised change.

+1 to push this kind of change into v14!!

> I've run into a couple of users who have just commented that recursive
> fsync() code out!

BTW, we can skip that recursive fsync() by disabling fsync GUC even without
commenting out the code?

Regards,

--
Fujii Masao
Advanced Computing Technology Center
Research and Development Headquarters
NTT DATA CORPORATION

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Masahiko Sawada 2021-03-11 01:01:21 Re: Boundary value check in lazy_tid_reaped()
Previous Message Bruce Momjian 2021-03-11 00:58:39 Re: pgbench - add pseudo-random permutation function