Thread: Sharing DSA pointer between parallel workers after they've been created

Sharing DSA pointer between parallel workers after they've been created

From
"Ma, Marcus"
Date:

Hey,

 

I’m currently working on a parallelization optimization of the Sequential Scan in the codebase, and I need to share information between the workers as they scan a relation. I’ve done a decent amount of testing, and I know that the parallel workers all share the same dsa_area in the plan state. However, by the time I’m actually able to allocate a dsa_pointer via dsa_allocate0(), the separate parallel workers have already been created so I can’t actually share the pointer with them. Since the workers all share the same dsa_area, all I need to do is be able to share the single dsa_pointer with them but so far I’ve been out of luck. Any advice?

 

Marcus

Re: Sharing DSA pointer between parallel workers after they've been created

From
Joshua Drake
Date:
Marcus,

This is probably better suited for -hackers.

JD

On Wed, Jun 8, 2022 at 8:00 PM Ma, Marcus <marcjma@amazon.com> wrote:

Hey,

 

I’m currently working on a parallelization optimization of the Sequential Scan in the codebase, and I need to share information between the workers as they scan a relation. I’ve done a decent amount of testing, and I know that the parallel workers all share the same dsa_area in the plan state. However, by the time I’m actually able to allocate a dsa_pointer via dsa_allocate0(), the separate parallel workers have already been created so I can’t actually share the pointer with them. Since the workers all share the same dsa_area, all I need to do is be able to share the single dsa_pointer with them but so far I’ve been out of luck. Any advice?

 

Marcus