-
Notifications
You must be signed in to change notification settings - Fork 46.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix #397: Change master/slave to primary/replica #217
Conversation
This really needs to get updated and merged -- the master-slave terminology is distracting and unnecessary and pretty tone-deaf in this day and age. @donnemartin |
Doctrine/DBAL did the change this summer: RFC: Rename MasterSlaveConnection #4052 Wordpress is in the process of dropping it: Rename master branch to some other naming (and other problematic words) |
I'd completely forgotten about this. I'm happy to update 👍 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @chriscoffee, appreciate the PR. Could we make the following changes? Thank you!
- Use the terms primary/replica.
- Not change the images and OmniGraffle templates. Some are binary it's hard for me to review the diffs. I'm planning on making other changes to images so I'm happy to make these updates.
- Resolve merge conflicts.
After further feedback I've not updated the images and just made alterations to the READMEs for mentions of master-slave to primary-replica
@donnemartin Ok should be sorted. Let me know if you need anything else 👍 As requested I've just updated the README's (including references in ZH versions) and resolved merge conflicts. Apologies for forced pushes, I swapped out old commits for correctly authored signed commits under my actual user name. Initially I leaned on Leader/Follow as statements like this felt somewhat clunky to read:
So could need re-working maybe? Also I don't know if you're the sole maintainer on this project, but if you go down the route of swapping |
Thank you! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@chriscoffee thanks for the updated PR!
this felt somewhat clunky to read...Primary-Replica Replicas
I agree, I added wording change suggestions.
The PR seems to only address the solutions, are you able to update the main README?
@@ -333,7 +333,7 @@ class SpendingByCategory(MRJob): | |||
|
|||
State you would 1) **Benchmark/Load Test**, 2) **Profile** for bottlenecks 3) address bottlenecks while evaluating alternatives and trade-offs, and 4) repeat. See [Design a system that scales to millions of users on AWS](../scaling_aws/README.md) as a sample on how to iteratively scale the initial design. | |||
|
|||
It's important to discuss what bottlenecks you might encounter with the initial design and how you might address each of them. For example, what issues are addressed by adding a **Load Balancer** with multiple **Web Servers**? **CDN**? **Master-Slave Replicas**? What are the alternatives and **Trade-Offs** for each? | |||
It's important to discuss what bottlenecks you might encounter with the initial design and how you might address each of them. For example, what issues are addressed by adding a **Load Balancer** with multiple **Web Servers**? **CDN**? **Primary-Replica Replicas**? What are the alternatives and **Trade-Offs** for each? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we change all instances of "Primary-Replica Replicas" to "Primary-Replicas"? Any instances where this would read awkwardly?
* [SQL write master-slave failover](https://github.com/donnemartin/system-design-primer#fail-over) | ||
* [Master-slave replication](https://github.com/donnemartin/system-design-primer#master-slave-replication) | ||
* [SQL write primary-replica failover](https://github.com/donnemartin/system-design-primer#fail-over) | ||
* [Primary-replica replication](https://github.com/donnemartin/system-design-primer#primary-replica-replication) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we change this from "Primary-replica replication" to "Primary-replica"? Same with anchors. Any instances where this would read awkwardly?
This is somewhat of a tricky pull request that with all honesty I don't expect to get merged.
There are still some that feel that there are benifits of using the 'well-known' terminology of master and slave far rather than those without negative historic connotations such as leader/follower or primary/replica citing readability etc..
However, I hope you will atleast consider seriously altering the language in this repository, especially if it's helpful as a tool for interviews to work on large-scale systems given many companies have adopted either leader/follower or primary/replica, as alternate terms of reference.
Some examples its alteration, and conversation around it can be found below. I have tried to find some who haven't made the move in order to provide a balanced argument, feel free to add more in the comments:
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReadRepl.html
https://docs.microsoft.com/en-us/previous-versions/system-center/system-center-2012-R2/hh846234(v=technet.10)
Fixes #22667. Replaced leader/follower terminology with primary/replica django/django#2694
https://docs.pivotal.io/p-mysql/2-2/about-leader-follower.html
https://www.ibm.com/support/knowledgecenter/SSSH5A_8.0.0/com.ibm.rational.clearquest.ms_admin.doc/topics/c_cr_db_replica_ovw.htm
https://issues.apache.org/jira/browse/COUCHDB-2248
https://support.cloud.engineyard.com/hc/en-us/articles/205408108-Set-Up-Database-Replication
https://www.theregister.co.uk/2018/09/11/python_purges_master_and_slave_in_political_pogrom/
Replace "master" and "slave" terms in Redis redis/redis#3185
https://www.drupal.org/project/drupal/issues/2275877
I think even if there's just a footnote referencing that some feel that this is no longer an acceptable reference, that's also an option.