Dans les systèmes de gestion de base de données (SGBD), l'isolation est la capacité d'un système d'isoler les modifications dans une transaction en cours de celles faites dans les autres transactions conduites simultanément, jusqu'à ce qu'elle soit complétée. C'est l'une des quatre propriétés ACID d'une base de données.
L'isolation des transactions d'une base données est assurée par son moteur de stockage, par un contrôle de concurrence entre elles.
Le système le plus commun de contrôle de concurrence est le verrouillage à deux phases, ou 2PL (dans l'anglais two-phase locking), qui est composé de deux phases consécutives : la pose de verrous et leurs retraits.
Une mauvaise isolation des transactions peut essentiellement causer quatre problèmes :
Lecture fantôme : les données recherchées par une transaction selon une condition diffèrent entre deux recherches (à la suite de leurs mises à jour par d'autres transactions).
Lecture non reproductible : les lectures répétées des données donnent des résultats différents.
Lecture sale : les données d'une transaction non terminée (donc annulables) sont lues par une autre transaction (qui les considère comme définitives).
Mise à jour perdue : deux transactions modifient le même enregistrement en parallèle, sans tenir compte l'une de l'autre (donc une sera écrasée et n'aura aucun effet).
Certains SGDB définissent plusieurs niveaux d'isolation de façon à pouvoir paramétrer le nombre de verrouillages des transactions, et ainsi influer sur leur performance et leur fiabilité. En effet, plus il y aura de verrouillages, et plus le risque d'interblocage sera élevé.
La norme ANSI/ISO SQL reconnait les quatre niveaux suivants :
Niveau d'isolation le plus élevé.
Il impose aux verrous de lecture et d'écriture d'être levés à la fin de la transaction, avec en plus un verrouillage d'étendues de clés (range-lock).
Niveau d'isolation par défaut avec InnoDB (un des moteurs MySQL).
Il impose aux verrous de lecture et d'écriture d'être levés à la fin de la transaction, mais sans verrouillage d'étendues de clés.
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.
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 introduces the foundations of information retrieval, data mining and knowledge bases, which constitute the foundations of today's Web-based distributed information systems.
This course provides a deep understanding of the concepts behind data management systems. It covers fundamental data management topics such as system architecture, data models, query processing and op
Optimistic concurrency control (OCC), also known as optimistic locking, is a concurrency control method applied to transactional systems such as relational database management systems and software transactional memory. OCC assumes that multiple transactions can frequently complete without interfering with each other. While running, transactions use data resources without acquiring locks on those resources. Before committing, each transaction verifies that no other transaction has modified the data it has read.
A database transaction symbolizes a unit of work, performed within a database management system (or similar system) against a database, that is treated in a coherent and reliable way independent of other transactions. A transaction generally represents any change in a database. Transactions in a database environment have two main purposes: To provide reliable units of work that allow correct recovery from failures and keep a database consistent even in cases of system failure.
Dans le contexte des bases de données, la durabilité est la propriété qui garantit qu'une transaction informatique qui a été confirmée survit de façon permanente, quels que soient les problèmes rencontrés par la base de données ou le système informatique où cette transaction a été traitée. Par exemple, dans un système de réservation de sièges d'avion, la durabilité assure qu'une réservation confirmée restera enregistrée quels que soient les problèmes rencontrés par l'ordinateur qui gère le système de réservation (panne d'électricité, écrasement de la tête sur le disque dur, etc.
Se consacre à la gestion des transactions, au contrôle de la concordance et à la récupération dans les bases de données afin d'assurer l'intégrité des données et la résilience des systèmes.
Déplacez-vous dans le contrôle de la concurrence basé sur les verrous, la gestion de l'impasse, les modèles de transaction, et leurs limites.
Explore les transactions, les propriétés de l'ACID, les calendriers et les anomalies dans les systèmes de base de données.
The popular isolation level multiversion Read Committed (RC) exchanges some of the strong guarantees of serializability for increased transaction throughput. Nevertheless, transaction workloads can sometimes be executed under RC while still guaranteeing se ...
ASSOC COMPUTING MACHINERY2023
, , ,
Most modern in-memory online transaction processing (OLTP) engines rely on multi-version concurrency control (MVCC) to provide data consistency guarantees in the presence of conflicting data accesses. MVCC improves concurrency by generating a new version o ...
ACM2023
, ,
Enterprises collect data in large volumes and leverage them to drive numerous concurrent decisions and business processes. Their teams deploy multiple applications that often operate concurrently on the same data and infrastructure but have widely differen ...