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 la disponibilité. On parle 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. On distingue couramment la réplication passive et active. Lors de réplication active, les calculs effectués par la source (ou maître) sont répliqués, 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 parle 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 parle 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. Dans une base de données, la réplication est fréquemment utilisée pour des systèmes qui ont à soutenir 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èmes 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.

À propos de ce résultat
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.
Cours associés (7)
CS-438: Decentralized systems engineering
A decentralized system is one that works when no single party is in charge or fully trusted. This course teaches decentralized systems principles while guiding students through the engineering of thei
CS-451: Distributed algorithms
Computing is nowadays distributed over several machines, in a local IP-like network, a cloud or a P2P network. Failures are common and computations need to proceed despite partial failures of machin
CS-460: Systems for data management and data science
This is a course for students who want to understand modern large-scale data analysis systems and database systems. The course covers fundamental principles for understanding and building systems for
Afficher plus
Concepts associés (15)
Clustered file system
A clustered file system is a which is shared by being simultaneously mounted on multiple servers. There are several approaches to clustering, most of which do not employ a clustered file system (only direct attached storage for each node). Clustered file systems can provide features like location-independent addressing and redundancy which improve reliability or reduce the complexity of the other parts of the cluster. Parallel file systems are a type of clustered file system that spread data across multiple storage nodes, usually for redundancy or performance.
Distributed lock manager
Operating systems use lock managers to organise and serialise the access to resources. A distributed lock manager (DLM) runs in every machine in a cluster, with an identical copy of a cluster-wide lock database. In this way a DLM provides software applications which are distributed across a cluster on multiple machines with a means to synchronize their accesses to shared resources. DLMs have been used as the foundation for several successful s, in which the machines in a cluster can use each other's storage via a unified , with significant advantages for performance and availability.
Serializability
In concurrency control of databases, transaction processing (transaction management), and various transactional applications (e.g., transactional memory and software transactional memory), both centralized and distributed, a transaction schedule is serializable if its outcome (e.g., the resulting database state) is equal to the outcome of its transactions executed serially, i.e. without overlapping in time. Transactions are normally executed concurrently (they overlap), since this is the most efficient way.
Afficher plus