Re: Add mention of execution time memory for enable_partitionwise_* GUCs - Mailing list pgsql-hackers

From Ashutosh Bapat
Subject Re: Add mention of execution time memory for enable_partitionwise_* GUCs
Date
Msg-id CAExHW5tJ9uHGQ27U_DbneDCc+8Nv+4g2hMNtzg7Eg46xYm=POw@mail.gmail.com
Whole thread Raw
In response to Re: Add mention of execution time memory for enable_partitionwise_* GUCs  (David Rowley <dgrowleyml@gmail.com>)
Responses Re: Add mention of execution time memory for enable_partitionwise_* GUCs
Re: Add mention of execution time memory for enable_partitionwise_* GUCs
List pgsql-hackers
On Thu, Jul 18, 2024 at 4:24 PM David Rowley <dgrowleyml@gmail.com> wrote:
>
> On Thu, 18 Jul 2024 at 22:28, Ashutosh Bapat
> <ashutosh.bapat.oss@gmail.com> wrote:
> >
> > On Thu, Jul 18, 2024 at 3:33 PM David Rowley <dgrowleyml@gmail.com> wrote:
> > > hmm? please tell me what word other than "can" best describes
> > > something that is possible to happen but does not always happen under
> > > all circumstances.
> >
> > May I suggest "may"? :) [1], [2], [3].
>
> Is this a wind-up?
>
> If it's not, I disagree that "may" is a better choice.  The
> possibility example in your first link says "It may rain tomorrow.
> (possibility)", but that's something someone would only say if there
> was some evidence to support that, e.g. ominous clouds on the horizon
> at dusk, or >0% chance of precipitation on the weather forecast.
> Nobody is going to say that unless there's some supporting evidence.
> For the executor using work_mem * nparts, we've no evidence either.
> It's just a >0% possibility with no supporting evidence.

I am not a native English speaker and might have made a mistake when
interpreting the definitions. Will leave that aside.

>
> > My point is, we need to highlight the role of work_mem. So modify both
> > the descriptions.
>
> I considered writing about work_mem, but felt I wanted to keep it as
> brief as possible and just have some words that might make someone
> think twice.  The details in the work_mem documentation should inform
> the reader that work_mem is per executor node.  It likely wouldn't
> hurt to have more documentation around which executor node types can
> use a work_mem, which use work_mem * hash_mem_multiplier and which use
> neither. We tend to not write too much about executor nodes in the
> documents, so I'm not proposing that for this patch.

Something I didn't write in my first reply but wanted to discuss was
the intention of adding those GUCs. Sorry for missing it in my first
email. According to [1] these GUCs were added because of increased
memory consumption during planning and time taken to plan the query.
The execution time memory consumption issue was known even back then
but the GUC was not set to default because of that. But your patch
proposes to change the narrative. In the same thread [1], you will
find the discussion about turning the default to ON once we have fixed
planner's memory and time consumption. We have patches addressing
those issues [2] [3]. With your proposed changes we will almost never
have a chance to turn those GUCs ON by default. That seems a rather
sad prospect.

I am fine if we want to mention that the executor may consume a large
amount of memory when these GUCs are turned ON. Users may decide to
turn those OFF if they can not afford to spend that much memory during
execution. But I don't like tying execution time consumption with
default OFF.

[1] https://www.postgresql.org/message-id/CA+TgmoYggDp6k-HXNAgrykZh79w6nv2FevpYR_jeMbrORDaQrA@mail.gmail.com
[2] https://www.postgresql.org/message-id/CAExHW5stmOUobE55pMt83r8UxvfCph%2BPvo5dNpdrVCsBgXEzDQ%40mail.gmail.com
[3] https://www.postgresql.org/message-id/flat/CAJ2pMkZNCgoUKSE+_5LthD+KbXKvq6h2hQN8Esxpxd+cxmgomg@mail.gmail.com


--
Best Wishes,
Ashutosh Bapat



pgsql-hackers by date:

Previous
From: Amit Kapila
Date:
Subject: Re: Slow catchup of 2PC (twophase) transactions on replica in LR
Next
From: Michael Paquier
Date:
Subject: Re: Patch bug: Fix jsonpath .* on Arrays