Re: es_query_dsa is broken - Mailing list pgsql-hackers

From Robert Haas
Subject Re: es_query_dsa is broken
Date
Msg-id CA+TgmoZe-jMNySJGNP+vBZZNDHjty6HZ=OaAJbd9z-CH7hrWwg@mail.gmail.com
Whole thread Raw
In response to es_query_dsa is broken  (Thomas Munro <thomas.munro@enterprisedb.com>)
Responses Re: es_query_dsa is broken  (Thomas Munro <thomas.munro@enterprisedb.com>)
List pgsql-hackers
On Wed, Nov 29, 2017 at 7:30 AM, Thomas Munro
<thomas.munro@enterprisedb.com> wrote:
> While reviewing commit c6755e23 I realised that es_query_dsa is
> broken.  It might have made some kind of sense as a name and a concept
> in an earlier version of the proposal to add a DSA area for parallel
> query's use, when the DSA area was going to be independent of parallel
> query DSM segments and could have been used for the whole query.  But
> as it stands, each Gather [Merge] node has its own DSA area in its own
> DSM segment, and that needs to be the one available to the nodes of
> the child plan when executed in the leader process and it needs to be
> not available to any other nodes in the tree.  It's OK for the workers
> to have just one es_query_dsa set up at the beginning and used for the
> whole lifetime of the executor, but it's not OK for the leader to
> install it and forget about it as it does now.

Ugh.

> Better ideas?

How about this:

1. Remove es_query_dsa altogether.
2. Add a dsa_area * to ExecParallelInitializeDSMContext.
3. In ExecParallelInitializeDSM, pass the dsa_area * as a separate to
the per-node-type function.
4. If the per-node-type function cares about the dsa_area *, it is
responsible for saving a pointer to it in the PlanState node.
5. Also pass it down via the ParallelWorkerContext.

In v10 we might need to go with a solution like what you've sketched
here, because Tom will complain about breaking binary compatibility
with EState (and maybe other PlanState nodes) in a released branch.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


pgsql-hackers by date:

Previous
From: Victor Drobny
Date:
Subject: Re: new function for tsquery creartion
Next
From: Tom Lane
Date:
Subject: Re: [HACKERS] static assertions in C++