Re: Refactoring the checkpointer's fsync request queue

From: Thomas Munro <thomas(dot)munro(at)gmail(dot)com>
To: Shawn Debnath <sdn(at)amazon(dot)com>
Cc: Robert Haas <robertmhaas(at)gmail(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Andres Freund <andres(at)anarazel(dot)de>, Dmitry Dolgov <9erthalion6(at)gmail(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Refactoring the checkpointer's fsync request queue
Date: 2019-04-03 12:08:31
Message-ID: CA+hUKG+1k+sWCPVgBe0M9BR9e4hBva5ODWCydY7R8v02C6KOAQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Tue, Apr 2, 2019 at 11:09 PM Thomas Munro <thomas(dot)munro(at)gmail(dot)com> wrote:
> I'm going to do some more testing and tidying tomorrow (for example I
> think the segment.h header is silly and I'd like to remove that), and
> commit this.

As a sanity check on the programming interface this thing gives you, I
tried teaching the SLRUs to use the fsync queue. I finished up making
a few small improvements, but the main thing I learned is that
"handler" needs to be part of the hash table key. I suppose the
discriminator could even be inside FileTag itself, but I chose to keep
it separate and introduce a new struct to hold hander enum + FileTag
in the hash table.

The 0001 patch is what I'm going to commit soon. I don't know why
Shawn measured a performance change -- a bug in an earlier version? --
I can't see it, but I'm planning to look into that a bit more first.
I've attached the 0002 SLRU patch for interest, but I'm not planning
to commit that one.

--
Thomas Munro
https://enterprisedb.com

Attachment Content-Type Size
0001-Refactor-the-fsync-queue-for-wider-use-v15.patch application/octet-stream 77.5 KB
0002-Use-the-fsync-queue-for-SLRU-files-v15.patch application/octet-stream 16.2 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Robert Haas 2019-04-03 12:51:37 Re: partitioned tables referenced by FKs
Previous Message Alvaro Herrera 2019-04-03 12:01:45 Re: ToDo: show size of partitioned table