Re: How to launch parallel aggregations ?

From: Bharath Rupireddy <bharath(dot)rupireddyforpostgres(at)gmail(dot)com>
To: Esteban Zimanyi <ezimanyi(at)ulb(dot)ac(dot)be>
Cc: PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: How to launch parallel aggregations ?
Date: 2021-05-18 09:15:18
Message-ID: CALj2ACWwnCew+h_SEiGZ9ube7S-PPHrO=vcVwmEGQAWaoxPz9Q@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Tue, May 18, 2021 at 2:32 PM Esteban Zimanyi <ezimanyi(at)ulb(dot)ac(dot)be> wrote:
>
> Dear all
>
> In MobilityDB we have defined parallel aggregations with a combine function, e.g.,
>
> CREATE AGGREGATE extent(tbox) (
> SFUNC = tbox_extent_transfn,
> STYPE = tbox,
> COMBINEFUNC = tbox_extent_combinefn,
> PARALLEL = safe
> );
>
> We would like to trigger the combine functions in the coverage tests but for this it is required that the tables are VERY big. In particular for the above aggregation, the combine function only is triggered when the table has more than 300K rows.
>
> As it is not very effective to have such a big table in the test database used for the regression and the coverage tests I wonder whether it is possible to set some parameters to launch the combine functions with tables of, e.g., 10K rows, which are the bigger tables in our regression test database.
>
> Many thanks for your insights !

You could do something like below, just before your test:

-- encourage use of parallel plans
set parallel_setup_cost=0;
set parallel_tuple_cost=0;
set min_parallel_table_scan_size=0;
set max_parallel_workers_per_gather=2;

And after the test you can reset all of the above parameters.

Hope that helps!

With Regards,
Bharath Rupireddy.
EnterpriseDB: http://www.enterprisedb.com

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Esteban Zimanyi 2021-05-18 09:24:26 Re: How to launch parallel aggregations ?
Previous Message Greg Nancarrow 2021-05-18 09:14:37 Re: Re: Parallel scan with SubTransGetTopmostTransaction assert coredump