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 1jeJoE-00010E-Q5 for pgsql-docs@arkaria.postgresql.org; Thu, 28 May 2020 14:47:03 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1jeJoD-00081M-Jj for pgsql-docs@arkaria.postgresql.org; Thu, 28 May 2020 14:47:01 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jeJoD-0007zH-A0 for pgsql-docs@lists.postgresql.org; Thu, 28 May 2020 14:47:01 +0000 Received: from mail-pl1-x62a.google.com ([2607:f8b0:4864:20::62a]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1jeJoA-0002f4-Gk for pgsql-docs@lists.postgresql.org; Thu, 28 May 2020 14:47:00 +0000 Received: by mail-pl1-x62a.google.com with SMTP id bg4so6333978plb.3 for ; Thu, 28 May 2020 07:46:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=CLcvY7iAXJg8+lCYi4m66DCZgUOk2RUlJ/SaRddYnHA=; b=UVpeJIRnZrq/FNpV1KLx4ZCqYMdwVgB0A+e4qYwi6w8XeYbNc6TWvxsHeqIuvr9LzX /Ych/0IXOcHg9saQb4Y51gz93iBU47JvaWavoKJZ+84IU5KdWyrbvE99Sd7PqRJooF8J 4eU9KAgnm7idJFxmjeezSNRVJP5DiwpPy9zBZ5oqgBSUJjiLnGpXqcrHNdRV+VOGp4bw MhHv1D+2BcYxI6PGV0DN7rFLNoz8hzRh+ohCgWQkrZAS/1mcpokf9jJod6gYfuzAFeAS iAWIw2yYaNiGic5UGVFr5uoDxczD9B5r6a1megLfCe9XeLm/UrzpRYWrKR1TpKggG89m hrXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=CLcvY7iAXJg8+lCYi4m66DCZgUOk2RUlJ/SaRddYnHA=; b=H2KYGhv+yqwPyFojJ56azWXJTG6epQZfP+ITWXse1VIBnRXbdlSt0+vpEp1GvSKhPV 3oJGDm5BwKc8XqCRXWeCThY89pxXAPkzgGxD8HRr84D3kExLUirtDLFzH6ThIt9APHpd eC1pPV4L1vWWRwurhsZU16KMAb3AZULJYp/p6s6U/EGgGkp3Uvv74gjuLzzb8jRoAEWh dJgipTpTE4O/wH1fLkMxQ48JH2WErZ9Q4GGRV3zg9peNlYkH56m+cMwooag5DmvzJzfE kWuSbQuUdHLNy2WOJW2hbCpUiGGuP9Hn4vu8ItX4El57bZJRIJICar8FjPC/+iSl9rM1 A0Mw== X-Gm-Message-State: AOAM532fu+iHic+6VFm5fInLTIwgmWdoBXzxzo+PSkJwANjA3g1Ymmin RHuY75rj64uqkPlJul6QdL70fhXo5MXaaP2rZ+Rxow== X-Google-Smtp-Source: ABdhPJzBLtP885wAm/IeNJMbSREs1ZH8JQAns5KmGt64mavHAjM+8b7IXmriyIJF4Uz4wqME0YkWJTHc5TA2rjMJSw0= X-Received: by 2002:a17:90a:c5:: with SMTP id v5mr4221961pjd.180.1590677215926; Thu, 28 May 2020 07:46:55 -0700 (PDT) MIME-Version: 1.0 References: <159057129673.7025.17016799863173731176@wrigleys.postgresql.org> <92491c6d07a3216ef2caee8ef55c02b5@postgrespro.ru> <8aac88e2a22cd84e50ee1a2bcf3da9b7@postgrespro.ru> In-Reply-To: From: "David G. Johnston" Date: Thu, 28 May 2020 07:46:39 -0700 Message-ID: Subject: Re: max_wal_size To: p.luzanov@postgrespro.ru Cc: pluzanov@postgrespro.ru, pgsql-docs@lists.postgresql.org Content-Type: multipart/alternative; boundary="000000000000685ec405a6b6662b" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --000000000000685ec405a6b6662b Content-Type: text/plain; charset="UTF-8" On Thu, May 28, 2020 at 2:21 AM wrote: > > Now we have the glossary. According to the glossary, a checkpoint has two > meanings. > > The first meaning is that this is a point: > "A point in the WAL sequence at which it is guaranteed that the heap and > index data files have been updated with all information from shared memory > modified before that checkpoint; a checkpoint record is written and flushed > to WAL to mark that point." > > The second meaning is that this is an action (performed by checkpointer > process or CP): > "A checkpoint is also the act of carrying out all the actions that are > necessary to reach a checkpoint as defined above." > > As I understand now, this is true when we talk about the checkpoint as a > process. > "Maximum size to let the WAL grow to between a(b) and b(e), between b(b) > and c(e), etc". > > But this not true when we talk about the checkpoint as a point. > "Maximum size to let the WAL grow to between A and B". > > My concerns that someone reading the description of the parameter may > confuse the two meanings of checkpoint: as a point and as a process. After > all, this happened to me. > Illuminating perspective. The question for the documentation then becomes do we introduce the concept of a "checkpoint point/record" here to try and clear up a possible (but I'd argue rare) misunderstanding at the risk of complicating things for the reader who only has the process meaning in mind. This is a tuning knob for the system and, as with the other two that reference "time", it almost by necessity deals with a process/verb interpretation of checkpoint, not the point/noun one. While I'm quite familiar with the presence of the noun meaning it didn't even occur to me to frame the discussion in those terms. As above, I'm not immediately convinced that that is a bad thing. I don't know whether a change along those lines to the configuration reference page is useful or not - I wouldn't make one without a comprehensive re-read of the actual background/learning section of the documentation. My gut instinct is that I just don't think the documentation can do this situation justice and that, as illustrated by this thread, there are better resources available for these less common situations. That said adding something akin to your diagram and showing how the different parts relate to each other is definitely worth considering - though probably in the main section, not the reference section. David J. --000000000000685ec405a6b6662b Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
On Thu, May 28, 2020 at 2:21 AM <p.luzanov@postgrespro.ru> wrote:

Now we have= the glossary. According to the glossary, a checkpoint has two meanings.
The first meaning is that this is a point:
"A point in the WAL= sequence at which it is guaranteed that the heap and index data files have= been updated with all information from shared memory modified before that = checkpoint; a checkpoint record is written and flushed to WAL to mark that = point."

The second meaning is that this is an action (performed= by checkpointer process or CP):
"A checkpoint is also the act of c= arrying out all the actions that are necessary to reach a checkpoint as def= ined above."

As I understand now, this is true when we talk abo= ut the checkpoint as a process.
"Maximum size to let the WAL grow t= o between a(b) and b(e), between b(b) and c(e), etc".

But this = not true when we talk about the checkpoint as a point.
"Maximum siz= e to let the WAL grow to between A and B".

My concerns that som= eone reading the description of the parameter may confuse the two meanings = of checkpoint: as a point and as a process. After all, this happened to me.=

Illuminating perspective.=C2= =A0 The question for the documentation then becomes do we introduce the con= cept of a "checkpoint point/record" here to try and clear up a po= ssible (but I'd argue rare) misunderstanding at the risk of complicatin= g things for the reader who only has the process meaning in mind.=C2=A0 Thi= s is a tuning knob for the system and, as with the other two that reference= "time", it almost by necessity deals with a process/verb interpr= etation of checkpoint, not the point/noun one.=C2=A0 While I'm quite fa= miliar with the presence of the noun meaning it didn't even occur to me= to frame the discussion in those terms.=C2=A0 As above, I'm not immedi= ately convinced that that is a bad thing.

I don't = know whether a change along those lines to the configuration reference page= is useful or not - I wouldn't make one without a comprehensive re-read= of the actual background/learning section of the documentation.=C2=A0 My g= ut instinct is that I just don't think the documentation can do this si= tuation justice and that, as illustrated by this thread, there are better r= esources available for these less common situations.

T= hat said adding something akin to your diagram and showing how the differen= t parts relate to each other is definitely worth considering - though proba= bly in the main section, not the reference section.

Da= vid J.

--000000000000685ec405a6b6662b--