Re: logical decoding : exceeded maxAllocatedDescs for .spill files
Amit Khandekar <amitdkhan.pg@gmail.com>
From: Amit Khandekar <amitdkhan.pg@gmail.com>
To: Amit Kapila <amit.kapila16@gmail.com>
Cc: Alvaro Herrera from 2ndQuadrant <alvherre@alvh.no-ip.org>, Andres Freund <andres@anarazel.de>, Juan José Santamaría Flecha <juanjo.santamaria@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>, Robert Haas <robertmhaas@gmail.com>, Thomas Munro <thomas.munro@gmail.com>, Tom Lane <tgl@sss.pgh.pa.us>, Tomas Vondra <tomas.vondra@2ndquadrant.com>
Date: 2019-12-20T04:01:10Z
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 →
-
When a TAP file has non-zero exit status, retain temporary directories.
- 048c7ccd7d6d 9.6.17 landed
- d8efc5900f7c 10.12 landed
- 887657d183fc 11.7 landed
- 78a26c3edd85 12.2 landed
- bf989aaf3561 13.0 landed
-
Fix running out of file descriptors for spill files.
- 1ad47e8757bb 9.4.26 landed
- a6f4f407ada0 9.5.21 landed
- 27b5f48c79f7 10.12 landed
- 3e3a79735235 11.7 landed
- f8a6d8e71b17 12.2 landed
- d20703805383 13.0 landed
- ba5b4e506489 9.6.17 landed
-
Track statistics for spilling of changes from ReorderBuffer.
- 9290ad198b15 13.0 cited
-
Handle ReadFile() EOF correctly on Windows.
- 2189f49c420f 12.2 landed
- 6969deeb8d39 13.0 landed
-
Add logical_decoding_work_mem to limit ReorderBuffer memory usage.
- cec2edfa7859 13.0 cited
-
Generational memory allocator
- a4ccc1cef5a0 11.0 cited
-
Support retaining data dirs on successful TAP tests
- 90627cf98a8e 11.0 cited
Attachments
- use_vfd_for_logrep_patches.tar.gz (application/x-gzip)
On Thu, 19 Dec 2019 at 11:59, Amit Kapila <amit.kapila16@gmail.com> wrote: > > On Wed, Dec 18, 2019 at 12:34 PM Amit Khandekar <amitdkhan.pg@gmail.com> wrote: > > > > On Tue, 17 Dec 2019 at 17:40, Amit Khandekar <amitdkhan.pg@gmail.com> wrote: > > > By the way, the backport patch is turning out to be simpler. It's > > > because in pre-12 versions, the file offset is part of the Vfd > > > structure, so all the offset handling is not required. > > > > Please have a look at the attached backport patch for PG 11. branch. > > Once you are ok with the patch, I will port it on other branches. > > Note that in the patch, wherever applicable I have renamed the fd > > variable to vfd to signify that it is a vfd, and not the kernel fd. If > > we don't do the renaming, the patch would be still smaller, but I > > think the renaming makes sense. > > > > The other usage of PathNameOpenFile in md.c is already using 'fd' as a > variable name (also, if you see example in fd.h, that also uses fd as > variable name), so I don't see any problem with using fd especially if > that leads to lesser changes. Ok. I have retained fd name. > Apart from that, your patch LGTM. Attached are the patches from master back up to 94 branch. PG 9.4 and 9.5 have a common patch to be applied : pg94_95_use_vfd_for_logrep.patch >From PG 9.6 onwards, each version has a separate patch. For PG 9.6, there is no logical decoding perl test file. So I have made a new file 006_logical_decoding_spill.pl that has only the specific testcase. Also, for building the test_decoding.so, I had to add the EXTRA_INSTALL=contrib/test_decoding line in the src/test/recovery/Makefile, because this is the first time we are using the plugin in the 9.6 tap test. From PG 10 onwards, pgstat_report_*() calls around read() are removed in the patch, because FileRead() itself reports the wait events. From PG 12 onwards, the vfd offset handling had to be added, because the offset is not present in Vfd structure. In master, logical_decoding_work_mem is used in the test file. -- Thanks, -Amit Khandekar EnterpriseDB Corporation The Postgres Database Company