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

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

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

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

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

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

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

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

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

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

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

Master/Standby PostgreSQL використовує термінологію master/standby.

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

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).

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

Main/Replica GitHub замінили термін «master» на «main» в жовтні 2020 року.

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

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

Примітки