Réplication (informatique)

Un article de Wikipédia, l'encyclopédie libre.

En informatique, la réplication est un processus de partage d'informations pour assurer la cohérence de données entre plusieurs sources de données redondantes, pour améliorer la fiabilité, la tolérance aux pannes, ou l'accessibilité. On parlera de réplication de données si les mêmes données sont dupliquées sur plusieurs périphériques.

La réplication n'est pas à confondre avec une sauvegarde : les données sauvegardées ne changent pas dans le temps, reflétant un état fixe des données, tandis que les données répliquées évoluent sans cesse à mesure que les données sources changent.

[modifier] Différents types de réplication

On distingue couramment la réplication passive et active. Lors de réplication active, les calculs effectués pas la source (ou maître) sont répliquées, alors que lors de réplication passive, seul le serveur maître procède au calcul et il ne propage que les modifications finales de la mémoire à effectuer.

  • Si à tout moment un unique maître est désigné pour effectuer toutes les requêtes, on parlera d'un schéma primaire (schéma maître esclave) : c'est souvent l'architecture employée pour des clusters de serveurs à haute disponibilité.
  • Si par contre, n'importe quel serveur peut traiter une requête, on parlera de schéma multi-maître (multi-master replication). Cette architecture pose des problèmes de contrôle de concurrence : plusieurs processus qui travailleraient de manière incontrôlée sur les mêmes données pourraient remettre en cause la cohérence globale du système.

[modifier] En base de données

Dans une base de données, la réplication est fréquemment utilisée pour des systèmes qui supporteront une forte charge: le serveur maître journalise les opérations effectuées, et les esclaves, à partir de ce journal, dupliquent les opérations effectuées. Ainsi, moyennant un petit temps de retard (replication lag), les mêmes données sont disponibles sur plusieurs serveurs en même temps, ce qui permet un processus de répartition de charge.

La plupart des système de gestion de base de données modernes permettent un schéma multi-maître: cependant, celui-ci introduit de nombreux coûts supplémentaires. La résolution, ou la prévention de conflits entre plusieurs transactions simultanées est par exemple très complexe.