Introduction Contrôle de concurrence Gestion des accès concurrents et SQL

Documents pareils
Les transactions 1/46. I même en cas de panne logicielle ou matérielle. I Concept de transaction. I Gestion de la concurrence : les solutions

Données Réparties. Thibault BERNARD.

Bases de données avancées Concurrence d'accès et reprise

Bases de données et sites WEB Licence d informatique LI345

Module BDR Master d Informatique (SAR)

Cours de Base de Données Cours n.12

Gestion des transactions et accès concurrents dans les bases de données relationnelles

UNION INTERCEPT SELECT WHERE JOINT FROM ACID

Implémentation des SGBD

Cours Bases de données 2ème année IUT

Intelligence Artificielle Planification

Bases de données cours 1

Réplication des données

Systèmes de Gestion de Bases de Données (SGBD) relationnels Maude Manouvrier

Chapitre 4 : Exclusion mutuelle

Ordonnancement temps réel

Cours de Systèmes d Exploitation

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

Année Universitaire 2009/2010 Session 2 de Printemps

Transactionnel et transactionnel réparti. Source R.CHEVANCE G.Gardarin

Chapitre 1 : Introduction aux bases de données

Recherche dans un tableau

Base de données II Module 3b

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010

Pourquoi l apprentissage?

Les suites numériques

PROJET 1 : BASE DE DONNÉES REPARTIES

1.6- Génération de nombres aléatoires

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

Université Paris-Dauphine DUMI2E 1ère année, Applications

Algorithmique répartie

Chapitre 10. Architectures des systèmes de gestion de bases de données

CHAPITRE 1. Suites arithmetiques et géometriques. Rappel 1. On appelle suite réelle une application de

Microsoft Live Messenger

NoSQL. Introduction 1/23. I NoSQL : Not Only SQL, ce n est pas du relationnel, et le contexte. I table d associations - Map - de couples (clef,valeur)

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Les systèmes de base de données temps réels. Pokrovskaya Natalia, Kabbali Nadia

Matrice d accès. Master SEMS, Pierre Paradinas. October 16, 2013

Licence Sciences et Technologies Examen janvier 2010

Gestion de données réparties. Cours 1

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

CESI Bases de données

Introduction a l'algorithmique des objets partages. Robert Cori. Antoine Petit. Lifac, ENS Cachan, Cachan Cedex. Resume

Développement d applications Internet et réseaux avec LabVIEW. Alexandre STANURSKI National Instruments France

Rappels sur les suites - Algorithme

Saisie Prélèvement SEPA sur EDI WEB

Fonctions homographiques

Limitations of the Playstation 3 for High Performance Cluster Computing

CHAPITRE V SYSTEMES DIFFERENTIELS LINEAIRES A COEFFICIENTS CONSTANTS DU PREMIER ORDRE. EQUATIONS DIFFERENTIELLES.

Modélisation de bases de données : Le modèle relationnel

COMPOSANTS DE L ARCHITECTURE D UN SGBD. Chapitre 1

Déclarer un serveur MySQL dans l annuaire LDAP. Associer un utilisateur DiaClientSQL à son compte Windows (SSO)

Terminal Infocomm et Poste Infocomm

Cours de Master Recherche

Bases de données Cours 1 : Généralités sur les bases de données

Resolution limit in community detection

Règlement du jeu télévisé «JEUX DE NUIT»

Travail collaboratif avec OpenOffice Texte (Writer)

Correction du baccalauréat ES/L Métropole 20 juin 2014

Activation de la gestion des effets - Paramétrage... 2 Préférences Dossier... 2 Fiche Client... 3

Gestion de projet- Indicateurs de performance

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

Déclarer un serveur MySQL dans l annuaire LDAP. Associer un utilisateur DiaClientSQL à son compte Windows (SSO)

Introduction aux bases de données Cours 1 : Généralités sur les bases de données

Par combien de zéros se termine N!?

TS 35 Numériser. Activité introductive - Exercice et démarche expérimentale en fin d activité Notions et contenus du programme de Terminale S

Conception de circuits numériques et architecture des ordinateurs

Projet gestion d'objets dupliqués

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

