On Wed, May 20, 2020 at 2:23 PM Amit Kapila <amit.kapila16@gmail.com> wrote: > Good experiment. IIRC, we have discussed a similar idea during the > development of this feature but we haven't seen any better results by > allocating in ranges on the systems we have tried. So, we want with > the current approach which is more granular and seems to allow better > parallelism. I feel we need to ensure that we don't regress > parallelism in existing cases, otherwise, the idea sounds promising to > me.
Yeah, Linux seems to do pretty well at least with smallish numbers of workers, and when you use large numbers you can probably tune your way out of the problem. ZFS seems to do fine. I wonder how well the other OSes cope.
Windows 10 (64bits, i5, 8GB, SSD)
postgres=# set max_parallel_workers_per_gather = 0; SET Time: 2,537 ms postgres=# select count(*) from t; count ----------- 200000000 (1 row)
Time: 47767,916 ms (00:47,768) postgres=# set max_parallel_workers_per_gather = 1; SET Time: 4,889 ms postgres=# select count(*) from t; count ----------- 200000000 (1 row)
Time: 32645,448 ms (00:32,645)
How display " -> execution time 5.2s, average read size ="?