Re: Parallel copy
Andres Freund <andres@anarazel.de>
From: Andres Freund <andres@anarazel.de>
To: Robert Haas <robertmhaas@gmail.com>
Cc: Amit Kapila <amit.kapila16@gmail.com>, Ants Aasma <ants@cybertec.at>, vignesh C <vignesh21@gmail.com>, Tomas Vondra <tomas.vondra@2ndquadrant.com>, Alastair Turner <minion@decodable.me>, Thomas Munro <thomas.munro@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2020-04-13T20:16:33Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Allow WaitLatch() to be used without a latch.
- 733fa9aa51c5 14.0 cited
-
Add %P to log_line_prefix for parallel group leader
- b8fdee7d0ca8 14.0 cited
-
Include replication origins in SQL functions for commit timestamp
- b1e48bbe64a4 14.0 cited
-
Avoid useless buffer allocations during binary COPY FROM.
- cd22d3cdb9bd 14.0 cited
Hi, On 2020-04-13 14:13:46 -0400, Robert Haas wrote: > On Fri, Apr 10, 2020 at 2:26 PM Andres Freund <andres@anarazel.de> wrote: > > > Still, it might be the case that having the process that is reading > > > the data also find the line endings is so fast that it makes no sense > > > to split those two tasks. After all, whoever just read the data must > > > have it in cache, and that helps a lot. > > > > Yea. And if it's not fast enough to split lines, then we have a problem > > regardless of which process does the splitting. > > Still, if the reader does the splitting, then you don't need as much > IPC, right? The shared memory data structure is just a ring of bytes, > and whoever reads from it is responsible for the rest. I don't think so. If only one process does the splitting, the exclusively locked section is just popping off a bunch of offsets of the ring. And that could fairly easily be done with atomic ops (since what we need is basically a single producer multiple consumer queue, which can be done lock free fairly easily ). Whereas in the case of each process doing the splitting, the exclusively locked part is splitting along lines - which takes considerably longer than just popping off a few offsets. Greetings, Andres Freund