Algorithmes de recherche

I - PUISSANCE D UN POINT PAR RAPPORT A UN CERCLE CERCLES ORTHOGONAUX POLES ET POLAIRES

Bases de données et sites WEB

Compte Rendu d intégration d application

Java et les bases de données

Plus courts chemins, programmation dynamique

CHAPITRE VIII : Les circuits avec résistances ohmiques

Raisonnement par récurrence Suites numériques

LES ACCES ODBC AVEC LE SYSTEME SAS

L objectif de ce cycle est de former des techniciens supérieurs spécialisés dans l administration et la gestion de bases de données et des réseaux.

Cours admin 200x serveur : DNS et Netbios

Cryptographie et fonctions à sens unique

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Cours d algorithmique pour la classe de 2nde

Le Protocole DHCP. Définition. Références. Fonctionnement. Les baux

POLITIQUE EN MATIERE DE CONFLITS D INTERÊTS 2. IDENTIFICATION DES CAS DE CONFLITS D INTERÊTS POTENTIELS ET POLITIQUE DE GESTION DE NOTRE BUREAU

Représentation d un entier en base b

Service Déposant: Procédure d installation. Page 1. Service déposant. Procédure d installation Version 2.3

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

TP Contraintes - Triggers

Programmation parallèle et distribuée

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Le stockage local de données en HTML5

Gestion répartie de données - 1

EQUISIS E-BANKING A. "E-BANKING" VIREMENTS NATIONAUX PARAMETRAGE. Comptes centralisateurs financiers

Transcription:

1 Architecture d un SGBD Transactions et Contrôle de la concurrence Marta Rukoz Introduction Contrôle de concurrence Gestion des accès concurrents et SQL

introduction 1. Notion de transaction 2. Transactions concurrentes 3. Le problème des annulations 2

3 introduction Transaction : unité logique de travail action ou série d opérations d un utilisateur ou d une application, qui accède(nt) ou modifie(nt) les données de la base, transformant la base de données d un état cohérent en un autre état cohérent

4 Exemple de transaction Virement bancaire sans transaction Virement = 2 opérations atomiques Que se passe-t-il si le Dépôt échoue? Op. 1. Retrait - 100 Op. 2. Dépôt Compte courant 500 100 = 400 Compte courant = 400 CODEVI = 110 Appelez la banque!!! + 100 CODEVI 110 110 + 100 = 210

5 Exemple de transaction Virement bancaire dans une transaction (1/2) Begin transaction 1. Retrait Virement = 1 transaction de 2 opérations atomiques - 100 2. Dépôt Compte courant 500-100 = 400 500 100 = 400 + 100 CODEVI 110 Commit transaction + 100 = 210 110 + 100 = 210

6 Exemple de transaction Virement bancaire dans une transaction (2/2) Que se passe-t-il si le Dépôt échoue? Compte courant = 500 CODEVI = 110 Recommencez! Begin transaction 1. Retrait - 100 Compte courant 500 2. Dépôt + 100 CODEVI Rollback transaction 110 500 100 = 400 110

Propriétés des transactions Atomicité : Tout ou rien Une transaction effectue toutes ses actions ou aucune. En cas d annulation, les modifications engagées doivent être défaites. Cohérence : Intégrité des données Passage d un état cohérent de la base à un autre état cohérent de la base de données Isolation : Pas d interférence entre transactions Les résultats d une transaction ne sont visibles par les autres transactions qu après sa validation Durabilité : Journalisation des mises à jour Les modifications effectuées sont garanties même en cas de panne 7

Gestionnaire de transactions (Moniteur des transactions ou moniteur TP) Système qui assure une gestion des transactions. Il doit apporter la garantie que, lors de l exécution d une ou d un ensemble de transactions, toutes les propriétés d une transaction sont satisfaites, même en cas de défaillance du système 8

Opérations des transactions Lecture Écriture Validation (commit en anglais). Elle consiste à rendre les mises à jour permanentes. Annulation (rollback en anglais). Elle annule les mises à jour effectuées. Ainsi, une transaction est l'ensemble des instructions séparant un commit ou un rollback du commit ou du rollback suivant. NOTATION : ri[x] : la transaction Ti lit la valeur de x wi[x] : la transaction Ti écrit la valeur de x Ci : la transaction Ti valide (commit) Ri : la transaction Ti abandonne (Rollback) 9

