Opened 10 years ago
Closed 10 years ago
#22667 closed Cleanup/optimization (fixed)
Replace occurrences of master/slave terminology with leader/follower
Reported by: | Flavio Curella | Owned by: | nobody |
---|---|---|---|
Component: | Documentation | Version: | 1.6 |
Severity: | Normal | Keywords: | |
Cc: | Triage Stage: | Accepted | |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
The docs and some tests contain references to a master/slave db configuration.
While this terminology has been used for a long time, those terms may carry racially charged meanings to users.
This patch replaces all occurrences of master and slave with 'leader' and 'follower'
Change History (14)
comment:1 by , 10 years ago
comment:2 by , 10 years ago
Has patch: | set |
---|
comment:3 by , 10 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Fixed in 73a57b06f9d8c963b9be2bdb83122a004a4a8b0b.
For future reference, please note our commit message guidelines so that the ticket will be automatically closed when the PR is merged, thanks.
comment:4 by , 10 years ago
I can definitely see the point of this ticket, but I'm worried that this particular change significantly reduces the readability of the documentation, especially for those less familiar with database terminology or not native English. Personally, I had never heard of leader/follower in the context of SQL replication before, and I'm not sure how fast I would have figured out, if I had not seen this ticket. In addition, we've also replaced all references to master in the multi-db support, where it does not seem to be used in master/slave context.
PostgreSQL uses master/slave or primary/standby, and MySQL only uses master/slave. Heroku mixes follower and slave. I've also heard replica in the past, which is my favourite (standby suggests cold to me).
Suggestion: use the terminology master and replica. On the first use of replica in each document, add: "(referred to as slave or standby by some databases)". That seems like a good middle ground to me between avoiding problematic historical associations and keeping our documentation readable and understandable, even by those new to development or not being native English speakers.
comment:5 by , 10 years ago
I share Erik's concerns. Making Django's docs more difficult to understand for the people who need them most, for the sake of political correctness, seems like a bad tradeoff. Besides, it would have been polite to wait for feedback -- especially constructive feedback about non-loaded terms that are more consistent with the vocabulary of supported databases -- instead of rushing this ticket before anyone could contribute.
comment:6 by , 10 years ago
Has patch: | unset |
---|---|
Resolution: | fixed |
Status: | closed → new |
Triage Stage: | Unreviewed → Accepted |
comment:7 by , 10 years ago
FWIW, I'm ok with any of the proposed terminologies (basically anything that's not master/slave).
I'm volunteering to do the work of making another PR as soon as we reach a rough consensus. Let's just not have too long of a bikeshed
comment:8 by , 10 years ago
If we want to avoid master and slave (I don't see the need, but I won't stand in the way) I suggest "primary" and ("replica" or "standby"). These appear to be the least ambiguous terms. "standby" has the advantage of being PostgreSQL terminology, "replica" of being a bit more explicit (at least to me).
comment:9 by , 10 years ago
primary/replica sounds good to me. I'd like to wait for erikr's opinion before proceeding, since he raised the initial concern.
EDIT: to clarify, i'd be ok with master/replica too. It's using master *and* slave that just doesn't sound right.
comment:10 by , 10 years ago
If we're sticking with non-standard terminology, we should explain it at the beginning of the multi-db docs, where it's used most heavily.
Let's try not to make this change too exclusive for Django users who haven't been exposed to this kind of activism before -- most haven't.
It goes against our recent efforts to make the docs easier to understand (which, as an unfortunate side-effect, destroyed a lot of their character).
comment:11 by , 10 years ago
Flavio, there was a quick discussion in the core team's IRC channel in parallel. Everyone agreed that primary/replica were good choices and that these terms should be defined (if they aren't already). If you can send a new PR that would be most helpful. Thank you.
comment:13 by , 10 years ago
Has patch: | set |
---|
comment:14 by , 10 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Pull Request up at https://github.com/django/django/pull/2692