8 ms·
On Redis master-slave terminology
- umvi 8y agoIs this just virtue signalling or are people actually offended by stuff like this? It reminds me of when Harvard Law tore down their school crest recently because it was the coat of arms of a family in the early 1800s that owned slaves. If you judge historical figures by modern morals and standards you'll find everyone is a bad person. In that case we should wipe George Washington and Thomas Jefferson's faces off of our currency because their families owned slaves too, nevermind their contributions to America.
- toomuchtodo 8y agoCheers Salvatore. I appreciate your stance on this ("political bikeshedding", if that's a thing).
- lazzlazzlazz 8y agoGood for antirez. We all know what master-slave mean in a computing context and separate it from distant historical meanings, just as we don't get offended by `parent.kill(child)`. Some people get moral enjoyment from finding ways to feign offense... at best, it is a waste of time to indulge much of these false complaints. Our goodness and values show in our worldly actions.
- Turing_Machine 8y agoNot to mention SIGABRT.
- kawsper 8y agoThere have been discussions about that, glibc had this written in its docs about the abort() function since the 90s: > 25.7.4 Aborting a Program... Future Change Warning: Proposed Federal censorship regulations may prohibit us from giving you information about the possibility of calling this function. We would be required to say that this is not an acceptable way of terminating a program. https://www.theregister.co.uk/2018/05/09/gnu_glic_abort_stallman/ https://www.theregister.co.uk/2018/05/09/gnu_glic_abort_stal...
- smachiz 8y agoI mean, I don't disagree with your premise that very few people are actually offended, but this is one of those low-effort, doesn't-matter changes so why not do it? If it does offend anyone at all, why not change it? If it might offend anyone at all, why not change it? It's not like we're redefining the color blue to appease red-ists. There's a dozen synonyms that convey the same relationship construct as master/slave without using the word slave. It's not the hill to die on, or take a stand on.
- strken 8y agoHe touches on something very important when he describes the change as being "for Americans to make peace with their past" and says "it focuses on formalities, but actually it has a real root of prejudice against others". I'd hazard a guess that most of the people who are offended are offended because they feel guilty, and not because they're harmed by the terminology. Maybe those people should feel guilty. Maybe, as a European, he doesn't want American guilt to control the way he uses language.
- menacingly 8y ago"If it might offend anyone at all, why not change it?" is simultaneously gracious, well-meaning, and completely oblivious to the actual mechanisms that drive these offense debates. It doesn't offend anyone. If it does, it's easily cleared up with a broader understanding of the english language. That doesn't matter, though, because it doesn't offend anyone. The hunt for these righteous stances _is_ the goal. You don't change it, because 1) it's a weird bid to control the behavior of someone else, 2) you didn't gain anything. the priesthood wants to find your dirty stain, shine the light of an extremely flexible outrage on it, make an example of your submission to their humbling cleansing, then move on. All you've done is apologize to the no one who was actually harmed, add fuel for the next imaginary incident, and waste your time.
- iamwil 8y ago"I originally copied the terms from MySQL, and now they are the way we call things in Redis, and since I do not believe in this battle (I’ll tell you later why), to change the documentation, deprecate the API and add a new one, change the INFO fields, just to make a subset of people that care about those things more happy, do not make sense to me." Sounds like it's more work than you imagine.
- stcredzero 8y agoSome people get moral enjoyment from finding ways to feign offense... at best, it is a waste of time to indulge much of these false complaints. It has become a way to get the effects of political terrorism while avoiding the risk and backlash of actual terrorism. The real purpose at this point isn't to actually convince or cow people into obedience. It's low-risk practice for training radicals, and any political movement seeking rapid change needs about 10% of its membership to be radicals. Even short of violence, human politics boils down to "bigger army diplomacy."
- evil-olive 8y ago> just as we don't get offended by `parent.kill(child)` I think this is an excellent analogy. The Linux OOM killer even has a log message about sacrificing children: https://unix.stackexchange.com/questions/282155/what-is-the-out-of-memory-message-sacrifice-child https://unix.stackexchange.com/questions/282155/what-is-the-... And that, AFAIK, isn't part of the Linux kernel API/ABI, so it could be changed more easily than Redis' SLAVEOF command could. But it's clear from context what it's referring to.
- rhcom2 8y ago> Some people get moral enjoyment from finding ways to feign offense Why not assume good faith? Surely you can make an argument against changing technical terms without assuming the person bringing up the changes is just trolling.
- Turing_Machine 8y agoPeople who are arguing in good faith don't start calling their opponents vile names after one exchange.
- adrianmonk 8y agoWhy not assume good faith on the part of the people who used the terms "master" and "slave"?
- rhcom2 8y agoThe person mentioned in the post obviously didn't assume that after they started name calling but I think you could assume good faith usage of those words and still have a problem with it.
- wang_li 8y ago>... I think you could assume good faith usage of those words and still have a problem with it. One should also understand that not all countries have the same political activists and race-baiters that the US has and therefore the words master and slave don't carry the same baggage as they do in the US.
- rhcom2 8y agoMaster/slave doesn't carry baggage because of political activists and race-baiters but because of the US' history of slavery/racism.
- deleted 8y ago[deleted]
- jachee 8y ago> Our goodness and values show in our worldly actions. So, how hard would it be to sed -ri 's/slave/receiver/g; s/master/sender/g' redis_source/ ...to make this product better for more people and take nothing away from it? That would be a "worldly action" to show some goodness.
- platinumrad 8y agoA huge diff that doesn't mean anything is a nontrivial cost. Documentation would also have to be changed and articles would have to be updated. Deprecating something, even terminology, should not be done lightly.
- jachee 8y ago"That doesn't mean anything to white people", you mean? Edit: HN is Reddit now. "Downvote if you disagree."
- aiven 8y agothis is how voting works tho
- meowface 8y agoIn practice, but not on paper. HN guidelines forbid that sort of voting behavior.
- grzm 8y agoThere is no guideline on HN forbidding down voting for disagreement. 'dang as recently as a month ago reiterated this: https://news.ycombinator.com/item?id=17666145 https://news.ycombinator.com/item?id=17666145
- meowface 8y agoAh sorry, not sure where I got that idea from, then. I may've been confused by various subreddit mods establishing rules along the lines of "the downvote is not a disagree button".
- bazeblackwood 8y agoGiven that the explicit "master" and "slave" relationship definition lacks any other common meanings in any other technical field of English (that I'm aware of), I'm not quite sure I understand your point. The hierarchy of "parent" and "child", at least, is used for terminology in other fields, e.g. euphemistically in psychology, for relationships that fit a particular behavior pattern, even when the participants aren't actually related. Likewise, I'm sure the programmers responsible for the "parent"-"child" metaphor, didn't consider all the possible pseudo-language this method might generate. Just as no one might imagine `chokeAndDieOn(kernel)`. On the other hand, "master"-"slave" is taken from a pretty explicitly provocative (and negative) situation that still exists in many forms in today's world and was designed as a metaphor explicitly for the relationship, as opposed to being incidental, like your example. However, if what you say is your firm belief, then you surely wouldn't mind `"dominatrix"-"submissive" databases` or `"torturer"-"victim" databases`?
- NikolaeVarius 8y agoWhy not?
- the8472 8y ago> or `"torturer"-"victim" databases`? Torture-testing. Victim threads. Everything has its use.
- deleted 8y ago[deleted]
- platinumrad 8y ago"dom-sub" makes a lot of sense, honestly; catch me using that in my next project. I would object to "torturer-victim" because it doesn't properly describe the relationship.
- bazeblackwood 8y agoNo, not "dom", "dominatrix". And is your project a popular open-source project? Or will you be committing to a code base at a large corporation? Feel free to screenshot the pull request when you do, otherwise I'll have to assume you're casually bluffing.
- frakkingcylons 8y agoI think antirez's initial resistance to changing the terminology is reasonable, and obviously doesn't warrant the name-calling. Without a doubt there would be a lot of overhead to change documentation and code. That said, regardless of the past and ongoing use of master/slave terminology, we should be trying to steer away from it. It's insensitive and just generally unpleasant.
- cwkoss 8y agoAntirez has said for nearly a decade that if he was rebuilding the system he would use different terms, but changing the terms would break too many clients. Redis is backwards compatile to v1 - that's an impressive feat! Also, they've included a note on the official position of the project about this in the docs for SLAVEOF https://redis.io/commands/slaveof https://redis.io/commands/slaveof
- Kenji 8y agoI may not agree with antirez' other political opinions, but he sure as hell is right about this one.
- atonse 8y agoThank you for saying this. I am pretty strongly socially liberal (mainly a "live and let live" type mentality), and strongly support the idea of fairness and equality for all, regardless of race, ethnic group, gender identity, or sexual orientation. But I too think this level of extreme political correctness and people getting mobbed and harassed as a result has really gotten out of hand. People do NOT have a right to not be offended. Somehow we've forgotten that.
- jonny_eh 8y agoI can see the argument for avoiding the terminology for new products going forward. But trying to shame a project lead for not taking on the extra work (and user confusion) to change it after the fact is super gross.
- detaro 8y agoFully agreed. It's easy enough to pick differently if you start something, but it doesn't seem necessarily to warrant effort to change it where it's been done differently in the past (If a project's maintainers want to do it, they're of course free to do so!) and the behavior of some advocates for changing it is horrible.
- spamlord 8y agoGood job antirez, do not give into ideologically possessed control freaks and busybodies that actively seek out offense in everything. You can never fully satisfy them so don't even bother trying. They do not care about the 'morality' of the master/slave language here, but merely use it as a tool to control behavior of others and exert unearned power over your project. It's a pathetic power play, and nothing more.
- TAForObvReasons 8y agoFWIW other large vendors like Microsoft use terms like primary/replica instead of master/slave. That one database uses the phrase in 2018 (MySQL) does it doesn't mean we shouldn't still strive to find more precise language
- meowface 8y agoPerhaps more precise language exists, but my understanding is that master/slave more accurately describes the relationship than primary/replica does. A replica implies mirroring, but doesn't imply the other key components that differentiate it from the primary or master node.
- mcphage 8y ago> my understanding is that master/slave more accurately describes the relationship than primary/replica does Please, do go on—what else about the master/slave relationship is implied by the terminology?
- true_religion 8y agoControl mostly. Slave processes are controlled by the master totally and do work on the masters behalf. Parent/child does not work here as child processes are created by the parent, and do not necessarily follow the parents commands. A child can do other work, without the parent being aware of the goals. Replicas on the other hand clone behavior, it has to be identical to the primary.
- honkycat 8y agoIf it was a new product I was writing, I would use different terminology. But bending over backwards and rewriting and re-documenting a huge part of your extremely popular application because a subset of a subset of people find it offensive is... strange. Also loved the reply: "You call me a fascist, you know, those people who attacked and killed people over here less than 100 years ago. Maybe YOU should watch your language." OWNED! HA!
- cwkoss 8y agoThe irony of calling someone a fascist for using the wrong word... haha
- minikites 8y ago>Moreover I don't believe in the right to be offended, because it's a subjective thing. Different groups may feel offended by different things. Spoken like someone who has never had to face systemic oppression.
- deleted 8y ago[deleted]
- asteli 8y agoRetroactively changing terminology is a pain, but if you're doing greenfield development, you can just as easily use "Primary/Replica," which in addition to being a tasteful use of language, is actually more accurate in the context of databases. There are a bunch of goofy alternatives as well, like "Master/Minion" or hell, why not "Dom/Sub?"
- deleted 8y ago[deleted]
- DoreenMichele 8y agoIt's unfortunate that this is so poorly written in terms of it being quite obvious that he speaks English as a second language. I also have mixed feelings about a few other details. But, on the whole, I agree with the sentiment. I'm older than I used to be and this has made me more appreciative of polite language. But a lot of people who use what I used to somewhat contemptuously call "polite catch phrases" are often not actually any more respectful of other people than those that don't. That genuine respect matters far more to me. In essence, I think he is correct that what America needs to do is set things right by its own people instead of telling non-Americans that they need to jump through hoops over our emotional baggage for relatively minor details of this sort.
- wang_li 8y agoAs an American I don’t feel any guilt or emotional baggage. This kind of issue is brought up by people with severely underdeveloped moral codes who have latched on to the candy equivalent of morals. Which is to say, unsophisticated but provides an easy sense of superiority.
- DoreenMichele 8y agoAs a white American who was born and raised in the Deep South, I can't say I feel guilt per se, but I do feel the weight of baggage in the culture around me. I do feel burdened by not knowing how to talk to people of color at times about some subjects and not knowing what I can do today to help kill this legacy rather than inadvertently keeping it alive. In my twenties, my husband spent months going on endlessly about his new best friend "John." John this. John that. It aggravated the hell out of me. He gushed about the guy. Then one day hubby and John arranged for the two families to meet and it turned out John and his family were black. The surprise showed on my face, which made for a very awkward meeting. I didn't care that they were black, but my husband had never once mentioned that John was black. So I assumed he was white. In that moment, I realized this was a racist assumption. This assumption that if he isn't white, my husband will inform me of this fact, was an artifact of a deeply racist culture. And I was tremendously upset to realize I had drunk the koolaid when I thought of myself as an idealist and not racist and so forth. So I am very uncomfortable with the possibility that I may yet still be obliviously doing things that help keep racism alive, help keep people of color oppressed, help keep doors shut in their face without being aware of it. I don't know the solution to that and I think if you really truly believe in justice and equality, that should bother you. If it doesn't, then you are probably part of the problem and just not really wanting to take responsibility for that fact. But, yes, nitpicking about a single word (or a couple of words, in this case) is often a cheap way to lord it over people and act morally superior without really doing anything of significance. That much, I agree with.
- dayjah 8y agoContext: I'm in the "source and replica"-camp. I'm English and white passing. I really appreciate antirez's point on this, "Mark" definitely seems to be a person with their heart in the right place but lacking tact and being intolerant to decisions not going his way; especially given the technical work this change would necessitate the change does not seem appropriate. That said, I hope that in time the technical world will settle on some alternative to ensure we can talk freely without distracting or offending folks. A few years ago I was in a meeting talking about database options, hitherto I had used "master/slave" to describe this database topology. In that meeting was an African American co-worker ("Frank") and as the words left my mouth I realized that completely irrespective of my intent I brought into the room the spectre of times past. I've no idea how Frank felt about it - but all of a sudden I had lost all ability to continue my point. I paused and said something that amounted to: "you know,... that phrase is fucked up - let's not use it - what words should we use?" and Frank suggested we look at what terms Amazon uses; they used "source and read replica" and that's what we went with. I've never regretted recoding my use of words on that one. If there's anything that this post-Trump era has really brought into focus for me: it's that my privileges of being white, able bodied, and male results in me being least well positioned to say what is offensive or not. If you think it's offensive, open it up to the rest of the room and establish how to move forward.
- xook 8y agoSlavery of the human race, whether 1, 10, or 1000 people, transcends race, culture, and time. It is an issue still going on today due to trafficking, and to place it squarely as an issue with white v. black (which implies only white people have ever engaged in the practice) is ignorant. I welcome all inclusive efforts, but it seems these types of people (activists et al) have forgotten that those terms are not just confined to colonial America. (Please correct me if there is an error with this process.) Edit: I would like to point out that this is not a criticism of the author or OP. It's an observation. (Also, edited wording.)
- deleted 8y ago[deleted]
- X6S1x6Okd1st 8y agoYeah it feels pretty weird when people act like slavery was a unique thing that happened in the southern US. I had a french person talking about how they were oblivious to that dynamic because they were raised in france where it isn't a problem. That takes a pretty bad ignorance of colonial french history to say with a straight face.
- teilo 8y agoGreat response. I will add: Do not give in to these people, even an inch. If you do, they will never be satisfied, but will find the next hill of offense to conquer, and eventually your entire project will forget its purpose.
- minikites 8y agoThe next time someone uses the phrase "political correctness", replace it in the sentence with "treating people with dignity" and re-read it.
- meowface 8y agoI would if that's what all, or even most, instances of modern political correctness were. It's also telling that the person trying to bully him into the change definitely did not treat him with dignity, by falsely accusing him of being a fascist when his family suffered and died at the hands of fascists and when his own views are the opposite. Computer code can't literally enslave other computer code (at least not until AI improves by a lot). Inanimate objects can't cause or experience suffering to/from other inanimate objects. Abstract concepts don't have agency. A master-slave relationship is just an accurate and abstract way of describing certain kinds of concepts.
- antimatter 8y agoAh, yes, the widespread cancer of critical theory strikes Redis.
- mjkunc 8y agoOr maybe, you could not write a blog post and just fix your fucking terminology.
- Svoka 8y agoTerm "political correctness" is very loaded, and using it basically flags a narrative. No one would argue for "political correctness", only some would argue against it, because only place it exists in their imaginations.
- teddyh 8y agoWhen this topic (back then it was Drupal, not Redis) was discussed here five years ago¹, I wrote this: > Interestingly, DNS has gone the other way. It used to be that it was called “primary” and “secondary” DNS servers, but now the preferred terms are “master” and “slave” servers. You have to look at really old RFCs to see the old terminology, but it’s there. 1. https://news.ycombinator.com/item?id=6826918#6827140 https://news.ycombinator.com/item?id=6826918#6827140