Opérations des transactions Transaction = [BEGIN TRANSACTION] opérations de lectures et/ou écritures COMMIT / ROLLBACK Exemple : T 1 : r 1 [x] w 1 [x] C 1 (crédit) T 2 : r 2 [x] w 2 [x] r 2 [y] w 2 [y] C 2 (transfert) T 3 : r 3 [x] R 3 (transfert impossible) T 4 : r 4 [x] r 4 [y] w 4 [x] R 4 w 4 [y] C 4 incorrect correct 10

Exécution concurrent des transactions Par définition toute transaction T est correcte à partir d un état cohérent son exécution amène à un autre état cohérent. Pour des raisons d'efficacité, il est nécessaire d'autoriser l'exécution concurrente des transactions. Tout le problème réside alors dans le fait qu'il faut gérer ces exécutions concurrentes pour qu'elles ne conduisent pas à une base incohérente. C'est l'entrelacement non contrôlé des opérations de deux transactions correctes qui peut produire un résultat global incorrect. Les opérations sont toujours exécutées en séquence. 11

Problèmes de concurrence Le problème des analyses incohérentes T 1 = transfert de x y de 50 T 2 = calcul dans z de la somme x + y au début, x = 200, y = 100 T 1 = r 1 [x] w 1 [x] r 1 [y] w 1 [y] C 1 T 2 = r 2 [x] r 2 [y] w 2 [z] C 2 H = r 1 [x] x = 200 w 1 [x] x = 150 r 2 [x] x = 150 r 2 [y] y = 100 w 2 [z] z = 250 C 2 r 1 [y] y = 100 w 1 [y] y = 150 C 1 Résultat : z = 250 au lieu de z = 300 (r 2 [x] est influencé par T 1 mais pas r 2 [y]) Problème de cohérence à cause de l'isolation. 12

Problèmes de concurrence Le problème de perte de mise à jour Exemple : T 1 = r 1 [x] w 1 [x] C 1 (crédit x de 100) T 2 = r 2 [x] w 2 [x] C 2 (crédit x de 50) au début, x = 200 Si H = r 1 [x] x = 200 r 2 [x] x = 200 w 1 [x] x = 300 w 2 [x] x = 250 C 1 C 2 Résultat : x = 250 au lieu de x = 350 (w 1 [x] est perdu à cause de w 2 [x]) Problème de cohérence même si l'isolation est respectée. 13

Problèmes de concurrence Le problème des dépendances non validées Exemple : T 1 = r 1 [x] w 1 [x] R 1 (crédit x de 100) T 2 = r 2 [x] w 2 [x] C 2 (crédit x de 50) au début, x = 200 Si H = r 1 [x] x = 200 w 1 [x] x = 300 r 2 [x] x = 300 w 2 [x] x = 350 C 2 R 1 Résultat : x = 350 au lieu de x = 250 (T 1 est annulée) r 2 [x] utilise la valeur non validée de x écrite par w 1 [x] Problème de cohérence à cause de l'isolation. 14

Le problème des annulations Annuler dans la base de données les effets d'une transaction T signifie : - annuler les écritures de T - annuler les transactions qui utilisent les écritures de T Donc, une transaction validée risque d'être annulée! 15

Le problème des annulations Exemple 1: w 1 [x] r 2 [x] w 2 [y] C 2 R 1 R 1 oblige l'annulation de T 2. Or, ce n'est pas possible car T 2 a été validée. Solution : si T 2 lit au moins un enregistrement dont T 1 est la dernière transaction a l'avoir mis à jour, alors T 2 doit valider après T 1 retardement des validations Dans l'exemple : retardement de C 2 après la fin de T 1 16

Annulations en cascade Dans l'exemple précédent, même si C 2 est retardé, T 2 sera quand même annulée à cause de T 1 Exemple 2 w 1 [x] r 2 [x] w 2 [y] R 1 R 1 oblige R 2 Solution : T 2 ne doit lire qu'à partir de transactions validées retardement des lectures Dans l'exemple : retardement de r 2 [x] après la fin de T 1 17

