# Maître-esclave

Le maître-esclave est un modèle de communication ou de contrôle asymétrique dans lequel un dispositif ou un processus (le maître) contrôle un ou plusieurs autres dispositifs ou processus (les esclaves) et sert de centre de communication. Dans certains systèmes, un maître est sélectionné parmi un groupe de dispositifs éligibles, les autres dispositifs jouant le rôle d'esclaves$^,$$^,$.
La terminologie maître-esclave a été utilisée pour la première fois en 1904. Depuis le début du 21e siècle, ce terme est devenu un sujet de controverse en raison de son association avec l'esclavage et certaines organisations ont choisi de le remplacer par d'autres termes$^,$$^,$.

## Exemples
### Parallel ATA

La technique maître-esclave est notamment utilisée dans le fonctionnement des disques durs Parallel ATA où sur chaque contrôleur se trouvent un disque dur maître et (zéro ou) un disque dur esclave.
Les disques durs Parallel ATA sont de plus en plus remplacés par des disques durs Serial ATA qui n'utilisent pas la technique maître-esclave.

### Base de données

La réplication maître-esclave est utilisée dans les systèmes de base de données pour assurer la tolérance aux pannes et augmenter les performances en lecture.
Le maître reçoit des requêtes en lecture ou en écriture des clients. Lorsque le maître reçoit une requête en écriture, il valide et exécute localement cette requête avant de la faire suivre aux esclaves pour qu'ils exécutent localement le même changement et ainsi obtenir le même état que le maître.
Lorsque le maître devient indisponible, une technique de tolérance aux pannes possible consiste à exécuter un algorithme pour élire le nouveau maître parmi les nœuds esclaves.

## Réseau d'horloges

Une horloge maîtresse fournit des signaux temporels utilisés pour synchroniser une ou plusieurs horloges esclaves dans le cadre d'un réseau d'horloges.

## Controverses de terminologie

En 2003, après avoir reçu une plainte pour discrimination de la part d'un employé du comté, le comté de Los Angeles, en Californie, a demandé aux fabricants, fournisseurs et entrepreneurs de cesser d'utiliser les termes maître et esclave$^,$. À la suite de réactions négatives à cette demande, le comté de Los Angeles a publié une déclaration indiquant que la demande n'était « rien de plus qu'une demande ».
La société d'analyse des médias Global Language Monitor a placé le terme sur sa liste annuelle des termes politiquement chargés en 2004. En 2018, après un débat houleux, les développeurs du langage de programmation Python ont remplacé le terme. Le mouvement Black Lives Matter aux États-Unis a relancé la discussion et les changements de terminologie en 2020$^,$. Le guide de style de la documentation des développeurs de Google recommande d'éviter le terme maître dans la documentation des logiciels, en particulier lorsqu'il est associé au terme esclave.
Certains ont affirmé que ce changement était superficiel et que les entreprises devraient procéder à de véritables changements pour soutenir la communauté noire$^,$.

## Autres terminologies

Différents termes de remplacement pour maître et esclave ont été proposés et mis en œuvre. En 2020, GitHub a remplacé la branche git master par main. D'autres noms de remplacement pour master incluent default, primary, controller, root, initiator, leader et director ; et pour slave : performer, worker, peripheral, responder, device, replica, satellite et secondary$^,$$^,$$^,$$^,$. Python a adopté les termes main, parent et server, ainsi que worker, child et helper, en fonction du contexte$^,$. Le noyau Linux a adopté une politique similaire pour utiliser des termes plus spécifiques dans le nouveau code et la nouvelle documentation.