Hacker News new | ask | show | jobs
by Tenhundfeld 3348 days ago
I don't want to get into an argument about discrimination and sensitivity and trigger words and all that.

The real point here is that slave has a lot of meanings, currently and throughout history, and thus has a lot of baggage. A slave is not just someone/something that obeys or only speaks when spoken to. A slave is owned by its master. A slave is entirely under the domination of the master. That doesn't really map cleanly on to replication. A master database doesn't really own or control the slave database; it just provides a log of actions performed against it that the slave needs to mimic.

As I understand history, the master/slave metaphor has been used for a long time in technology (e.g., in machinery and photography), well before computers or software, but we have better terminology. Many organizations use primary/replica or even just master/replica.

Using replica instead of slave seems like an obvious win. It's more precise and clear, and it avoids the baggage. It's also more intuitive when you're using the slave DB for reporting, i.e., "read replica" makes more sense to me than "read slave". Maybe that's just me. I don't see a downside to using replica.

3 comments

While following this thread I found your comment initially jarring, because in my mind I was thinking of the ATA protocol and not databases. And it appears that neither are good examples.

Perhaps not the best reference, but this Wikipedia page provides some examples as well as some info on the appropriateness of use that I found interesting:

https://en.wikipedia.org/wiki/Master/slave_(technology)

FWIW, it makes sense for databases, but not for peripherals in which one is controlling the other. E.g. an SPI memory chip. If that were called a "replica," it would be confusing.
Yeah, I hear that. I think the general point still stands. Master/slave is a metaphor that we have imbued with specific technical meanings in certain contexts. However, it is rarely (probably never) a perfect match with the historical meanings of slavery. We now have equally precise, typically more precise, terms we can use instead of the metaphor and avoid the negative baggage recalling barbaric acts.

EDIT: Not that you're arguing otherwise, I'm just restating my point more succinctly and abstractly.

Primary/secondary, master/replica depending on context.

"Replica" is actually a lot more meaningful than "slave" in terms of databases.

Good explanation. I always thought "worker" made more sense than "slave" in a distributed computing platform such as Hadoop.