Re: [HACKERS] CLUSTER command progress monitor - Mailing list pgsql-hackers

From Alvaro Herrera
Subject Re: [HACKERS] CLUSTER command progress monitor
Date
Msg-id 20190306010338.GA20820@alvherre.pgsql
Whole thread Raw
In response to Re: [HACKERS] CLUSTER command progress monitor  (Robert Haas <robertmhaas@gmail.com>)
Responses Re: [HACKERS] CLUSTER command progress monitor
List pgsql-hackers
On 2019-Mar-04, Robert Haas wrote:

> On Mon, Mar 4, 2019 at 5:38 AM Tatsuro Yamada
> <yamada.tatsuro@lab.ntt.co.jp> wrote:

> > === Discussion points ===
> >
> >   - Progress counter for "3. sorting tuples" phase
> >      - Should we add pgstat_progress_update_param() in tuplesort.c like a
> >        "trace_sort"?
> >        Thanks to Peter Geoghegan for the useful advice!
> 
> How would we avoid an abstraction violation?

The theory embodied in my patch at https://postgr.es/m/20190304204607.GA15946@alvherre.pgsql
is that we don't; tuplesort.c functions (index.c's IndexBuildHeapScan in
my case) would get a boolean parameter to indicate whether to update
some params or not -- the param number(s) to update are supposed to be
generic in the sense that it's not part of any individual command's
implementation (PROGRESS_SCAN_BLOCKS_DONE for what you call "blks
scanned", PROGRESS_SCAN_BLOCKS_TOTAL for "blks total"), but rather
defined by the "progress update provider" (index.c or tuplesort.c).

One, err, small issue with that idea is that we need the param numbers
not to conflict for any "progress update providers" that are to be used
simultaneously by any command.

-- 
Álvaro Herrera                https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services


pgsql-hackers by date:

Previous
From: David Rowley
Date:
Subject: Re: Ordered Partitioned Table Scans
Next
From: David Rowley
Date:
Subject: Re: Delay locking partitions during query execution