Subject: How best to do parallel query given tens of thousands of iteration of a loop of recursive queries?

From: Shaozhong SHI <[email-masked]>
Date: Sun, 10 Apr 2022 14:50:32 +0100

There is a plpgsql script that have a loop to carry out the same recursive
queries.

The estimation of iteration is in the order of tens of thousands.

What is the best way of making using parallel query strategy.

Any examples?

Regards,

David

---

From: Steve Midgley <[email-masked]>
Date: Sun, 10 Apr 2022 09:03:04 -0700

> What is the best way of making using parallel query strategy.

Can you provide some sample ddl, data and sql to illustrate your question?

You mention in one place "iteration" and "parallel" but in another you
mention recursion.. Recursion (by definition?) involves pushing state data
forward into each successive iteration.. Therefore you can't run recursion
in parallel.

If you can provide examples maybe we can see which if parallelism is a
possibility..

Steve

---

From: "David G. Johnston" <[email-masked]>
Date: Sun, 10 Apr 2022 09:13:14 -0700

> What is the best way of making using parallel query strategy.

An example would be helpful.

However, as a general guideline, since parallelism is done at the per-row
scope, removing looping logic from the script and turning the main script
logic into one or more functions that operate on a single row, while
obeying the rules such functions need to abide by in order to be marked
parallel safe, will open up the possibility for the server to process
different rows using different workers and then appending their results
together for the next node to consume.

David J.