Re: [HACKERS] [POC] Faster processing at Gather node
Ants Aasma <ants.aasma@eesti.ee>
On Thu, Nov 16, 2017 at 6:42 AM, Robert Haas <robertmhaas@gmail.com> wrote: > The problem here is that we have no idea how big the queue needs to > be. The workers will always be happy to generate tuples faster than > the leader can read them, if that's possible, but it will only > sometimes help performance to let them do so. I think in most cases > we'll end up allocating the local queue - because the workers can > generate faster than the leader can read - but only occasionally will > it make anything faster. For the Gather Merge driven by Parallel Index Scan case it seems to me that the correct queue size is one that can store two index pages worth of tuples. Additional space will always help buffer any performance variations, but there should be a step function somewhere around 1+1/n_workers pages. I wonder if the queue could be dynamically sized based on the driving scan. With some limits of course as parent nodes to the parallel index scan can increase the row count by arbitrary amounts. Regards, Ants Aasma -- Cybertec Schönig & Schönig GmbH Gröhrmühlgasse 26, A-2700 Wiener Neustadt Web: http://www.postgresql-support.de, http://www.cybertec.at
Commits
-
C comment: fix wording about shared memory message queue
- bc0021ef09ec 11.0 landed
-
shm_mq: Have the receiver set the sender's less frequently.
- 497171d3e2aa 11.0 landed
-
shm_mq: Reduce spinlock usage.
- 34db06ef9a1d 11.0 landed
-
Remove use of byte-masking macros in record_image_cmp
- 0b5e33f667a2 11.0 cited
-
Remove memory leak protection from Gather and Gather Merge nodes.
- 9f4992e2a993 11.0 landed
-
Avoid projecting tuples unnecessarily in Gather and Gather Merge.
- b10967eddf96 11.0 landed
-
Tweak use of ExecContextForcesOids by Gather (Merge).
- 0510421ee091 11.0 landed
-
Pass eflags down to parallel workers.
- f455e1125e25 11.0 landed
-
Disable installcheck tests for test_session_hooks
- 745948422c79 11.0 cited
-
First-draft release notes for 10.1.
- 42de8a0255c2 11.0 cited
-
Remove TupleDesc remapping logic from tqueue.c.
- 6b65a7fe62e1 11.0 cited
-
Avoid memory leaks when a GatherMerge node is rescanned.
- 2d44c58c79ae 11.0 cited
-
Code review for nodeGatherMerge.c.
- 04e9678614ec 11.0 cited
-
Add a Gather Merge executor node.
- 355d3993c53e 10.0 cited
-
Push scan/join target list beneath Gather when possible.
- 992b5ba30dca 9.6.0 cited