Re: 8.4 open item: copy performance regression?

From: Greg Smith <gsmith(at)gregsmith(dot)com>
To: Simon Riggs <simon(at)2ndQuadrant(dot)com>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Stefan Kaltenbrunner <stefan(at)kaltenbrunner(dot)cc>, Andrew Dunstan <andrew(at)dunslane(dot)net>, Kevin Grittner <Kevin(dot)Grittner(at)wicourts(dot)gov>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: 8.4 open item: copy performance regression?
Date: 2009-06-20 06:53:34
Message-ID: alpine.GSO.2.01.0906200237340.15307@westnet.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Sat, 20 Jun 2009, Simon Riggs wrote:

> At the time, I also proposed a "filled buffer list" change to bufmgr to
> allow bgwriter to preferentially target COPY's filled blocks, which
> would also help with this effect.

One of the things I keep meaning to investigate is whether there's any
benefit to pushing buffers the background writer cleans onto the free
list, to speed up their subsequent allocation to needy backends. Both
this and the sequential scan ring buffer implementation might both benefit
from an approach where buffers are similarly pushed onto the free list
when they're no longer needed by the process that pulled them in.
Buffers could move from allocated->used->filled buffer list->free list in
the COPY buffer case, and allocated->used->free list when executing a
sequential scan.

That would seem to me to be a more robust general approach for solving
this class of problem than the whole ring buffer idea, which is a great
start but bound to run into situations where the size of the buffer just
isn't right anymore a few hardware generations down the road.

--
* Greg Smith gsmith(at)gregsmith(dot)com http://www.gregsmith.com Baltimore, MD

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Simon Riggs 2009-06-20 08:22:20 Re: 8.4 open item: copy performance regression?
Previous Message Greg Smith 2009-06-20 02:03:56 Re: 8.4 open item: copy performance regression?