Re: WIP: WAL prefetch (another approach)
Thomas Munro <thomas.munro@gmail.com>
Attachments
- v23-0001-Add-circular-WAL-decoding-buffer-take-II.patch (text/x-patch) patch v23-0001
- v23-0002-Prefetch-referenced-data-in-recovery-take-II.patch (text/x-patch) patch v23-0002
On Fri, Mar 11, 2022 at 9:27 PM Julien Rouhaud <rjuju123@gmail.com> wrote: > > > Also, is it worth an assert (likely at the top of the function) for that? > > > > How could I assert that EndRecPtr has the right value? > > Sorry, I meant to assert that some value was assigned (!XLogRecPtrIsInvalid). > It can only make sure that the first call is done after XLogBeginRead / > XLogFindNextRecord, but that's better than nothing and consistent with the top > comment. Done. > + * Returns XLREAD_WOULDBLOCK if he requested data can't be read without > + * waiting. This can be returned only if the installed page_read callback > > typo: "the" requested data. Fixed. > Other than that it all looks good to me! Thanks! > > The other thing I need to change is that I should turn on > > recovery_prefetch for platforms that support it (ie Linux and maybe > > NetBSD only for now), in the tests. Right now you need to put > > recovery_prefetch=on in a file and then run the tests with > > "TEMP_CONFIG=path_to_that make -C src/test/recovery check" to > > excercise much of 0002. > > +1 with Andres' idea to have a "try" setting. Done. The default is still "off" for now, but in 027_stream_regress.pl I set it to "try". I also fixed the compile failure with -DWAL_DEBUG, and checked that output looks sane with wal_debug=on.
Commits
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Fix recovery_prefetch docs.
- dafae9707ab7 15.0 landed
-
Prefetch data referenced by the WAL, take II.
- 5dc0418fab28 15.0 landed
-
Add circular WAL decoding buffer, take II.
- 3f1ce973467a 15.0 landed
-
Fix generation of ./INSTALL for the distribution tarball
- 45aa88fe1d40 14.0 cited
-
Revert recovery prefetching feature.
- c2dc19342e05 14.0 landed
-
Sync guc.c and postgresql.conf.sample with the SGML docs.
- a55a98477b69 14.0 cited
-
Add information of total data processed to replication slot stats.
- f5fc2f5b23d1 14.0 cited
-
Doc: Review for "Optionally prefetch referenced data in recovery."
- dc88460c24ed 14.0 landed
-
Add circular WAL decoding buffer.
- f003d9f8721b 14.0 landed
-
Optionally prefetch referenced data in recovery.
- 1d257577e08d 14.0 landed
-
Remove read_page callback from XLogReader.
- 323cbe7c7ddc 14.0 cited
-
Provide ReadRecentBuffer() to re-pin buffers by ID.
- 2f27f8c51149 14.0 landed
-
Provide recovery_init_sync_method=syncfs.
- 61752afb2640 14.0 cited
-
Mark factorial operator, and postfix operators in general, as deprecated.
- 6ca547cf75ef 14.0 cited
-
Rationalize GetWalRcv{Write,Flush}RecPtr().
- d140f2f3e225 13.0 landed
-
Support PrefetchBuffer() in recovery.
- 3985b600f57d 13.0 landed
-
Prevent hard failures of standbys caused by recycled WAL segments
- 70b4f82a4b5c 11.0 cited