From: | Julien Rouhaud <rjuju123(at)gmail(dot)com> |
---|---|
To: | Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> |
Cc: | Fujii Masao <masao(dot)fujii(at)oss(dot)nttdata(dot)com>, Kirill Bychik <kirill(dot)bychik(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>, Thomas Munro <thomas(dot)munro(at)gmail(dot)com> |
Subject: | Re: WAL usage calculation patch |
Date: | 2020-03-31 09:09:04 |
Message-ID: | CAOBaU_Ye7VHTzAE+wZ_GSLmtmD9YRpha0-ba=qX0xXMjBBpCzg@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Tue, Mar 31, 2020 at 8:53 AM Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> wrote:
>
> On Mon, Mar 30, 2020 at 6:14 PM Julien Rouhaud <rjuju123(at)gmail(dot)com> wrote:
> >
> > On Mon, Mar 30, 2020 at 03:52:38PM +0530, Amit Kapila wrote:
> > >
> > > I think the right place to compute this information is
> > > XLogRecordAssemble even though we update it at the place where you
> > > have it in the patch. You can probably compute that in local
> > > variables and then transfer to pgWalUsage in XLogInsertRecord. I am
> > > fine if you can think of some other way but the current patch doesn't
> > > seem correct to me.
> >
> > My previous approach was indeed totally broken. v8 attached which hopefully
> > will be ok.
> >
>
> This is better. Few more comments:
> 1. The point (c) from my previous email doesn't seem to be fixed
> properly. Basically, the record data is only attached with FPW in
> some particular cases like where REGBUF_KEEP_DATA is set, but the
> patch assumes it is always set.
As I mentioned multiple times already, I'm really not familiar with
the WAL code, so I'll be happy to be proven wrong but my reading is
that in XLogRecordAssemble(), there are 2 different things being done:
- a FPW is optionally added, iif include_image is true, which doesn't
take into account REGBUF_KEEP_DATA. Looking at that part of the code
I don't see any sign of the recorded FPW being skipped or discarded if
REGBUF_KEEP_DATA is not set, and useful variables such as total_len
are modified
- then data is also optionally added, iif needs_data is set.
IIUC a FPW can be added even if the WAL record doesn't contain data.
So the behavior look ok to me, as what seems to be useful it to
distinguish 9KB WAL for 1 record of 9KB from 9KB or WAL for 1KB record
and 1 FPW.
What am I missing here?
> 2.
> + /* Report a full page imsage constructed for the WAL record */
> + *num_fpw += 1;
>
> Typo. /imsage/image
Oops yes, will fix.
> 3. We need to enhance the patch to cover WAL usage for parallel
> vacuum and parallel create index based on Sawada-San's latest patch[1]
> which fixed the case for buffer usage.
I'm sorry but I'm not following. Do you mean adding regression tests
for that case?
From | Date | Subject | |
---|---|---|---|
Next Message | Alexander Korotkov | 2020-03-31 09:15:31 | Re: [PATCH] Opclass parameters |
Previous Message | movead li | 2020-03-31 08:48:44 | Re: recovery_target_action=pause with confusing hint |