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.
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.
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.
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.
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.
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
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
This course is intended for students who want to understand modern large-scale data analysis
systems and database systems. The course covers fundamental principles for understanding
and building syste
In this article, we study the problem of Byzantine fault-tolerance in a federated optimization setting, where there is a group of agents communicating with a centralized coordinator. We allow up to f Byzantine-faulty agents, which may not follow a prescr ...
The scale and pervasiveness of the Internet make it a pillar of planetary communication, industry and economy, as well as a fundamental medium for public discourse and democratic engagement. In stark contrast with the Internet's decentralized infrastructur ...
EPFL2024
Séances de cours associées (37)
, , ,
Modern data center fabrics open the possibility of microsecond distributed applications, such as data stores and message queues. A challenging aspect of their development is to ensure that, besides being fast in the common case, these applications react fa ...
Explorer les stratégies de réplication pour la tolérance aux défauts, l'équilibrage des charges et, éventuellement, la cohérence des transactions distribuées.
Explore les principes 2PC, les scénarios d'échec et les stratégies de réplication dans les transactions distribuées et discute de la transition des propriétés ACID vers BASE dans les systèmes NoSQL.