Exécution stricte Exemple : w 1 [x,2] w 2 [x,3] R 1 R 2 au début, x=1 Image avant (w 1 [x] ) =1, Image avant (w 2 [x] ) =2 R 1 restaure x = 1: erreur R 2 restaure x = 2 : erreur Solution : w 2 [x] attend que tout T i qui a écrit x se termine (par R 1 ou par C 1 ), donc retardement de w 2 [x] après la fin de T 1. retardement des lectures et des écritures 18

Le contrôle de concurrence 1. Théorie de la sérialisabilité 2. Contrôle par verrouillage à deux phases 19

Théorie de la sérialisabilité L exécution en série d un ensemble des transactions est toujours correcte. En effet : { État initial} T1 {État I1} T2 Tn {État final} Exécution concurrent (EC) équivalent à une exécution en série (ES), alors EC est correcte 20

Exemple transactions : T 1 = crédit de 100; r 1 [x] x = x1 w 1 [x] x = x1+100 c 1 T 2 = crédit de 50; r 2 [x] x = x2 w 2 [x] x = x2+50 c 2 Théorie de la sérialisabilité Exécution en série : Au début x = 200. H1 = T1 T2 = r1 [x]x = 200 w1 [x] x = 300 c1 r2 [x] x = 300 w2 [x] x = 350 c2 H2 = T2 T1 = r2 [x]x = 200 w2 [x] x = 250 C2 r1 [x] x = 250 w1 [x] x = 350 C1 21

Théorie de la sérialisabilité Objectif : produire une exécution sérialisable des transactions, c'està-dire équivalente à une exécution en série quelconque des transactions. Equivalence de deux exécutions (histoires) - avoir les mêmes transactions et les mêmes opérations - produire le même effet sur la BD (écritures) - produire le même effet dans les transactions (lectures) 22

Théorie de la sérialisabilité Opérations Conflictuel Deux opérations O1 y O2 sont en conflit si : elles son produites par de transactions différentes réagissent sur la même variable L une d entre elles c est une lecture et l autre une écriture Exemple: (r i [x] w j [x] ) et (w i [x] w j [x]) sont des opérations en conflictuelles 23

Théorie de la sérialisabilité Critère d'équivalence utilisé - avoir les mêmes transactions et les mêmes opérations - avoir le même ordre des opérations conflictuelles dans les transactions non annulées Exemple : T 1 : r 1 [x] w 1 [y] w 1 [x] C 1 T 2 : w 2 [x] r 2 [y] w 2 [y] C 2 H 1 : r 1 [x] w 2 [x] w 1 [y] r 2 [y] w 1 [x] w 2 [y] C 1 C 2 Conflits : r 1 [x]-w 2 [x] ; w 2 [x]- w 1 [x] ; w 1 [y]-r 2 [y] ; w 1 [y]- w 2 [y] H 2 : r 1 [x] w 1 [y] w 2 [x] w 1 [x] C 1 r 2 [y] w 2 [y] C 2 Conflits : r 1 [x]-w 2 [x] ; w 2 [x]- w 1 [x] ; w 1 [y]-r 2 [y] ; w 1 [y]- w 2 [y] Donc H 2 est équivalent à H 1. 24

Théorie de la sérialisabilité Définition : SG = graphe de sérialisation d'une exécution H : nœuds = transactions T validées dans H Arcs : si O 1 et O 2 conflictuelles, O 1 T i, O 2 T j, O 1 avant O 2 arc T i T j H est sérialisable SG(H) acyclique Exemple de graphe de sérialisation pour H 1 et H 2 : T 1 T 2 H 1 et H 2 ne sont donc pas sérialisables. 25

Théorie de la sérialisabilité Condition suffisant pour l équivalence Deux histoires H1 y H2 sont équivalentes si pour toute couple des opérations conflictuelles Oi y Oj, Si Oi précède à Oj dans H1 Oi précède à Oj dans H2 Exemple: H1 = r i (x) r j (y) w j (y) C j w i (y) C i r j (y) w j (y) C j r i (x) w i (y) C i Serial (S) = Tj Ti 26

