Chapitre 10. Contrôle de concurence multi-version

Table des matières
Introduction
Isolation des transactions
Niveau d'isolation en lecture non libre
Niveau d'isolation en série
Verrouillage et Tables
Verrouillage et Index
Vérification de la persistence des données au niveau application

Le contrôle de concurence multi-version (Multi-Version Concurrency Control (MVCC)) est une technique avancée pour améliorer les performances d'une base de données dans un environnement multi-utilisateurs. Vadim Mikheev en a réalisé l'implantation dans Postgres.

Introduction

À la différence de la plupart des autres bases de données, qui utilisent les verrouillages pour le contrôle de concurrence, Postgres maintient la consistence de données en utilisant le modèle multiversion. Ceci indique que pendant le questionnement d'une base chaque transaction voit un cliché de donnée, (une database version) tel qu'il était auparavant, sans faire attention à l'état sous-jacent des données. Ceci protège la transaction des données inconsistantes qui peuvent être causées par la mise à jour de transactions concurentes sur les mêmes lignes, fournissant une isolation de transaction transaction isolation pour chaque session de la base.

La principale différence entre les modéles multiversion et verrouillage est que dans le MVCC le verrouillage pendant le questionnement des données (en lecture) n'entre pas en conflit avec le verrouillage pendant l'écriture des données et ainsi la lecture ne bloque jamais l'écriture et l'écriture ne bloque jamais la lecture.