Re: [Lsf-pc] Linux kernel impact on PostgreSQL performance - Mailing list pgsql-hackers

From Jeff Janes
Subject Re: [Lsf-pc] Linux kernel impact on PostgreSQL performance
Date
Msg-id CAMkU=1wx3kXjA4cN3JUHf3KFh-LQXdesLH7nynvJQKxD5dpmpw@mail.gmail.com
Whole thread Raw
In response to Re: [Lsf-pc] Linux kernel impact on PostgreSQL performance  (Dave Chinner <david@fromorbit.com>)
List pgsql-hackers
On Mon, Jan 13, 2014 at 6:44 PM, Dave Chinner <david@fromorbit.com> wrote:
On Tue, Jan 14, 2014 at 02:26:25AM +0100, Andres Freund wrote:
> On 2014-01-13 17:13:51 -0800, James Bottomley wrote:
> > a file into a user provided buffer, thus obtaining a page cache entry
> > and a copy in their userspace buffer, then insert the page of the user
> > buffer back into the page cache as the page cache page ... that's right,
> > isn't it postgress people?
>
> Pretty much, yes. We'd probably hint (*advise(DONTNEED)) that the page
> isn't needed anymore when reading. And we'd normally write if the page
> is dirty.

So why, exactly, do you even need the kernel page cache here?

We don't need it, but it would be nice.
 
You've
got direct access to the copy of data read into userspace, and you
want direct control of when and how the data in that buffer is
written and reclaimed. Why push that data buffer back into the
kernel and then have to add all sorts of kernel interfaces to
control the page you already have control of?

Say 25% of the RAM is dedicated to the database's shared buffers, and 75% is left to the kernel's judgement.  It sure would be nice if the kernel had the capability of using some of that 75% for database pages, if it thought that that was the best use for it.

Which is what we do get now, at the expense of quite a lot of double buffering (by which I mean, a lot of pages are both in the kernel cache and the database cache--not just transiently during the copy process, but for quite a while).  If we had the ability to re-inject clean pages into the kernel's cache, we would get that benefit without the double buffering.

Cheers,

Jeff

pgsql-hackers by date:

Previous
From: Dimitri Fontaine
Date:
Subject: Re: extension_control_path
Next
From: Josh Berkus
Date:
Subject: Re: extension_control_path