Contrôle par verrouillage à deux phases Protocole Avant d'agir sur un objet, une transaction doit obtenir un verrou sur cet objet. Après l'abandon d'un verrou, une transaction ne doit plus jamais pouvoir obtenir de verrous. Une transaction obéissant à ce protocole a donc deux phases, une phase d'acquisition de verrous et une phase d'abandon de verrous. Le respect du protocole est assuré par un module dit scheduler qui reçoit les opérations émises par les transactions et les traite. Théorème Si toutes les transactions satisfont le protocole de verrouillage à deux phases, tous les ordonnancements entrelacés possibles sont sérialisables. 27

Contrôle par verrouillage à deux phases Algorithme 1) Le scheduler reçoit O i [x] et consulte le verrou déjà posé sur x, ql j [x], s'il existe. - si Ol i [x] est en conflit avec ql i [x], O i [x] est retardée et la transaction T i est mise en attente - sinon T i obtient le verrou Ol i [x] et l'opération O i [x] est exécutée 2) Un verrou pour ql i [x] n'est jamais relâché avant la confirmation de l'exécution par le gestionnaire des données (C i ) 3) Dès que T i relâche un verrou, elle ne peut plus en obtenir d'autre. Théorème Toute exécution obtenue par un verrouillage à deux phases est sérialisable. On obtient une exécution stricte en ne relâchant les verrous qu'au moment du commit ou du rollback. Les transactions obtenues satisfont les propriétés ACID. 28

Exemple : Contrôle par verrouillage à deux phases T 1 : r 1 [x] w 1 [y] C 1 T 2 : r 2 [y] w 2 [y] C 2 Ordre de réception : r 1 [x] r 2 [y] w 1 [y] C 1 w 2 [y] C 2 r 1 [x] exécutée r 2 [y] exécutée w 1 [y] retardée à cause de r 2 [y] et tout le reste de T 1 va être bloqué C 1 bloqué w 2 [y] exécutée C 2 relâche les verrous sur y w 1 [y] exécutée C 1 exécutée Exécution correcte : r 1 [x] r 2 [y] w 2 [y] C 2 w 1 [y] C 1 Conflits : r 2 [y] - w 1 [y] ; w 2 [y] - w 1 [y] Pas de cycle, donc H sérialisable 29

Contrôle par verrouillage à deux phases Cette stratégie peut parfois conduire à un interblocage (Un transaction T1 attend que une autre transaction T2 relâche un verrou et T2 attend aussi que T1 relâche un verrou) Exemple : T 1 : r 1 [x] w 1 [y] C 1 T 2 : w 2 [y] w 2 [x] C 2 Ordre de réception : r 1 [x] w 2 [y] w 2 [x] w 1 [y] T 1 obtient un verrou pour r 1 [x], T 2 pour w 2 [y] w 2 [x] attend r 1 [x], w 1 [y] attend w 2 [y] interblocage de T 1 et de T 2. Solutions : - rejet de transactions non terminées après une durée limite - annulation des transactions les moins coûteuses, -... 30

Gestion des accès concurrents et SQL Il est possible en SQL de choisir explicitement le niveau de protection que l'on souhaite obtenir contre les incohérences résultant de la concurrence d'accès. Options possibles : 1) On spécifie qu'une transaction ne fera que des lectures SET TRANSACTION READ ONLY; 2) Une transaction peut lire et écrire (Option par défaut ) SET TRANSACTION READ WRITE; 31

SQL2 et les propriétés des exécutions concurrentes La norme SQL2 spécifie que ces exécutions doivent être sérialisables (mode par défaut). Un verrouillage strict doit alors être assuré par le SGBD. SQL2 propose des options moins fortes : SET TRANSACTION ISOLATION LEVEL option Liste des options : 1. READ UNCOMMITTED : on autorise les lectures de tuples écrits par d'autres transactions mais non encore validées 2. READ COMMITED : on ne peut lire que les tuples validés (pas de verrou sur une donnée lue). C'est le mode par défaut d'oracle. 32