The patch has no effect on scans that do updates. The KillAndReadBuffer routine does not force out a buffer if the dirty bit is set. So updated pages revert to the current performance characteristics.

-cktan
GreenPlum, Inc.

On May 10, 2007, at 5:22 AM, Heikki Linnakangas wrote:

Zeugswetter Andreas ADI SD wrote:
In reference to the seq scans roadmap, I have just submitted a patch that addresses some of the concerns.

The patch does this:

1. for small relation (smaller than 60% of bufferpool), use the current logic 2. for big relation:
        - use a ring buffer in heap scan
        - pin first 12 pages when scan starts
        - on consumption of every 4-page, read and pin the next 4-page
- invalidate used pages of in the scan so they do not force out other useful pages
A few comments regarding the effects:
I do not see how this speedup could be caused by readahead, so what are
the effects ?

I was wondering that as well. We'd really need to test all the changes separately to see where the improvements are really coming from.

Also, that patch doesn't address the VACUUM issue at all. And using a small fixed size ring with scans that do updates can be devastating. I'm experimenting with different ring sizes for COPY at the moment. Too small ring leads to a lot of WAL flushes, it's basically the same problem we have with VACUUM in CVS HEAD.

--
  Heikki Linnakangas
  EnterpriseDB   http://www.enterprisedb.com




---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?

              http://archives.postgresql.org

Reply via email to