Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jYbfQ-0004pv-2l for pgsql-hackers@arkaria.postgresql.org; Tue, 12 May 2020 20:38:20 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1jYbfO-0004AJ-0f for pgsql-hackers@arkaria.postgresql.org; Tue, 12 May 2020 20:38:18 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jYbfN-0004AC-Py for pgsql-hackers@lists.postgresql.org; Tue, 12 May 2020 20:38:17 +0000 Received: from momjian.us ([72.94.173.45]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jYbfH-0003PZ-7Q for pgsql-hackers@postgresql.org; Tue, 12 May 2020 20:38:16 +0000 Received: from bruce by momjian.us with local (Exim 4.92) (envelope-from ) id 1jYbfF-0005wj-UK; Tue, 12 May 2020 16:38:09 -0400 Date: Tue, 12 May 2020 16:38:09 -0400 From: Bruce Momjian To: Kyotaro Horiguchi Cc: noah@leadboat.com, pgsql-hackers@postgresql.org Subject: Re: PG 13 release notes, first draft Message-ID: <20200512203809.GA4666@momjian.us> References: <20200507133834.GJ3649@momjian.us> <20200508042202.GA563018@rfd.leadboat.com> <20200512001204.GF4666@momjian.us> <20200512.130908.2082912530895654639.horikyota.ntt@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200512.130908.2082912530895654639.horikyota.ntt@gmail.com> User-Agent: Mutt/1.10.1 (2018-07-13) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk On Tue, May 12, 2020 at 01:09:08PM +0900, Kyotaro Horiguchi wrote: > > > commit c6b9204 > > > Author: Noah Misch > > > AuthorDate: Sat Apr 4 12:25:34 2020 -0700 > > > Commit: Noah Misch > > > 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. > > > > OK, so how do we want to document this? Do I mention in the text below > > the WAL skipping item that this fixes a bug where a mix of simultaneous > > COPY and INSERT into a table could lose rows during crash recovery, or > > create a new item? > > FWIW, as dicussed upthread, I suppose that the API change is not going > to be in relnotes. > > something like this? > > - Fix bug of WAL-skipping optimiazation > > Previously a trasaction doing both of COPY and a WAL-logged operations > like INSERT while wal_level=minimal can lead to loss of COPY'ed rows > through crash recovery. Also this fix extends the WAL-skipping > optimiazation to all kinds of bulk insert operations. Uh, that kind of mixes the bug fix and the feature in a way that it is hard to understand. How about this? Allow skipping of WAL for new tables and indexes if wal_level is 'minimal' (Kyotaro Horiguchi) Relations larger than wal_skip_threshold will have their files fsync'ed rather than writing their WAL records. Previously this was done only for COPY operations, but the implementation had a bug that could cause data loss during crash recovery. -- Bruce Momjian https://momjian.us EnterpriseDB https://enterprisedb.com + As you are, so once was I. As I am, so you will be. + + Ancient Roman grave inscription +