Subject: [Terminology] Primary/Secondary, Active/Standby

From: Phillip Hallam-Baker <[email-masked]>
Date: Sun, 28 Feb 2021 12:18:45 -0500

I thought I would kick off the discussion since nobody else seems to have
done so. I recently went through my specs replacing the terms master/slave
with primary/secondary. This had a very unexpected effect. The traditional
terminology turns out to be something of a foot gun and should be avoided.

Also, for clarity, the terms active and standby should be considered as
these are frequently a better description.

This has led me to create a to-do list item replacing client/server with
initiator/responder. Not because of any PC issues but because the legacy
terminology comes with legacy assumptions that are best discarded.

The nub of the matter is that 'master' suggests a permanent state of
affairs, a fixed hierarchy. That is a poor design choice in most cases.

In the days when coins were being minted, first a master was made of the
coin, a die was made from the master and the die used to stamp out coins.
The relationship between the master and the dies created from it was fixed
and permanent because these were physical objects.

Services and data are not physical objects, they are ephemera that are
embodied in physical objects.

Consider the case in which I have a signed data object and make a copy. The
original is not privileged over the copy. In fact it is frequently less
privileged. When I take photographs, I take the card out of the camera and
upload it to the NAS where service is backed by fault tolerance. And yes, I
stipulated signed precisely because that eliminates the possibility that
the copy was flawed.

When we get to services, I find it useful to use the term 'service' to
refer to the abstract service interface and the term 'host' to refer to a
machine that delivers that service. (I avoid server as it is too close to
service).

Ideally, the service is supported by multiple redundant hosts. DNS uses the
term Master here and it turns out to be a foot gun because it implies that
we have a single control point which we should avoid at every level.

What I am looking to build is a system in which a large service is divided
across multiple hosts in fault tolerant fashion similar to a RAID disk.
This also allows the number of hosts to naturally grow and shrink according
to demand.

So host-23 might be the active service provider for user sets x, y and z.
And host-34 might be the standby for user set x, host-12 the standby for
user set y and so on.

Active/Standby is a better terminology because it leads us to a better
design.

When it comes to data, the terms primary/secondary are sometimes better
because you can't spin up and tear down data stores with the same ease as
you can with CPUs. But there are frequently distinctions in the quality of
service.

In my case, the primary store holds user account data on SSD for fast
retrieval. But the secondary only uses an SSD to cache updates. The data
repository itself is on hard drives. There is a hierarchy in the
architecture that is reflected in the terminology.

---

From: "John Levine" <[email-masked]>
Date: 28 Feb 2021 14:16:52 -0500

In article <CAMm+LwiMuCE=[email-masked]> you write:
>-=-=-=-=-=-

You really have to look at each context to figure out what our unfortunate metaphors mean
and how best to rephrase them.

The GE645 called its operating modes master and slave.  It's what IBM calls supervisor
and problem, DEC called kernel and user, and Intel calls the privilege level.  If you*
called it primary/secondary or active/standby, nobody would know what you meant.

I think you will find the same issue with blacklist or any other word you want to replace.

That's why I was dismayed to see a note saying you could use
mechanical tools like codespell to replace words. Not if you want
people to be able to make sense of what you write.

R's,
John

* - the generic you, not Phill the instruction set designer

---

From: Brian E Carpenter <[email-masked]>
Date: Mon, 1 Mar 2021 09:07:19 +1300

> and how best to rephrase them.

Exactly. And the result, I think, is usually improved text. I fixed one usage of "master" by replacing it with "origin", which isn't among the standard suggestions. I fixed an instance of "Balkanisation" by completely rewriting the sentence.

    Brian

---

From: Phillip Hallam-Baker <[email-masked]>
Date: Sun, 28 Feb 2021 15:09:37 -0500

On Sun, Feb 28, 2021 at 2:16 PM John Levine <[email-masked]> wrote:

> In article <CAMm+LwiMuCE=
> [email-masked]> you write:
> >-=-=-=-=-=-
> >

And here we have an IBM joke leading in to a very bad analogy.

Robert Snowden was the administrator of the NSA key server controlling
access to the encrypted powerpoint presentations describing PRISM. That is
how he was able to snarf so much without detection - he also controlled the
logs.

The term 'administrator ' is not quite so bad as 'supervisor' in that it
doesn't track in quite as much inapplicable analogy. But it doesn't suggest
separation of duties which is exactly what the NSA mandates for
communications keys. Why were the rules different for data at rest? Well
because they had applied the wrong analogy and hadn't noticed that a fairly
junior person who wasn't even an employee, he was a contractor, had
keyholder access without being recognized as a keyholder.

> people to be able to make sense of what you write.

I agree absolutely. Automated tools can tell us where the problems might
lie but they can't tell us how to fix them.

And while we are at it, an anecdote that is on point but separate to the
above:

In the British vernacular, to 'welch on a bet' is to refuse to pay. This is
now a term to be avoided because Welsh people get upset.

Now if you go into the history, it is very clear that no insult to the
Welsh was ever intended. The term comes from a pair of Irish bookmakers
called the Welch brothers who took a large number of bets on a horse race
and realizing they couldn't pay up, did a runner.

But, the history isn't the point. When the term was being used in Victorian
times, the meaning was clear, the horse betting community knew the story
well. But most of the people who use the term today have no idea of the
origins and many believe it to be an assertion that the Welsh are
proverbially dishonest.

The same is true of many other problematic terms. Which is the reason that
we have to look at whether people reasonably take offense.