Synchronized Scan WIP patch - Mailing list pgsql-patches

From Jeff Davis
Subject Synchronized Scan WIP patch
Date
Msg-id 1173861778.23443.42.camel@jdavis
Whole thread Raw
Responses Re: Synchronized Scan WIP patch  ("Simon Riggs" <simon@2ndquadrant.com>)
Re: Synchronized Scan WIP patch  (Bruce Momjian <bruce@momjian.us>)
Re: Synchronized Scan WIP patch  (Heikki Linnakangas <heikki@enterprisedb.com>)
List pgsql-patches
This is my latest revision of the Sync Scan patch, and it implements the
observability as discussed with Simon.

Changes:
 * ss_report_loc() called once per hundred pages rather than once per
page
 * DEBUG messages are a little cleaner and easier to parse, for the sake
of analysis after the fact.
 * DEBUG2 reports a sync scan starting, the relation size in pages, and
the location at which the scan starts.
 * DEBUG2 reports the location of a scan every 50k pages, DEBUG3 every
5k pages (before it was 100k/10k at DEBUG3/DEBUG4, respectively).
Numbers are aligned along 5k boundaries to make analysis easier.
 * GUCs:
   * sync_seqscan_threshold: fraction of NBuffers for the threshold
   * sync_seqscan_offset: fraction of NBuffers for the offset
   * trace_sync_seqscan: will be used in final version of patch to
control DEBUG output

Sync_scan_offset may be eliminated completely if it's not shown to be
useful enough in conjunction with Simon's patch. Sync Scans are still a
big win without sync_seqscan_offset.

Sync_scan_threshold=<real> may be turned into sync_seqscan=<boolean>
with a fixed activation threshold (NBuffers/2 per Simon's suggestion).
The reason is that synchronized scans should activate at the same
threshold as Simon's scan_recycle_buffers feature. Should we make a
"#define BIG_SCAN_THRESHOLD NBuffers/2" to use for both sync_seqscan and
for scan_recycle_buffers?

Regards,
    Jeff Davis

Attachment

pgsql-patches by date:

Previous
From: "Pavan Deolasee"
Date:
Subject: HOT WIP Patch - Version 4.4
Next
From: Gregory Stark
Date:
Subject: Re: LIMIT/SORT optimization