YaChudo

Master/slave (технологія)

Переглядів: 0. Оновлено 10.11.2026.

Master/slave — це модель асиметричної взаємодії чи комунікації де один прилад чи процес («Master») контролює один чи більше інших пристроїв чи процесів («Slaves») і служить їх комунікаційним концентратором. У деяких системах «Master» обирається з групи придатних пристроїв чи процесів, а інші пристрої чи процеси з цієї групи є «Slaves» (напр. Group Replication в MySQL).

Приклади використання

  • В електроніці, master/slave взаємозв'язки викорстовуються для опису певних сценаріїв, як-от:
    • В Parallel ATA жорстких дисках терміни «Master» і «Slave» використовуються для опису дисків на одному й тому ж кабелі, але жоден диск не має контролю або пріоритету над іншим (тобто технологія реалізована не в повній мірі). Для маркування унікального номеру приладу на шині використовують терміни «Master (0)» та «Slave (1)».
    • Головний годинник надає часові сигнали, які використовуються для синхронізації одного чи декількох залежний годинник як частини часової мережі.
    • В шині Advanced eXtensible Interface (AXI) «master» ініціює транзакції, а «slave» відповідає на ці транзакції.
  • В реплікації баз даних, «master» бази даних є авторитетним джерелом даних, а «slave» бази даних (також іноді називаються «replica») синхронізуються з ними.
  • У фотографії вторинні або їх ще називають підлеглі («slave») спалахи можуть бути синхронізовані з головним («master») спалахом для забезпечення світла з додаткових напрямків.
  • В автомобільній техніці головний («master») циліндр — це пристрій керування, який перетворює силу в гідравлічний тиск в гальмівній системі. Цей пристрій керує робочими («slave») циліндрами, розташованими на іншому кінці гідравлічної системи.

Проблеми термінології

Термінологія «master/slave» (дослівно — господар/раб) в технологічній сфері існує десятиліттями і навіть стала частиною багатьох стандартів, в тому числі Network News Transfer Protocol (RFC 977). Проте в 21 сторіччі ця термінологія стала предметом суперечок і критики, а група Global Language Monitor в 2004 році навіть назвала її найбільш політично не коректним терміном року[1] оскільки її асоціюють з рабством.[2] Деякі організації та продукти (напр. Бази даних чи Мови програмування) заміняють цю термінологію альтернативною.[3][4][5]

В 2003 році, округ Лос Анджелес в штаті Каліфорнія закликав виробників, постачальників і підрядників перестати використовувати термін «master» і «slave» в своїх продуктах/роботі. Округ зробив це прохання «виходячи з культурного різноманіття та чутливості округу Лос Анджелес».[6]

Рух «Black Lives Matter» знову підняв питання щодо цього терміна в 2020 році. Учасники руху стверджують, що зміни є поверхневими і що компанії повинні зробити реальні зміни, щоб підтримати чорношкіру спільноту.[7]

Заміни

Для заміни термінології «master/slave» були прийняті різні фрази. Деякі з них наведено нижче.

Primary/Secondary

В грудні 2017 року, неприбуткова корпорація Internet Systems Consortium вирішила дозволити слова «головний» (primary) та «другорядний» (secondary) як заміну для master/slave термінології у своєму програмному забезпеченні DNS-сервера BIND.[8]

Primary/Replica

В травні 2014 року, Django в своїй документації замінив термінологію master/slave на leader/follower[9] (лідер/послідовник), а пізніше, через два дні замінив і цей термін на primary/replica[10].[11]

Master/Replica

Термінологія master/replica була прийнята платформою Engine Yard[12] та базою даних Redis[13].

Source/Replica

В липні 2020 року, MySQL анонсувала заміну термінології master/slave на source/replica в майбутніх релізах.[14]

Master/Standby

PostgreSQL використовує термінологію master/standby.[15][16]

Provider/Consumer

OpenLDAP використовує термінологію provider/consumer.[17]

Controller/peripheral

В червні 2020 року, не прибуткова організація Open Source Hardware Association вирішила припинити використання таких акронімів як MOSI/MISO (master out slave in / master in slave out) для послідовного зв'язку при проектуванні електроніки. Замість цього будуть використовуватись акроніми COPI/CIPO (controller out peripheral in / controller in peripheral out).[18]

Initiator/Follower

Специфікація HDMI викорстовує терміни «Initiator» і «Follower» для протоколу зв'язку CEC.[19]

Main/Replica

GitHub замінили термін «master» на «main» в жовтні 2020 року.[20][21]

Client/Server

Modbus замінили термінологію master/slave на client/server в липні 2020 року.[22]

В 2018 році, Python замінив використання терміна «master» на «main», «parent» та «server» і терміна «slave» на «worker», «child» та «helper» в залежності від контексту використання.[23] Ядро Linux прийняло подібну політику для використання більш конкретних термінів у новому коді чи документації.[24]

Примітки

  1. ↑ politically incorrect Archives. The Global Language Monitor (англ.). Архів оригіналу за 25 лютого 2021. Процитовано 14 лютого 2021.
  2. ↑ Tech Confronts Its Use of the Labels ‘Master’ and ‘Slave’. Wired (амер.). ISSN 1059-1028. Архів оригіналу за 10 лютого 2021. Процитовано 14 лютого 2021.
  3. ↑ Updates to coding terminology - News - Apple Developer. developer.apple.com (англ.). Архів оригіналу за 3 березня 2021. Процитовано 14 лютого 2021.
  4. ↑ Архівована копія. go-review.googlesource.com. Архів оригіналу за 8 березня 2021. Процитовано 14 лютого 2021.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
  5. ↑ On Jenkins Terminology Updates. On Jenkins Terminology Updates (англ.). Архів оригіналу за 24 січня 2021. Процитовано 14 лютого 2021.
  6. ↑ CNN.com - 'Master' and 'slave' computer labels unacceptable, officials say - Nov. 26, 2003. edition.cnn.com. Архів оригіналу за 12 листопада 2020. Процитовано 14 лютого 2021. [Архівовано 2020-11-12 у Wayback Machine.]
  7. ↑ Shankland, Stephen. Tech terms face scrutiny amid anti-racism efforts. CNET (англ.). Архів оригіналу за 9 лютого 2021. Процитовано 14 лютого 2021.
  8. ↑ Risk, Victoria (Mon Jun 15 20:12:41 UTC 2020). BIND Masters and slaves. Архів оригіналу за 2 березня 2021. Процитовано 14 лютого 2021.
  9. ↑ #22667 replaced occurrences of master/slave terminology with leader/follower by fcurella · Pull Request #2692 · django/django. GitHub (англ.). Архів оригіналу за 19 лютого 2021. Процитовано 14 лютого 2021.
  10. ↑ Multiple databases | Django documentation | Django. docs.djangoproject.com. Архів оригіналу за 5 березня 2021. Процитовано 14 лютого 2021.
  11. ↑ Fixes #22667. Replaced leader/follower terminology with primary/replica by fcurella · Pull Request #2694 · django/django. GitHub (англ.). Архів оригіналу за 6 травня 2021. Процитовано 14 лютого 2021.
  12. ↑ Set Up Database Replication. Engine Yard Developer Center (амер.). Архів оригіналу за 1 березня 2021. Процитовано 14 лютого 2021.
  13. ↑ Changing Redis master-slave replication terms with something else · Issue #5335 · redis/redis. GitHub (англ.). Архів оригіналу за 13 березня 2021. Процитовано 14 лютого 2021.
  14. ↑ Gryp, Kenny (1 липня 2020). MySQL Terminology Updates. MySQL High Availability (амер.). Архів оригіналу за 6 березня 2021. Процитовано 14 лютого 2021. [Архівовано 2021-03-06 у Wayback Machine.]
  15. ↑ High Availability and Load Balancing. PostgreSQL Documentation (англ.). 5 грудня 2011. Архів оригіналу за 6 травня 2021. Процитовано 14 лютого 2021.
  16. ↑ Gustafsson, Daniel (19 червня 2019). Remove one last occurrence of "replication slave" in comments. PostgreSQL Mailing List Archives (англ.). Архів оригіналу за 8 березня 2021. Процитовано 14 лютого 2021.
  17. ↑ Update wording to remove slave and master terms, consolidate on provider/consumer. git.openldap.org (Англійською) . 14 лютого 2021. Архів оригіналу за 10 травня 2021. Процитовано 14 лютого 2021.
  18. ↑ A Resolution to Redefine SPI Signal Names. Open Source Hardware Association (амер.). Архів оригіналу за 27 січня 2021. Процитовано 14 лютого 2021.
  19. ↑ HDMI Specification 1.4b. www.hdmi.org. Архів оригіналу за 19 січня 2021. Процитовано 14 лютого 2021.
  20. ↑ September 22, Jack Wallen in Developer on; 2020; Pst, 8:37 Am. GitHub to replace master with main starting in October: What developers need to do now. TechRepublic (англ.). Архів оригіналу за 8 лютого 2021. Процитовано 14 лютого 2021.
  21. ↑ GitHub abandons 'master' term to avoid slavery row. BBC News (брит.). 15 червня 2020. Архів оригіналу за 22 березня 2021. Процитовано 14 лютого 2021.
  22. ↑ Tracey, Lenore Tracey (9 липня 2020). Modbus Organization Replaces Master-Slave with Client-Server (PDF). www.modbus.org (Англійською) . Архів оригіналу (PDF) за 13 квітня 2021. Процитовано 14 лютого 2021.
  23. ↑ Issue 34605: Avoid master/slave terminology - Python tracker. bugs.python.org. Архів оригіналу за 10 лютого 2021. Процитовано 14 лютого 2021.
  24. ↑ Cimpanu, Catalin. Linux team approves new terminology, bans terms like 'blacklist' and 'slave'. ZDNet (англ.). Архів оригіналу за 24 лютого 2021. Процитовано 14 лютого 2021.

Джерело: стаття у Вікіпедії та історія редагувань (автори).