Re: [Patch] ALTER SYSTEM READ ONLY
Robert Haas <robertmhaas@gmail.com>
On Wed, Jun 17, 2020 at 12:27 PM Tom Lane <tgl@sss.pgh.pa.us> wrote: > Which of the things I mentioned don't require writing WAL? Writing hint bits and marking index tuples as killed do not write WAL unless checksums are enabled. > You're right that these are the same things that we already forbid on a > standby, for the same reason, so maybe it won't be as hard to identify > them as I feared. I wonder whether we should envision this as "demote > primary to standby" rather than an independent feature. See my comments on the nearby pg_demote thread. I think we want both. > >> I also think that putting such a thing into ALTER SYSTEM has got big > >> logical problems. > > > ... no right-thinking person would ever propose to > > change a feature that renders the system read-only in such a way that > > it was impossible to deactivate it. That would be nuts. > > My point was that putting this in ALTER SYSTEM paints us into a corner > as to what we can do with ALTER SYSTEM in the future: we won't ever be > able to make that do anything that would require writing WAL. And I > don't entirely believe your argument that that will never be something > we'd want to do. I think that depends a lot on how you view ALTER SYSTEM. I believe it would be reasonable to view ALTER SYSTEM as a catch-all for commands that make system-wide state changes, even if those changes are not all of the same kind as each other; some might be machine-local, and others cluster-wide; some WAL-logged, and others not. I don't think it's smart to view ALTER SYSTEM through a lens that boxes it into only editing postgresql.auto.conf; if that were so, we ought to have called it ALTER CONFIGURATION FILE or something rather than ALTER SYSTEM. For that reason, I do not see the choice of syntax as painting us into a corner. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
Commits
-
Initialize variable to placate compiler.
- a030a0c5ccb1 15.0 landed
-
StartupXLOG: Don't repeatedly disable/enable local xlog insertion.
- 18e0913a4203 15.0 landed
-
StartupXLOG: Call CleanupAfterArchiveRecovery after XLogReportParameters.
- a75dbf7f9ee6 15.0 landed
-
Postpone some end-of-recovery operations related to allowing WAL.
- 811051c2e7af 15.0 landed
-
Refactor some end-of-recovery code out of StartupXLOG().
- 6df1543abfed 15.0 landed
-
Re-enable contrib/bloom's TAP tests.
- 7d1aa6bf1c27 15.0 cited
-
Remove unnecessary call to ReadCheckpointRecord().
- 1d919de5eb3f 15.0 cited
-
Allow for error or refusal while absorbing a ProcSignalBarrier.
- a3ed4d1efe9f 14.0 landed
-
Add comment to explain an unused function parameter
- 101f903e51f5 14.0 cited
-
Extend the ProcSignal mechanism to support barriers.
- 16a4e4aecd47 13.0 cited
-
At promotion, don't leave behind a partial segment on the old timeline.
- 7cbee7c0a1db 9.5.0 cited