Hi Andres,

Thanks for doing this!

On 6/15/20 2:22 PM, Andres Freund wrote:

We've removed the use of "slave" from most of the repo (one use
remained, included here), but we didn't do the same for master. In the
attached series I replaced most of the uses.

0001: tap tests: s/master/primary/
   Pretty clear cut imo.

Nothing to argue with here as far as I can see. It's a lot of churn, though, so the sooner it goes in the better so people can update for the next CF.

0002: code: s/master/primary/
   This also includes a few minor other changes (s/in master/on the
   primary/, a few 'the's added). Perhaps it'd be better to do those
   separately?

I would only commit the grammar/language separately if the commit as a whole does not go in. Some of them really do make the comments much clearer beyond just in/on.

I think the user-facing messages, e.g.:

- errhint("Make sure the configuration parameter \"%s\" is set on the master server.", + errhint("Make sure the configuration parameter \"%s\" is set on the primary server.",

should go in no matter what so we are consistent with our documentation. Same for the postgresql.conf updates.

0003: code: s/master/leader/
   This feels pretty obvious. We've largely used the leader / worker
   terminology, but there were a few uses of master left.

Yeah, leader already outnumbers master by a lot. Looks good.

0004: code: s/master/$other/
   This is most of the remaining uses of master in code. A number of
   references to 'master' in the context of toast, a few uses of 'master
   copy'. I guess some of these are a bit less clear cut.

Not sure I love authoritative, e.g.

+        * fullPageWrites is the authoritative value used by all backends to

and

+        * grabbed a WAL insertion lock to read the authoritative value in

Possibly "shared"?

+        * Create the Tcl interpreter subsidiary to pltcl_hold_interp.

Maybe use "worker" here? Not much we can do about the Tcl function name, though. It's pretty localized, though, so may not matter much.

0005: docs: s/master/primary/
   These seem mostly pretty straightforward to me. The changes in
   high-availability.sgml probably deserve the most attention.

+        on primary and the current time on the standby. Delays in transfer

on *the* primary

I saw a few places where readability could be improved, but this patch did not make any of them worse, and did make a few better.

0006: docs: s/master/root/
   Here using root seems a lot better than master anyway (master seems
   confusing in regard to inheritance scenarios). But perhaps parent
   would be better? Went with root since it's about the topmost table.

I looked through to see if there was an instance of parent that should be changed to root but I didn't see any. Even if there are, it's no worse than before.

0007: docs: s/master/supervisor/
   I guess this could be a bit more contentious. Supervisor seems clearer
   to me, but I can see why people would disagree. See also later point
   about changes I have not done at this stage.

Supervisor seems OK to me, but the postmaster has a special place since there is only one of them. Main supervisor, root supervisor?

0008: docs: WIP multi-master rephrasing.
   I like neither the new nor the old language much. I'd welcome input.

Why not multi-primary?

After this series there are only two widespread use of 'master' in the
tree.
1) 'postmaster'. As changing that would be somewhat invasive, the word
    is a bit more ambiguous, and it's largely just internal, I've left
    this alone for now. I personally would rather see this renamed as
    supervisor, which'd imo actually would also be a lot more
    descriptive. I'm willing to do the work, but only if there's at least
    some agreement.

FWIW, I don't consider this to be a very big change from an end-user perspective. I don't think the majority of users interact directly with the postmaster, rather they are using systemd, pg_ctl, pg_ctlcluster, etc.

As for postmaster.pid and postmaster.opts, we have renamed plenty of things in the past so this is just one more. They'd be better and clearer as postgresql.pid and postgresql.opts, IMO.

Overall I'm +.5 because I may just be ignorant of the pain this will cause.

2) 'master' as a reference to the branch. Personally I be in favor of
    changing the branch name, but it seems like it'd be better done as a
    somewhat separate discussion to me, as it affects development
    practices to some degree.

Happily this has no end-user impact. I think "main" is a good alternative but I agree this feels like a separate topic.

One last thing -- are we considering back-patching any/all of this?

Regards,
--
-David
da...@pgmasters.net


Reply via email to