Re: Parallel copy
Tomas Vondra <tomas.vondra@2ndquadrant.com>
From: Tomas Vondra <tomas.vondra@2ndquadrant.com>
To: Ants Aasma <ants@cybertec.at>
Cc: David Fetter <david@fetter.org>, Amit Kapila <amit.kapila16@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2020-02-22T00:28:02Z
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
On Fri, Feb 21, 2020 at 02:54:31PM +0200, Ants Aasma wrote: >On Thu, 20 Feb 2020 at 18:43, David Fetter <david@fetter.org> wrote:> >> On Thu, Feb 20, 2020 at 02:36:02PM +0100, Tomas Vondra wrote: >> > I think the wc2 is showing that maybe instead of parallelizing the >> > parsing, we might instead try using a different tokenizer/parser and >> > make the implementation more efficient instead of just throwing more >> > CPUs on it. >> >> That was what I had in mind. >> >> > I don't know if our code is similar to what wc does, maytbe parsing >> > csv is more complicated than what wc does. >> >> CSV parsing differs from wc in that there are more states in the state >> machine, but I don't see anything fundamentally different. > >The trouble with a state machine based approach is that the state >transitions form a dependency chain, which means that at best the >processing rate will be 4-5 cycles per byte (L1 latency to fetch the >next state). > >I whipped together a quick prototype that uses SIMD and bitmap >manipulations to do the equivalent of CopyReadLineText() in csv mode >including quotes and escape handling, this runs at 0.25-0.5 cycles per >byte. > Interesting. How does that compare to what we currently have? regards -- Tomas Vondra http://www.2ndQuadrant.com PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services