From: Heikki Linnakangas <heikki@enterprisedb.com>
To: Alvaro Herrera <alvherre@commandprompt.com>
Cc: Greg Smith <gsmith@gregsmith.com>
Cc: Pavan Deolasee <pavan.deolasee@gmail.com>
Cc: pgsql-performance@postgresql.org
Subject: Re: I/O on select count(*)
Date: Thu, 15 May 2008 16:15:50 +0100
Message-ID: <482C53A6.2030802@enterprisedb.com> (raw)
In-Reply-To: <20080515144106.GA8221@alvh.no-ip.org>
References: <920841.71690.qm@web44808.mail.sp1.yahoo.com>
<482B1D5F.EE98.0025.0@wicourts.gov>
<Pine.GSO.4.64.0805142133250.27290@westnet.com>
<20080515020553.GN9838@alvh.no-ip.org>
<Pine.GSO.4.64.0805142211300.5617@westnet.com>
<2e78013d0805141940x50c3f51u439019e8e592959@mail.gmail.com>
<Pine.GSO.4.64.0805142254080.10990@westnet.com>
<20080515144106.GA8221@alvh.no-ip.org>
Alvaro Herrera wrote:
> Greg Smith escribió:
>> On Thu, 15 May 2008, Pavan Deolasee wrote:
>>
>>> I had suggested in the past that whenever we set hint bits for a tuple,
>>> we should check all other tuples in the page and set their hint bits
>>> too to avoid multiple writes of the same page. I guess the idea got
>>> rejected because of lack of benchmarks to prove the benefit.
>>
>> From glancing at http://www.postgresql.org/docs/faqs.TODO.html I got the
>> impression the idea was to have the background writer get involved to
>> help with this particular situation.
>
> The problem is that the bgwriter does not understand about the content
> of the pages it is writing -- they're opaque pages for all it knows. So
> it cannot touch the hint bits.
We know what kind of a relation we're dealing with in ReadBuffer, so we
could add a flag to BufferDesc to mark heap pages.
> If we had the bitmask in a separate map fork, this could be cheap.
I don't buy that. The point of a hint bit is that it's right there along
with the tuple you're looking at. If you have to look at a separate
buffer, you might as well just look at clog.
--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-performance@postgresql.org
Cc: heikki@enterprisedb.com, alvherre@commandprompt.com, gsmith@gregsmith.com, pavan.deolasee@gmail.com
Subject: Re: I/O on select count(*)
In-Reply-To: <482C53A6.2030802@enterprisedb.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox