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

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]

Python і Linux

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

Примітки

  1. politically incorrect Archives. The Global Language Monitor (англ.). Процитовано 14 лютого 2021.
  2. Tech Confronts Its Use of the Labels ‘Master’ and ‘Slave’. Wired (en-us). ISSN 1059-1028. Процитовано 14 лютого 2021.
  3. Updates to coding terminology - News - Apple Developer. developer.apple.com (англ.). Процитовано 14 лютого 2021.
  4. go-review.googlesource.com https://go-review.googlesource.com/c/go/+/236857/ Пропущений або порожній |title= (довідка). Процитовано 14 лютого 2021.
  5. On Jenkins Terminology Updates. On Jenkins Terminology Updates (англ.). Процитовано 14 лютого 2021.
  6. CNN.com - 'Master' and 'slave' computer labels unacceptable, officials say - Nov. 26, 2003. edition.cnn.com. Процитовано 14 лютого 2021.
  7. Shankland, Stephen. Tech terms face scrutiny amid anti-racism efforts. CNET (англ.). Процитовано 14 лютого 2021.
  8. Risk, Victoria (Mon Jun 15 20:12:41 UTC 2020). BIND Masters and slaves. Процитовано 14 лютого 2021.
  9. #22667 replaced occurrences of master/slave terminology with leader/follower by fcurella · Pull Request #2692 · django/django. GitHub (англ.). Процитовано 14 лютого 2021.
  10. Multiple databases | Django documentation | Django. docs.djangoproject.com. Процитовано 14 лютого 2021.
  11. Fixes #22667. Replaced leader/follower terminology with primary/replica by fcurella · Pull Request #2694 · django/django. GitHub (англ.). Процитовано 14 лютого 2021.
  12. Set Up Database Replication. Engine Yard Developer Center (амер.). Процитовано 14 лютого 2021.
  13. Changing Redis master-slave replication terms with something else · Issue #5335 · redis/redis. GitHub (англ.). Процитовано 14 лютого 2021.
  14. Gryp, Kenny (1 липня 2020). MySQL Terminology Updates. MySQL High Availability (амер.). Процитовано 14 лютого 2021.
  15. High Availability and Load Balancing. PostgreSQL Documentation (англ.). 5 грудня 2011. Процитовано 14 лютого 2021.
  16. Gustafsson, Daniel (19 червня 2019). Remove one last occurrence of "replication slave" in comments. PostgreSQL Mailing List Archives (англ.). Процитовано 14 лютого 2021.
  17. Update wording to remove slave and master terms, consolidate on provider/consumer. https://git.openldap.org/ (Англійською). 14 лютого 2021. Процитовано 14 лютого 2021.
  18. A Resolution to Redefine SPI Signal Names. Open Source Hardware Association (амер.). Процитовано 14 лютого 2021.
  19. HDMI Specification 1.4b. www.hdmi.org. Процитовано 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 (англ.). Процитовано 14 лютого 2021.
  21. GitHub abandons 'master' term to avoid slavery row. BBC News (en-GB). 15 червня 2020. Процитовано 14 лютого 2021.
  22. Tracey, Lenore Tracey (9 липня 2020). Modbus Organization Replaces Master-Slave with Client-Server. https://www.modbus.org (Англійською). Процитовано 14 лютого 2021.
  23. Issue 34605: Avoid master/slave terminology - Python tracker. bugs.python.org. Процитовано 14 лютого 2021.
  24. Cimpanu, Catalin. Linux team approves new terminology, bans terms like 'blacklist' and 'slave'. ZDNet (англ.). Процитовано 14 лютого 2021.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.