1  G. Gardarin GESTION DE TRANSACTIONS l 1. Objectifs et bases l 2. Journaux et reprise l 3. Scénarios de reprise l 4. Modèles étendus l 5. Cas des systèmes.

Slides:



Advertisements
Présentations similaires
Contrôle de la concurrence
Advertisements

1 CNAM Vendredi 29 Novembre 2002 Bases de Données Avancées UV C Responsable : Mr Scholl PROTOCOLE A DEUX PHASES Meryem Guerrouani.
Introduction aux environnements répartis
Serveur jeu Le serveur fait partie d'un logiciel de jeu en ligne multi joueur en architecture client serveur. Il répond à des demandes.
PROGRAMMATION LOGICIEL PL7 MICRO Consignes
GEF 435 Principes des systèmes dexploitation Communication Interprocessus (CIP) III (Tanenbaum 2.3)
Introduction Pour concrétiser l’enseignement assisté par ordinateur
TRANSACTION Problèmes posés
Module 10 : Gestion et analyse de l'accès réseau

Stéphane Frenot - Département Télécommunication - SID - III - TPMon 337 Pour faire un contrat deux ou plus de parties négocient.
TP 3-4 BD21.
GESTION DE TRANSACTIONS
NFE 107 : Urbanisation et architecture des systèmes d'information
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
Cours 5: Récupération Nguyen Tuanloc.
SECURITE DU SYSTEME D’INFORMATION (SSI)
Transaction Ensemble d'opérations de modification de données annulées ou validées en bloc. Une Transaction vérifie les caractéristiques suivantes ( ACID.
Module 1 : Préparation de l'administration d'un serveur
Atomicité Transactions Atomiques Recouvrement à Base de Journal
Bases de Données Réparties
Le Travail Collaboratif ...
Algorithmique et Programmation
ASP.NET Par: Hugo St-Louis. C ARACTÉRISTIQUES A SP. NET Évolution, successeur plus flexible quASP (Active Server Pages). Pages web dynamiques permettant.
L’utilisation des bases de données
Services fournis par le SI et technologies associées
GESTION DE TRANSACTIONS
Les fichiers indexés (Les B-arbres)
1 Gestion des Transactions: Survol Chapitre Transactions Une transaction est la vue abstraite qua le SGBD dun programme dusager: cest une séquence.
1 Reprise Chapitre Objectifs Vol et forçage: rappel Le log organisation maintient et utilisation Autres structures de données Protocole WAL Points.
Gestion de Fichiers Tri Interne Efficace et Tri Externe.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Gestion des Transactions: Survol Chapitre 16.
IFT2821 Base de données Chapitre 8 Fonctions avancées
Module 8 : Maintenance des logiciels à l'aide des services SUS
Module 2 : Préparation de l'analyse des performances du serveur
Christine Bonnet SOURCES : « Samples » dOracle, « Oracle 8 » R. Chapuis PRO*C – C ++
Les transactions.
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Gestion des transactions SQLServer.
Systèmes de gestion de bases de données NFP 107 Les techniques du contrôle de concurrence Philippe Rigaux
Mise en oeuvre et exploitation
Module 8 : Surveillance des performances de SQL Server
Systèmes de gestion de bases de données NFP 107 Introduction à la concurrence d’accès Second fragment Philippe Rigaux
Les Composants de l’architecture Oracle
Plan Définitions et exemples Composants de cluster
La validation 2 phases Travail d'étude et de recherche, DESS TNI
Bases de données fédéréEs hétérogènes
Yonel GRUSSON1 Installation d'une imprimante sous Windows 200x Server.
Gestion des transactions
Programmation Système et Réseau
Ait Ahmed Madjid Cohen Lior Jaballah Seddik Leborgne Fabien
CSI 3525, Implémentation des sous-programmes, page 1 Implémentation des sous-programmes L’environnement dans les langages structurés en bloc La structure.
1  G. Gardarin GESTION DE TRANSACTIONS l 2. Journaux et reprise l 3. Scénarios de reprise l 4. Modèles étendus l 5. Cas des systèmes répartis.
Supervision à distance d’une ligne de conditionnement temps réel 16/12/20101INSA de LYON - H4201.
Cours n°4M1.ist-ie (S. Sidhom) UE 203 Promo. M1 IST-IE 2006/07 Conception d’un système d'information sur Internet Architecture trois-tiers : technologies.
Module 7 : Restauration de bases de données
1 TransMobi : Intergiciel pour la Gestion de Transactions Mobiles Patricia Serrano-Alvarado Claudia L. Roncancio Michel E. Adiba Laboratoire LSR-IMAG Grenoble.
Chapitre 17 Sauvegardes.
Najib OURADI-Hightech  « To the user, a distributed system should look exactly like a nondistributed system» (C. Date, Introduction to Database.
1 Démo SoftGrid. Le Séquenceur SoftGrid Utilisation d’un « packageur » SoftGrid Possibilité de “séquencer” en ligne de commande (CLI) Existence d’outils.
La concurrence Objectifs Les bases Le verrouillage à deux phases
Gestion des documents internes avec SQL Server 2005 Date de publication : janvier 2006.
Subversion.
Introduction Module 1.
Analyse, élaboration et exploitation d’une Base de Données
Cours 11 Entrepôts de données
1 Transactions Support construit à partir des cours de N. Anciaux, L. Bouganim, P. Pucheral, Z. Kehdad, G. Gardarin, P. Borlat (Oracle France) Benjamin.
Chapitre 12 Surveillance des ressources et des performances Module S41.
Formation SGA Module Budget Durée : 1 jour. Sommaire Formation Budget 1.Notions de base 2.Accéder au budget – Chemin d’accès au fichier Excelarator –
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 4 Support de cours rédigé par Bernard COFFIN Université.
Chapitre 10 Maintenance d'Active Directory
Transcription de la présentation:

1  G. Gardarin GESTION DE TRANSACTIONS l 1. Objectifs et bases l 2. Journaux et reprise l 3. Scénarios de reprise l 4. Modèles étendus l 5. Cas des systèmes répartis

2  G. Gardarin 1. Le transactionnel (OLTP) l Opérations typiques  Mises à jour ponctuelles de ligne par des écrans prédéfinis, souvent répétitive, sur les données les plus récentes l Exemple  Benchmark TPC-A et TPC-B : débit / crédit sur une base de données bancaire  TPC-A transactionnel et TPC-B avec traitement par lot  Mesure le nombre de transactions par seconde (tps) et le coût par tps

3  G. Gardarin La base TPC-A/ TPC-B Comptes Caissiers Agences Historique Taille pour 10 terminaux, avec règle d'échelle ( scaling rule)

4  G. Gardarin La transaction Débit - Crédit l Begin-Transaction  Update Account Set Balance = Balance + Delta// Montant Delta Where AccountId = Aid ;  Insert into History (Aid, Tid, Bid, Delta, TimeStamp)  Update Teller Set Balance = Balance + Delta Where TellerId = Tid ;  Update Branch Set Balance = Balance + Delta Where TellerId = Tid ; l End-Transaction. l 90 % doivent avoir un temps de réponse < 2 secondes l Chaque terminal génère une transaction toute les 10s  Performance = Nb transactions commises /Temps exécution moyen  Temps exécution moyen =Ellapse time

5  G. Gardarin Cohabitation avec le décisionnel l Les transactions doivent souvent cohabiter avec des requêtes décisionnelles, traitant un grand nombre de tuples en lecture l Exemple :  Moyenne des avoir des comptes par agence  SELECT B.BranchId, AVG(C.Balance) FROM Branch B, Account C WHERE B.BrachId = C.BranchId GROUP BY B.BranchId ;

6  G. Gardarin Les menaces l Problèmes de la gestion des accès concurrents  Pertes d'opérations.  Introduction d'incohérences.  Verrous mortels (deadlock). l Panne de transaction  Erreur en cours d'exécution du programme applicatif.  Nécessité de défaire les mises à jour effectuées. l Panne système  Reprise avec perte de la mémoire centrale.  Toutes les transactions en cours doivent être défaites. l Panne disque  Perte de données de la base, d'où sauvegardes!

7  G. Gardarin Propriétés des transactions l Transaction  Séquence d'opérations liées comportant des mises à jour ponctuelles d'une base de données devant vérifier les propriétés ACID l Atomicité  Unité de cohérence : toutes les mises à jour doivent être effectuées ou aucune. l Cohérence  La transaction doit faire passer la base de donnée d'un état cohérent à un autre. l Isolation  Les résultats d'une transaction ne sont visibles aux autres transactions qu'une fois la transaction validée. l Durabilité  Les modifications d'une transaction validée ne seront jamais perdue

8  G. Gardarin Opérations Commit et Abort l INTRODUCTION D'ACTIONS ATOMIQUES  Commit (fin avec succès) et Abort (fin avec échec).  Ces actions s'effectuent en fin de transaction. l COMMIT  Validation de la transaction.  Rend effectives toutes les mises à jour de la transaction. l ABORT  Annulation de la transaction.  Défait toutes les mises à jour de la transaction.

9  G. Gardarin - Provoque l'intégration réelle des mises à jour dans la base - Relâche les verrous - Provoque l'annulation des mises à jour - Relâche les verrous - Reprend la transaction Schéma d'une transaction simple l Fin avec succès ou échec l Begin_Transaction  update .....  Commit ou Abort

10  G. Gardarin Effet logique Mémoire de la transaction Update Commit Abort Bases de données Poubelle

11  G. Gardarin Interface applicative l API pour transaction simple  Trid Begin (context*)  Commit ()  Abort() l Possibilité de points de sauvegarde :  Savepoint Save()  Rollback (savepoint) // savepoint = 0 ==> Abort l Quelques interfaces supplémentaires  ChainWork (context*) //Commit + Begin  Trid Mytrid()  Status(Trid) // Active, Aborting, Committing, Aborted, Committed

12  G. Gardarin 2. Journaux et sauvegardes l Journal des images avant  Journal contenant les débuts de transactions, les valeurs d'enregistrement avant mises à jour, les fins de transactions (commit ou abort)  Il permet de défaire les mises à jour effectuées par une transaction l Journal des images après  Journal contenant les débuts de transactions, les valeurs d'enregistrement après mises à jour, les fins de transactions (commit ou abort)  Il permet de refaire les mises à jour effectuées par une transaction

13  G. Gardarin Page lue Base de données Page modifiée 1.Read 3.Update 4.Write 2.Log Journal des images avant l Utilisé pour défaire les mises à jour : Undo

14  G. Gardarin Journal des images après Page lue Base de données Page modifiée 1.Read 2.Update 4.Write 3.Log l Utilisé pour refaire les mises à jour : Redo

15  G. Gardarin Gestion du journal l Journal avant et après sont unifiés. l Écrits dans un tampon en mémoire et vidés sur disque en début de l'opération commit l Structure d'un enregistrement :  N° transaction (Trid)  Type enregistrement {début, update, insert, commit, abort}  TupleId  [Attribut modifié, Ancienne valeur, Nouvelle valeur]... l Problème de taille  On travaille avec N fichiers de taille fixe.  Possibilité d'utiliser un fichier haché sur Trid/Tid.

16  G. Gardarin Sauvegarde l Sauvegarde périodique de la base  toutes les heures, jours,...  Doit être effectuée en parallèle aux mises à jour l Un Point de Reprise (checkpoint) est écrit dans le journal pour le synchroniser par rapport à la sauvegarde  permet de situer les transactions effectuées après la sauvegarde l Pose d'un point de reprise :  écrire les tampons de journalisation (Log)  écrire les tampons de pages (DB)  écrire un enregistrement spécial "checkpoint" dans le journal.

17  G. Gardarin 3. Scénarios de Reprise l Les mises à jour peuvent être effectuées directement dans la base (en place)  la base est mise à jour immédiatement, ou "dès que possible" pendant que la transaction est active. l Les mises à jour peuvent être effectuées en mémoire et installées dans la base à la validation (commit)  le journal est écrit avant l'écriture des mises à jour.

18  G. Gardarin Stratégie do-undo l Mises à jour en place  l'objet est modifié dans la base l Utilisation des images avant  copie de l'objet avant mise à jour  utilisée pour défaire en cas de panne Mémoire cache Base Journal avant Update 1. LirePage 2. LogPage 3. WritePage Undo

19  G. Gardarin Ombre Mémoire cache Base Update 1. LirePage 3. LogPage 2. WritePage Redo Journal après Commit Stratégie do-redo l Mises à jour en différentiel  l'objet est modifié en page différentielle (non en place/journal) l Utilisation des images après  copie de l'objet en journal après mise à jour (do)  utilisée pour refaire en cas de panne (redo)

20  G. Gardarin Pages ombres Nom Fichier Adresse Table des Pages Table des Pages Ombres Page Ombre Nouvelles Pages Nouvelle Table des Pages COMMIT Page Ombre

21  G. Gardarin La gestion des tampons (buffers) l Bufférisation des journaux  on écrit le journal lorsqu'un tampon est plein  ou lorsqu'une transaction commet.. l Bufférisation des bases  on modifie la page en mémoire  le vidage sur disque s'effectue en différé (processus E/S) l Synchronisation journaux / base  le journal doit toujours être écrit avant modification de la base !

22  G. Gardarin Commits bloqués l Afin d'éviter 3 e/s pour 1:  Le système reporte l'enregistrement des journaux au commit.  Il force plusieurs transactions à commettre ensemble.  Il fait attendre les transactions au commit afin de bloquer un tampon d'écriture dans le journal. l Résultat  La technique des "commits" bloqués permet d'améliorer les performances lors des pointes sans faire attendre trop sensiblement les transactions.

23  G. Gardarin Reprise à froid l En cas de perte d'une partie de la base, on repart de la dernière sauvegarde. l Le système retrouve le checkpoint associé. l Il ré-applique toutes les transactions commises depuis ce point.  (for each committed Ti : redo (Ti))

24  G. Gardarin 5. Modèles étendus l Applications longues composées de plusieurs transactions coopérantes. l Seules les mises-à-jour sont journalisées. l Si nécessité de défaire une suite de transactions :  contexte ad-hoc dans une table temporaire,  nécessité d'exécuter des compensations.

25  G. Gardarin Points de Sauvegardes l Introduction de points de sauvegarde intermédiaires  (savepoint, commitpoint) l Begin_Trans  update  savepoint  update l Commit unité d'oeuvre Non perte du contexte

26  G. Gardarin Begin(T) Begin(t1) Commit(t1) Begin(t2) Abort(t2) Begin(t21) Commit(t21) Commit(T) Annule t2 et t21 Commet t1 Begin(t'1) Commit(t'1) Transactions Imbriquées l OBJECTIFS  Obtenir un mécanisme de reprise multi-niveaux  Permettre de reprendre des parties logiques de transactions  Faciliter l'exécution parallèle de sous-transactions l SCHEMA  Reprises et abandons partiels  Possibilité d'ordonner ou non les sous-transactions

27  G. Gardarin Sagas... T1T1 T2T2 T3T3 TnTn T1T1 T2T2 CT 2 CT 1 l Groupe de transactions avec transactions compensatrices. l En cas de panne du groupe, on exécute les compensations.

28  G. Gardarin Activités : propriétés souhaitées l Contexte persistant. l rollforward, rollback avec compensations. l Flot de contrôle dépendant des succès et échecs.  différencier les échecs systèmes des échecs de programmes l Monitoring d'activités:  état d'une activité, arrêt,...

29  G. Gardarin Langage de Contrôle d'Activités l Exemple: réservation de vacances  T1 : réservation avion alternative : location voiture  T2 : réservation hôtel  T3 : location voiture l Activité  Ensemble d'exécution de transactions avec alternative ou compensation l Langage de contrôle d'activités  Possibilité de transactions vitales (ex: réservation hôtel)  Langage du type : l If abort, If commit, Run alternative, Run compensation, …

30  G. Gardarin 6. Transactions réparties l OBJECTIF  Garantir que toutes les mises à jour d'une transaction sont exécutées sur tous les sites ou qu'aucune ne l'est. l EXEMPLE  Transfert de la somme X du compte A vers le compte B  DEBUT l site 1: A = A - X l site 2: B = B + X PANNE --> INCOHERENCE DONNEES  FIN l PROBLEME  Le contrôle est réparti : chaque site peut décider de valider ou d'annuler...

31  G. Gardarin Commit en 2 Phases l Principe  Division de l'opération COMMIT en deux phases :  Phase 1 l Préparation de l'écriture des résultats des mises à jour dans la BD. l Centralisation du contrôle.  Phase 2 l Écriture des résultats dans la BD. l Coordinateur de l'opération :  Le composant système d'un site qui applique le protocole l Participant :  Le composant système d'un autre site qui participe à l'exécution de la transaction

32  G. Gardarin Commit en 2 Phases : protocole C/S l 1. PREPARER  Le coordinateur demande aux autres sites s'ils sont prêts à commettre leurs mises à jour. l 2a. SUCCES : COMMETTRE  Tous les participants effectuent leur validation sur ordre du client. l 2b. ECHEC : ABORT  Si un participant n'est pas prêt, le coordinateur demande à tout les autres sites de défaire la transaction. l REMARQUE  Le protocole nécessite la journalisation des mises à jour préparées et des états des transactions dans un journal local à chaque site participant.

33  G. Gardarin Cas favorable SITE COORDINATEUR SITE PARTICIPANT 2 SITE PARTICIPANT 1 PREPARE OK COMMIT ACK

34  G. Gardarin Cas défavorable (1) PREPARE OK ACK KO ABORT ACK SITE COORDINATEUR SITE PARTICIPANT 2 SITE PARTICIPANT 1

35  G. Gardarin Cas défavorable (2) PREPARE OK ACK OK COMMIT STATUS COMMIT ACK SITE COORDINATEUR SITE PARTICIPANT 2 SITE PARTICIPANT 1

36  G. Gardarin l Validation à deux phases centralisée l Possibilité de diffuser la réponse au PREPARE  chaque site peut décider localement dans un réseau sans perte Commit distribué ou centralisé Prepare OK Commit Prepare OK

37  G. Gardarin Initia l Wait AbortCommit CCommit/Prepare VoteKO/GAbortVoteOK/GCommit Initial Ready AbortCommit Prepare/VoteOK GAbort/Ack GCommit/Ack COORDINATEUR PARTICIPANT Transitions d'états

38  G. Gardarin Transactions bloquées l Que faire en cas de doute ?  Demander l'état aux autres transactions : STATUS l conservation des états nécessaires. l message supplémentaire.  Forcer la transaction locale : ABORT l toute transaction annulée peut être ignorée. l cohérence garantie avec un réseau sans perte de message.  Forcer la transaction locale : COMMIT l toute transaction commise peut être ignorée. l non garantie de cohérence avec le coordinateur.

39  G. Gardarin Initial Wait Abort PréCommit Commit CCommit/Prepare VoteKO/GAbort VoteOK/PréCommit PréOK/G Com mit Initial Ready Abort PréCommit Commit Prepare/VoteOK GAbort/Ack PréCommit/PréOK GCommit/Ack Commit en 3 Phases l Inconvénient du commit à 2 phases  en cas de time-out en état “Prêt”, le participant est bloqué  le commit à 3 phases permet d'éviter les blocages l Messages du commit à 3 phases  Prepare,  Prepare to Commit,  Global-Commit,  Global-Abort.

40  G. Gardarin Coordinateur global Coordinateur local Point de validation (Noeud critique) Coordinateur local Protocole arborescent TP l TP est le standard proposé par l'ISO dans le cadre OSI l Protocole arborescent  Tout participant peut déclencher une sous-transaction.  Un responsable de la validation est choisi.  Un coordinateur est responsable de ses participants pour la phase 1. l collecte les PREPARE l demande la validation  Le point de validation est responsable de la phase 2 l envoie les COMMIT.

41  G. Gardarin 7. Moniteurs transactionnels l Support de transactions ACID l Accès continu aux données l Reprise rapide du système en cas de panne l Sécurité d'accès l Performances optimisées  Partage de connexions.  Réutilisation de transactions. l Partage de charge  Distribution de transactions. l Support de bases hétérogènes l Respect des normes et standards

42  G. Gardarin TM CRM AP RM TX XA Moniteur transactionnel : Modèle l Modèle DTP de l'X/OPEN  Programme d'application AP  Gestionnaire de transactions TM  Gestionnaire de communication CRM  Gestionnaire de ressources RM l Interfaces standards  TX = interface du TM  XA = interface du RM  intégration de TP l Types de RM  gestionnaire de fichiers  SGBD  périphérique

43  G. Gardarin Interface applicative TX l tx_open  ordonne au TM d'initialiser la communication avec tous les RM dont les librairies d'accès ont été liées à l'application. l tx_begin  ordonne au TM de demander aux RM de débuter une transaction. l tx_commit ou tx_rollback  ordonne au TM de coordonner soit la validation soit l'abandon de la transaction sur tous les RM impliqués. l tx_set_transaction_timeout  positionne un “ timeout ” sur les transactions l tx_info  permet d'obtenir des informations sur le statut de la transaction.

44  G. Gardarin Interface ressource XA l xa_open  ouvre un contexte pour l'application. l xa_start  débute une transaction. l xa_end  indique au RM qu'il n'y aura plus de requêtes pour le compte de la transaction courante. l xa_prepare  lance l'étape de préparation du commit à deux phases. l xa_commit  valide la transaction. l xa_rollback  abandonne la transaction.

45  G. Gardarin Principaux moniteurs (1) l Encina de Transarc  Issu de CMU (1992), racheté par IBM  Construit sur DCE (OSF) pour la portabilité et la sécurité  Transactions imbriquées  Conformité DTP : Xa, CPI-C, TxRPC l Open CICS de IBM  Construit sur Encina (et DCE)  Reprise de l'existant CICS (API et outils)  Conformité DTP : Xa, CPI-C

46  G. Gardarin Principaux moniteurs (2) l Tuxedo de USL  Éprouvé (depuis 1984), à la base de DTP  Supporte l'asynchronisme, les priorités et le routage dépendant des données  Conformité DTP: Xa, Tx, XaTMI, CPI-C, TxRPC l Top End de NCR  Produit stratégique d'AT&T  Respecte le modèle des composants DTP (AP, RM, TM, CRM)  Haute disponibilité  Conformité DTP: Xa, Xa+, Xap-Tp, Tx l Autres : UTM de Siemens, Unikix

47  G. Gardarin Le marché Gartner Group

48  G. Gardarin MTS de Microsoft l Microsoft Transaction Server l Intégré à DCOM l Partage de grappes de NT (cluster) l Les disques sont supposés partagés. l Allocation des ressources en pool aux requêtes :  pool de connexion aux ressources (SQL Server),  pool de transactions (support),  pool de machines. l Ne respecte pas les standards !

49  G. Gardarin 8. Conclusion l Des techniques complexes l Un problème bien maîtrisé dans les SGBDR l La concurrence complique la gestion de transactions l Les transactions longues restent problématiques l Enjeu essentiel pour le commerce électronique  validation fiable  reprise et copies  partage de connections  partage de charge