Допустим, у меня есть два клиента базы данных, выполняющих запросы к кластеру PostgreSQL параллельно. Я решаю, что хочу, чтобы один из них использовал max_parallel_workers_per_gather в 2, а другой в 6.
Итак, клиент №1 будет
exec("SET max_parallel_workers_per_gather=2; // A
SELECT * FROM large_scan; // B
");
Клиент №2 будет делать
exec("SET max_parallel_workers_per_gather=6; // C
SELECT * FROM other_large_scan; // D
");
Я ожидаю последовательность A-> B -> C -> D, чтобы и B, и D выполнялись одновременно с указанным параметром. Но возможна ли последовательность A -> C -> B-> D? Это дало бы обоим клиентам 6, что не то, что я хочу!
Я использую SPI , который, я считаю, не поддерживает асинхронное выполнение.