Re: PG 13 release notes, first draft
Noah Misch <noah@leadboat.com>
On Thu, May 07, 2020 at 09:38:34AM -0400, Bruce Momjian wrote:
> On Wed, May 6, 2020 at 10:20:57PM -0700, Noah Misch wrote:
> > On Wed, May 06, 2020 at 07:40:25PM -0400, Bruce Momjian wrote:
> > > On Tue, May 5, 2020 at 11:39:10PM -0700, Noah Misch wrote:
> > > > On Mon, May 04, 2020 at 11:16:00PM -0400, Bruce Momjian wrote:
> > > > > Allow skipping of WAL for new tables and indexes if wal_level is 'minimal' (Noah Misch)
> > > >
> > > > Kyotaro Horiguchi authored that one. (I committed it.) The commit message
> > > > noted characteristics, some of which may deserve mention in the notes:
> > >
> > > Fixed.
> >
> > I don't see that change pushed (but it's not urgent).
>
> I got stuck on Amit's partition items and my head couldn't process any
> more, so I went to bed, and just committed it now. I was afraid to have
> pending stuff uncommitted, but I am also hesitant to do a commit for
> each change.
Got it, +1 for batching such changes.
> > > > - Crash recovery was losing tuples written via COPY TO. This fixes the bug.
> > >
> > > This was not backpatched?
> >
> > Right.
>
> Oh. So you are saying we could lose COPY data on a crash, even after a
> commit. That seems bad. Can you show me the commit info? I can't find
> it.
commit c6b9204
Author: Noah Misch <noah@leadboat.com>
AuthorDate: Sat Apr 4 12:25:34 2020 -0700
Commit: Noah Misch <noah@leadboat.com>
CommitDate: Sat Apr 4 12:25:34 2020 -0700
Skip WAL for new relfilenodes, under wal_level=minimal.
Until now, only selected bulk operations (e.g. COPY) did this. If a
given relfilenode received both a WAL-skipping COPY and a WAL-logged
operation (e.g. INSERT), recovery could lose tuples from the COPY. See
src/backend/access/transam/README section "Skipping WAL for New
RelFileNode" for the new coding rules. Maintainers of table access
methods should examine that section.
To maintain data durability, just before commit, we choose between an
fsync of the relfilenode and copying its contents to WAL. A new GUC,
wal_skip_threshold, guides that choice. If this change slows a workload
that creates small, permanent relfilenodes under wal_level=minimal, try
adjusting wal_skip_threshold. Users setting a timeout on COMMIT may
need to adjust that timeout, and log_min_duration_statement analysis
will reflect time consumption moving to COMMIT from commands like COPY.
Internally, this requires a reliable determination of whether
RollbackAndReleaseCurrentSubTransaction() would unlink a relation's
current relfilenode. Introduce rd_firstRelfilenodeSubid. Amend the
specification of rd_createSubid such that the field is zero when a new
rel has an old rd_node. Make relcache.c retain entries for certain
dropped relations until end of transaction.
Bump XLOG_PAGE_MAGIC, since this introduces XLOG_GIST_ASSIGN_LSN.
Future servers accept older WAL, so this bump is discretionary.
Kyotaro Horiguchi, reviewed (in earlier, similar versions) by Robert
Haas. Heikki Linnakangas and Michael Paquier implemented earlier
designs that materially clarified the problem. Reviewed, in earlier
designs, by Andrew Dunstan, Andres Freund, Alvaro Herrera, Tom Lane,
Fujii Masao, and Simon Riggs. Reported by Martijn van Oosterhout.
Discussion: https://postgr.es/m/20150702220524.GA9392@svana.org
Commits
-
Doc: improve release notes' info about FROM UNPACKAGED feature removal.
- d42c61764464 13.0 landed
-
Doc: fix misstatement in v13 release notes.
- 001d2c5f15bf 13.0 landed
-
Doc: some more v13 release note tweaking.
- 9892564121d4 13.0 landed
-
Doc: update v13 release notes through today, do a copy-editing pass.
- 3965de54e718 13.0 cited
-
Doc: fill in "major enhancements" list in v13 release notes.
- 3d92252d7d8b 13.0 landed
-
doc: PG 13 relnotes: fix typos
- b31d6efe3d06 13.0 landed
-
doc: PG 13 relnotes, update TOAST item to mention decompression
- fb544735f114 13.0 landed
-
pgbench: document that the default data loading is client-side
- c3d1fdb59891 13.0 landed
-
psql \d: Display table where trigger is defined, if inherited
- c33869cc3bfc 13.0 cited
-
Skip WAL for new relfilenodes, under wal_level=minimal.
- c6b92041d385 13.0 cited
-
Introduce vacuum errcontext to display additional information.
- b61d161c1463 13.0 cited
-
Fix lquery's behavior for consecutive '*' items.
- 9950c8aadf0e 13.0 cited
-
Improve the internal implementation of ereport().
- 17a28b03645e 13.0 cited
-
Add object names to partition integrity violations.
- 33753ac9d7bc 13.0 cited
-
Allow page lock to conflict among parallel group members.
- 3ba59ccc896e 13.0 cited
-
Allow relation extension lock to conflict among parallel group members.
- 85f6b49c2c53 13.0 cited
-
Introduce "anycompatible" family of polymorphic types.
- 24e2885ee304 13.0 cited
-
Improve checking of child pages in contrib/amcheck.
- d114cc538715 13.0 cited
-
doc: Add information about new SQL part SQL/MDA
- 33e27c3785c5 13.0 cited
-
Added relation name in error messages for constraint checks.
- 05f18c6b6b6e 13.0 cited
-
Avoid full scan of GIN indexes when possible
- 4b754d6c16e1 13.0 cited
-
Use carriage returns for data insertion logs in pgbench on terminal
- d37ddb745be0 13.0 cited
-
Use memcpy instead of a byte loop in pglz_decompress
- c60e520f6e0e 13.0 cited
-
Add backtrace support for error reporting
- 71a8a4f6e365 13.0 cited
-
Improve pruning of a default partition
- 86544071484a 12.0 cited
- 489247b0e615 13.0 cited
-
Improve psql's \d output for partitioned indexes.
- 24f62e93f314 13.0 cited
-
initdb: Change authentication defaults
- 09f08930f0f6 13.0 cited