Master–slave (technology)
Master/slave is a model of asymmetric communication or control where one device or process controls one or more other devices or processes and serves as their communication hub. In some systems a master is selected from a group of eligible devices, with the other devices acting in the role of slaves.[1][2][3] Historically, the master/slave terminology has existed for many decades, and is currently deeply entrenched into the internet, as well as printed books, magazines, manuals, datasheets, and more.
Examples
- In electronics, master/slave relationships are used to describe some of the following scenarios:
- In parallel ATA hard drive arrangements, the terms master and slave are used but neither drive has control over the other. The terms however indicate which device has priority in using the shared communication interface.
- A master clock that provides time signals used to synchronize one or more slave clocks as part of a clock network.
- In AXI, master and slave have differing roles, with master initiating transactions and the slave responding to those transactions.
- In database replication, the master database is regarded as the authoritative source, and the slave databases are synchronized to it.
- In photography, secondary or slave flash units may be synchronized to the master unit to provide light from additional directions.
- Duplication is often done with several cassette tape or compact disc recorders linked together. Operating the controls on the master triggers the same commands on the slaves, so that recording is done in parallel.
- Railway locomotives operating in multiple (for example: to pull loads too heavy for a single locomotive) can be referred to as a master/slave configuration with the operation of all locomotives in the train slaved to the controls of the first locomotive. See Multiple-unit train control.
Terminology concerns
For some time this standard and widely accepted terminology has been criticized by some as inappropriate due sensitivity about the practice of slavery. Conversely, such criticism is seen by others as an example of excessive political correctness. There are also practical difficulties in changing longstanding terminology - potential confusion, and additional work. [citation needed]
In 2003, the County of Los Angeles in California asked that manufacturers, suppliers and contractors stop using "master" and "slave" terminology on products; the county made this request "based on the cultural diversity and sensitivity of Los Angeles County".[4][5] Following outcries about the request, the County of Los Angeles issued a statement saying that the decision was "nothing more than a request".[4] Following the controversy, Global Language Monitor found the term "master/slave" to be the most egregious example of political incorrectness in 2004, and named it the most politically incorrect term of that year.[6] The Black Lives Matter movement sparked that discussion again in 2020.[7]
Different phrases have been proposed to replace existing usage of the phrase. Some examples include:
- Primary / Secondary:
- Used in the documentation from IBM,[8] Microsoft,[9] Engine Yard,[10] Amazon Web Services/Amazon Relational Database Service,[11] as well as in Python,[12] Django,[13][14] Drupal,[15] CouchDB,[16], and Redis.[17]
- In December 2017, the Internet Systems Consortium decided to allow the words "primary" and "secondary" as a substitute for master/slave terminology in their DNS server software BIND.[18]
- Main
- GitHub announced that "main" will replace "master" as the default name for primary branches.[21] The "announcement came in a Twitter reply to Google Chrome developer Una Kravets, who said she would be happy to rename the "master" branch of the project to "main"".[22][23] Atlassian as well gave a statement, specifying that "‘Master’ appears to be an inherited reference from BitKeeper which was adapted from a common technological analogy where asymmetric data & process relationships are described.".[24]
See also
- Advanced Technology Attachment (ATA), uses the terms master/slave for paired independent peer devices
- Communication endpoint
- Flexible single master operation
- Bus mastering
- Master clock
- Multi-master replication
- SPMD
- SCSI initiator and target
References
- ^ "What is master/slave? - Definition from WhatIs.com".
- ^ Description of the Microsoft Computer Browser Service from Microsoft KnowledgeBase
- ^ Information on Browser Operation from Microsoft KnowledgeBase
- ^ a b "'Master' and 'slave' computer labels unacceptable, officials say". CNN. November 26, 2003.
- ^ Master/Slave, Snopes
- ^ 'Master/slave' named most politically incorrect term, Seattle PI, December 2, 2004,
The computer term "master/slave," which was banned as racially offensive by a Los Angeles County purchasing department.
- ^ Shankland, Stephen (2020-06-10). "Tech terms face scrutiny amid anti-racism efforts". CNET. Retrieved 2020-07-06.
{{cite web}}
: CS1 maint: url-status (link) - ^ "IBM Knowledge Center". www.ibm.com. Retrieved 2018-05-08.
- ^ "Configure Database Replicas for Management Points". technet.microsoft.com. Retrieved 2018-05-08.
- ^ "Set Up Database Replication". Engine Yard Developer Center. Retrieved 2018-05-08.
- ^ "Working with Read Replicas of MariaDB, MySQL, and PostgreSQL DB Instances - Amazon Relational Database Service". docs.aws.amazon.com. Retrieved 2018-05-08.
- ^ "Python joins movement to dump 'offensive' master, slave terms". Retrieved 2018-09-12.
- ^ "Fixes #22667. Replaced leader/follower terminology with primary/replica by fcurella · Pull Request #2694 · django/django".
- ^ "Multiple databases". Django Project. Retrieved 2018-05-08.
- ^ "Replace "master/slave" terminology with "primary/replica"". Drupal.org. 2014-05-28. Retrieved 2018-04-17.
- ^ "CouchDB - Replace "master" and "slave" terminology".
- ^ "Redis - Replace "master" and "slave" terms in Redis".
- ^ "ISC explanation via Twitter".
- ^ Gryp, Kenny (2020-07-01). "MySQL Terminology Updates". MySQL High Availability. Retrieved 2020-07-02.
- ^ "Configuring the Salt Minion". SaltStack Inc. Retrieved 2019-04-19.
- ^ "GitHub abandons 'master' term to avoid slavery row". BBC. 2020-06-15. Archived from the original on 2020-06-15. Retrieved 2020-07-08.
- ^ "For what it's worth, I'm super happy to rename the default branch structure of "master" to "main"". 2020-06-11. Archived from the original on 2020-06-11.
- ^ Friedman, Nat. "It's a great idea and we are already working on this!". Archived from the original on 2020-06-12.
- ^ "Moving away from Master as the default name for Branches in Git". 2020-06-23. Archived from the original on 2020-07-08.