Re: WAL usage calculation patch
Kuntal Ghosh <kuntalghosh.2007@gmail.com>
Commits
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Change the display of WAL usage statistics in Explain.
- 69bfaf2e1de4 13.0 landed
-
Cosmetic fixups for WAL usage work.
- ef08ca113fe3 13.0 landed
-
Allow parallel create index to accumulate buffer usage stats.
- 5c71362174eb 13.0 landed
- f179e9f01b65 11.8 landed
- 13823ad3b012 12.3 landed
-
Allow autovacuum to log WAL usage statistics.
- b7ce6de93b59 13.0 landed
-
Add the option to report WAL usage in EXPLAIN and auto_explain.
- 33e05f89c53e 13.0 landed
-
Allow pg_stat_statements to track WAL usage statistics.
- 6b466bf5f2be 13.0 landed
-
Add infrastructure to track WAL usage.
- df3b181499b4 13.0 landed
-
Include information on buffer usage during planning phase, in EXPLAIN output, take two.
- ce77abe63cfc 13.0 cited
-
Include information on buffer usage during planning phase, in EXPLAIN output.
- ed7a5095716e 13.0 cited
-
Allow parallel vacuum to accumulate buffer usage.
- 3a5e22138a8d 13.0 landed
-
Allow pg_stat_statements to track planning statistics.
- 17e03282241c 13.0 cited
On Tue, Mar 31, 2020 at 7:39 PM Julien Rouhaud <rjuju123@gmail.com> wrote: > > On Tue, Mar 31, 2020 at 12:21 PM Kuntal Ghosh > <kuntalghosh.2007@gmail.com> wrote: > > > > On Mon, Mar 30, 2020 at 6:14 PM Julien Rouhaud <rjuju123@gmail.com> wrote: > > > > > @@ -448,6 +449,7 @@ XLogInsert(RmgrId rmid, uint8 info) > > bool doPageWrites; > > XLogRecPtr fpw_lsn; > > XLogRecData *rdt; > > + int num_fpw = 0; > > > > /* > > * Get values needed to decide whether to do full-page writes. Since > > @@ -457,9 +459,9 @@ XLogInsert(RmgrId rmid, uint8 info) > > GetFullPageWriteInfo(&RedoRecPtr, &doPageWrites); > > > > rdt = XLogRecordAssemble(rmid, info, RedoRecPtr, doPageWrites, > > - &fpw_lsn); > > + &fpw_lsn, &num_fpw); > > > > - EndPos = XLogInsertRecord(rdt, fpw_lsn, curinsert_flags); > > + EndPos = XLogInsertRecord(rdt, fpw_lsn, curinsert_flags, num_fpw); > > } while (EndPos == InvalidXLogRecPtr); > > > > I think there are some issues in the num_fpw calculation. For some > > cases, we have to return from XLogInsert without inserting a record. > > Basically, we've to recompute/reassemble the same record. In those > > cases, num_fpw should be reset. Thoughts? > > Mmm, yes but since that's the same record is being recomputed from the > same RedoRecPtr, doesn't it mean that we need to reset the counter? > Otherwise we would count the same FPW multiple times. Yes. That was my point as well. I missed the part that you're already resetting the same inside the do-while loop before calling XLogRecordAssemble. Sorry for the noise.