Stéphane Frenot - Département Télécommunication - SID - III - TPMon 337 Pour faire un contrat deux ou plus de parties négocient.

Slides:



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

GEF 435 Principes des systèmes d’exploitation
1 CNAM Vendredi 29 Novembre 2002 Bases de Données Avancées UV C Responsable : Mr Scholl PROTOCOLE A DEUX PHASES Meryem Guerrouani.
Serveur jeu Le serveur fait partie d'un logiciel de jeu en ligne multi joueur en architecture client serveur. Il répond à des demandes.
Module Systèmes dexploitation Chapitre 6 Communication Interprocessus Partie III École Normale Supérieure Tétouan Département Informatique
TRANSACTION Problèmes posés
Chapitre 3 Interblocages
1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre.
Exercice Notre programme s'exécute en 10 secondes sur A, qui dispose d'une horloge à 100Mhz. Nous tentons d'aider un concepteur à construire une machine.
Les bases de données temps-réel



Stéphane Frenot - Département Télécommunication - SID - III - Concl 382 Technologies de base Les plomberies –Le transport.
Stéphane Frenot - Département Télécommunication - SID - II - Comp 312 Avantages de l'approche distribuée Economie Performance.
GESTION DE TRANSACTIONS
Système de gestion de bases de données. Modélisation des traitements
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.
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.
Amélioration de la sécurité des données à l'aide de SQL Server 2005
Serveurs Partagés Oracle
Atomicité Transactions Atomiques Recouvrement à Base de Journal
Systèmes de Gestion de Bases de Données (Relationnelles)
1 Bases de Données Distribuées Chapitre 22, Sections 22.6–22.14.
Bases de Données Réparties
Gestion des bases de données
8.1 URDL22005 Systèmes dexploitation Interblocages Modèle Système Caractérisation dinterblocage Méthodes pour Gérer les Interblocages Prévention des Interblocages.
Module 51 Module 5 - Synchronisation de Processus (ou threads, ou fils ou tâches) Module 5 - Synchronisation de Processus (ou threads, ou fils ou tâches)
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Contrôle de lAccès Simultané Chapitre 17.
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.
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
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.
Interoperabilité des SI - Urbanisation
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
La réplication dans les réseaux mobiles ad hoc
Module 8 : Surveillance des performances de SQL Server
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
Les Composants de l’architecture Oracle
Surveiller et résoudre le conflit de verrouillage
Gestion des transactions
La programmation système
Ait Ahmed Madjid Cohen Lior Jaballah Seddik Leborgne Fabien
Initiation à la conception des systèmes d'informations
Module 13 : Implémentation de déclencheurs. Vue d'ensemble Présentation des déclencheurs Définition de déclencheurs Exemples de déclencheurs Performances.
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.
21/04/2015© Robert Godin. Tous droits réservés.1 6Gestion des contraintes d’intégrité en SQL n Contrainte d'intégrité statique – respectée pour chacun.
3 Copyright © Oracle Corporation, Tous droits réservés. Créer des fonctions.
Module 7 : Restauration de bases de données
Les bases du protocole Modbus
Architecture Client/Serveur
Le Langage de Manipulation de Données LMD. 2 Les ordres SQL de manipulation INSERT –Insertion (ajout) de ligne(s) dans une table –Utiliser SQL*LOAD pour.
La concurrence Objectifs Les bases Le verrouillage à deux phases
Séance /10/2004 SGBD - Approches & Principes.
Systèmes d’exploitation Processus conclusion Modèle conceptuel de processus Pour masquer les effets des interruptions, les SE fournissent un modèle conceptuel.
Gestion des documents internes avec SQL Server 2005 Date de publication : janvier 2006.
Subversion.
ISO 9001:2000 Interprétation Article 7 Réalisation du produit
Analyse, élaboration et exploitation d’une Base 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.
Transcription de la présentation:

Stéphane Frenot - Département Télécommunication - SID - III - TPMon 337 Pour faire un contrat deux ou plus de parties négocient et parviennent à un accord. Laccord est scellé en co-signant un document ou par un autre acte. Si les parties se soupçonnent ou veulent sassurer, ils rénumèrent un intermédiaire pour coordonner la validation de la transaction (escrow officer) –Exécution durable de tout le contrat Primitives délimitant une transaction –Début_transaction –Fin_transaction Primitives conditionnant la terminaison dune transaction –Valider_transaction (commit)Etat final –Abandonner une transaction (rollback)Etat initial Structure dune transaction

Stéphane Frenot - Département Télécommunication - SID - III - TPMon 338 Exemple TABLESVOL(VNO, DATE, A_DEP, A_ARR, SIEGES_VENDUS,CAPACITE) CLIENT(CNOM, ADRESSE, SOLDE_COMPTE) VOL_CLIENT(VNO, DATE, CNOM, SPECIAL) Début_transaction. Réservation entrées (vol_no, date, nom_client); EXEC SQL SELECT SIEGES_VENDUS, CAPACITE INTO temp1,temp2 FROM VOL WHERE VNO = vol_no AND DATE = date; si temp1 = temp2 alors début afficher ( plus de places ); Abandonner_transaction fin

Stéphane Frenot - Département Télécommunication - SID - III - TPMon 339 Exemple (suite) sinon début EXEQ SQL UPDATE VOL SET SIEGES_VENDUS = SIEGES_VENDUS+1 WHERE VNO = vol_no AND DATE = date; EXEC SQL INSERT INTO VOL_CLIENT(VNO, DATE, CNOM, SPECIAL) VALUES(vol_no, date, nom_client, null); Valider_transaction; afficher( réservation effectuée ) fin fin_si Fin_transaction.

Stéphane Frenot - Département Télécommunication - SID - III - TPMon 340 Propriétés dune transaction ATOMICITE les opérations dune transaction seront toutes entièrement exécutées, en cas de problème avant terminaison, les opérations exécutées seront annulées. COHERENCE la transaction est un programme correct qui fait passer la base de données dun état cohérent vers un autre état cohérent. ISOLATION les résultats intermédiaires dune transaction (avant terminaison) ne seront pas accessibles par les autres transactions DURABILITE les résultats dune transaction sont permanents après terminaison et ne doivent être altérés par aucun type de panne

Stéphane Frenot - Département Télécommunication - SID - III - TPMon 341 Gestionnaires de Transactions Gérer les transactions de leur point dorigine (terminal ou client), à travers un ou plusieurs serveurs, jusquau retour au point dorigine. Garantir la robustesse des exécutions dans les systèmes centralisés ou distribués. Gérer les reprises, la cohérence et la concurrence daccès en relation avec les gestionnaires de ressources Réguler et simplifier le travail du système dexploitation Modèle générique Application Gestionnaire de ressources Gestionnaire de transactions Gestionnaire de communications

Stéphane Frenot - Département Télécommunication - SID - III - TPMon 342 Exemple: CICS/MVS Terminaux passifs Gestion de messages(CM) recevoir les entrées de la transaction, construire le message normalisé, envoyer les sorties de la transaction indépendance des terminaux, gestion décrans Contrôle des requêtes (TM) déterminer le type de message, lorienter vers lapplication, piloter lexécution de bout-en-bout gestion de la validation, routage des messages, équilibrage de charges Serveur dapplications (AP) exécuter lapplication correspondant au message gestion de processus partagés, communication inter-processus, direct ou par files dattente SGBD DB2 (RM)

Stéphane Frenot - Département Télécommunication - SID - III - TPMon 343 Gestionnaire de transactions: processus partagés Sans gestionnaire de transactions Avec gestionnaire de transactions 1000 connexions + de 1000 processus + de 500 Mo RAM + de fichiers ouverts 1000 connexions + de 1000 processus + de 500 Mo RAM + de fichiers ouverts 50 connexions partagés + de 50 processus + de 25 Mo RAM 500 fichiers ouverts 50 connexions partagés + de 50 processus + de 25 Mo RAM 500 fichiers ouverts Gestionnaire de transactions Gestionnaire de transactions Système dexploitation sur les genoux 1000 Clients 1000 Clients Système dexploitation va mieux

Stéphane Frenot - Département Télécommunication - SID - III - TPMon 344 Gestion de transaction et gestion de données Gestionnaire de transactions Gestionnaire de transactions Gestionnaire de ressources Ordonnanceur Gestion des reprises Gestion de cache BD

Stéphane Frenot - Département Télécommunication - SID - III - TPMon 345 Modèle DTP (Distributed Transaction Processing) de X/Open (1993) Application Gestionnaire de transactions Gestionnaire de ressources Gestionnaire de communications RM API TX XATMI TxRPC CPI-C XA XA+

Stéphane Frenot - Département Télécommunication - SID - III - TPMon 346 Modèle DTP (Distributed Transaction Processing) de X/Open (1993) RM API: interface application - gestionnaire de ressources (SQL, ISAM,...); TX:interface application - gestionnaire de transactions; verbes tx_begin, tx_commit, tx_rollback, tx_set_transaction_controls, tx_info XA:interface gestionnaire de transactions - gestionnaire de ressources; verbes xa_start, xa_prepare, xa_commit, xa_rollback, xa_end; réponses ax_* XA+:interface gestionnaire de transactions - gestionnaire de communications; sur-ensemblede XA permettant un contrôle global de transactions distribuées XATMI: interface application - gest. de comm.; origine Tuxedo, orientée message TxRPC: interface application - gest. de comm.; origine OSF-DCE; orientée appel de procédure CPI-C: interface application - gest. de comm.; origine IBM LU6.2; orientée message

Stéphane Frenot - Département Télécommunication - SID - III - TPMon 347 Principaux gestionnaires de transactions Produit EditeurPlateformesSGBDOutils TUXEDO Bea Intel, Risc,... XA (Oracle)Cobol, C++ non-XAL4G SGBD (pas disolation,AGL Windows ni intégrité)(Ingres, NSDK,...) ENCINA TransarcHP, Hitachi,XA et non-XACobol, C++ NEC, SNIItran Toolkit Stratus, Sun,IBM MTS MicrosoftIntelXA OTM OrbixIntelXA CICS/MVS IBMIBM ES/9000DB2Cobol IMS/DC IBMIBM ES/9000DL/1Cobol TDS (TP8) BullDPSx000OracleCobol

Stéphane Frenot - Département Télécommunication - SID - III - TPMon 348 Pourquoi un gestionnaire de transactions ? Assurer une fiabilité dans lexécution dapplications distribuées Augmenter la disponibilité par une meilleure maîtrise des ressources Equilibrer dynamiquement les charges de serveurs multiples ou dun serveur SMP Intégration et pilotage des communications: par messages, appel de procédures ou files dattente Evolutivité matricielle, par coopération avec dautres gestionnaires (tm ou rm) hétérogènes Réduction de coûts machine par loptimisation de lutilisation du système dexploitation

Stéphane Frenot - Département Télécommunication - SID - III - TPMon 349 Gestion de la Concurrence Une transaction atomique et cohérente ne met pas en cause lintégrité de la base de données. Lorsque plusieurs transactions sont exécutées en concurrence, leurs opérations peuvent interférer de sorte à aboutir à de résultats incorrects. Exemples: cc compte courant ce compte dépargne mise à jour perduelecture incorrecte T1T2T3T4 L(cc) L(cc) L(cc) L(cc) cc=cc+500cc=cc+1000cc=cc-500 L(ce) E(cc) E(cc) E(cc)imprimer(cc,ce) validervalider L(ce)valider ce=ce+500 E(ce) valider

Stéphane Frenot - Département Télécommunication - SID - III - TPMon 350 Exécutions en série - Exécutions sérialisables Lexécution en série des transactions consiste à ce que, pour tout couple de transactions, toutes les opérations de lune se soient exécutées avant toute opération de lautre (performances) Une exécution est sérialisable si elle produit les mêmes résultats et les mêmes effets sur la base que lexécution en série des mêmes transactions. La sérialisabilité dune exécution concurrente de transactions est le critère habituel de correction des méthodes de contrôle de concurrence.

Stéphane Frenot - Département Télécommunication - SID - III - TPMon 351 Exécutions en série - Exécutions sérialisables Exécution sérieExécution sérialisableExécution non-sérialisable T1T2T1T2T1T2 L(y)L(y)L(x) y=y-200L(x)x=x-100 E(y)y=y-200E(x) L(z)x=x-100L(y) z=z+200E(y)y=y-200 E(z)E(x)L(y) L(x)L(z)E(y) x=x-100L(y)y=y+100 E(x)z=z+200E(y) L(y)y=y+100L(z) y=y+100E(z)z=z+200 E(y)E(y)E(z)

Stéphane Frenot - Département Télécommunication - SID - III - TPMon 352 Gestion de la concurrence et bases de données réparties Bases de données réparties Si une base nest pas dupliquée et si chaque ordonnancement local est sérialisable, alors leur union (ordonnancement global) est aussi sérialisable Bases de données dupliquées (copies multiples) Les ordonnancements capables de maintenir la cohérence des bases de données dupliquées sont appelées one-copy-serialisable, et respectent les conditions suivantes: - chaque ordonnancement local est sérialisable. - deux opérations conflictuelles doivent respecter le même ordre relatif dans les ordonnancements locaux où ils apparaissent.

Stéphane Frenot - Département Télécommunication - SID - III - TPMon 353 Méthodes de gestion de concurrence Approche pessimiste il est considéré que plusieurs transactions seront en conflit, la synchronisation des exécutions concurrentes se fera au début des transactions Utilisée dans le cas de beaucoup de transactions partageant peu de données: systèmes dinformation opérationnels Approche optimiste il est considéré que peu de transactions seront en conflit, la synchronisation est reportée à la fin des transactions Utilisée dans le cas de peu de transactions partageant beaucoup de données: systèmes daide à la conception

Stéphane Frenot - Département Télécommunication - SID - III - TPMon 354 Verrouillage (Locking) La synchronisation des transactions est obtenue en appliquant des verrous sur un granule de la base. La taille de ces granules, appelée granularité du verrouillage, a un impact certain sur les performances. Certains systèmes mettent en œuvre des granularités différentes à la demande. Les verrous demandés par les transactions sont gérés dans des tables de verrouillage. Compatibilité des verrous Verrou actuel pas de verroupartagéexclusif Verrou demandé pas de verrououiouioui partagéouiouinon exclusifouinonnon

Stéphane Frenot - Département Télécommunication - SID - III - TPMon 355 Verrouillage (Locking) Verrouillage à deux phases –phase de croissance: obtenir des verrous –phase de rétrécissement: libérer les verrous nombre de verrous débutpoint de verrouillage fin

Stéphane Frenot - Département Télécommunication - SID - III - TPMon 356 Estampillage (Timestamp ordering) Lestampillage consiste à ordonner les transactions réparties lors du lancement de leur exécution et à imposer que les opérations daccès aux données respectent lordre préétabli. Pour ce faire, un numéro dordre unique appelé estampille est affecté chaque transaction et à chaque granule accédé. Dans un système réparti lunicité de lestampille est obtenu par la synchronisation des horloges (Time Service). Estampillage basique: une transaction Ti accède au granule dont lestampille est j. Si j i alors laccès par Ti respecte lordre darrivée des transactions et peut être exécutée. Sinon Ti sera abandonnée et reprise avec une nouvelle estampille Estampillage conservatif: lordonnanceur retardera artificiellement les opérations pour éviter les abandons Estampillage multi-versions: les mises-à-jour ne modifient pas la base mais une copie de celle-ci

Stéphane Frenot - Département Télécommunication - SID - III - TPMon 357 Gestion dinter blocages Tout mécanisme dallocation exclusive de ressources peut aboutir à un inter blocage (deadlock) Un inter blocage survient quand deux (ou plus) transactions se mettent en attente sur des ressources verrouillées de manière croisée. Un inter blocage est un phénomène permanent; il ne disparaîtra que par une intervention externe: utilisateur, opérateur système, système dexploitation, SGBD,... T1T2 lire(x)lire(y) lire(y)lire(x) Un outil danalyse des inter blocages est le graphe dattente GA, qui est un graphe orienté dont les arcs représentent une relation dattente entre transactions. Un arc Ti Tj indique que Ti attend que Tj libère un verrou. Les circuits du GA indiquent des inter blocages TiTi TjTj

Stéphane Frenot - Département Télécommunication - SID - III - TPMon 358 Gestion dinter blocages: méthodes PREVENIR Pour quun inter blocage soit impossible il faut éviter de mettre en exécution les transactions qui pourraient rentrer en conflit, avec une pré-déclaration des données utilisées. EVITER Ordonner les ressources et demander que les transactions respectent lordre daccès. Se servir des estampilles pour affecter des priorités. DETECTER ET RESOUDRE La détection se fait par lidentification des cycles dans les graphes dattente ou par des temporisations. La résolution se fait par labandon dune ou plusieurs transactions victimes. Critères de choix: - la quantité de travail déjà effectué par les transactions - le coût de labandon en termes de mises-à-jour à défaire - la quantité de travail restant à effectuer - le nombre de cycles concernés par chaque transaction

Stéphane Frenot - Département Télécommunication - SID - III - TPMon 359 Intégrité et types de pannes Pannes dans un système centralisé Pannes sans perte dinformation Pannes avec perte de mémoire vive Pannes avec perte de mémoire secondaire Pannes avec perte de mémoire stable Pannes dans un système réparti Pannes de site Pannes de site et messages perdus Pannes de site, messages perdus et réseau partitionné P1P2

Stéphane Frenot - Département Télécommunication - SID - III - TPMon 360 Validation sur site centralisé La technique de prévention de pannes est la journalisation (log) –Journal des images avant modification (Défaire - Undo) –Journal des images après modification (Refaire - Redo) Technique associée: log write ahead (pré-écriture du fichier journal) Structure du fichier journal: –identificateur de la transaction –identificateur de lenregistrement –le type daction (insertion, effacement, modification) –lancienne valeur de lenregistrement –la nouvelle valeur de lenregistrement –pointeur vers lenregistrement précédent concernant la même transaction –les primitives transactionnelles: Début_tr., Valider_tr., Abandonner_tr. –Point_de_contrôle contenant les identificateurs des transactions actives –en réparti- Prépare, Prêt, Abandonner_global, Valider_global, Complet

Stéphane Frenot - Département Télécommunication - SID - III - TPMon 361 Validation sur site centralisé Procédure de reprise sur site centralisé –Pannes sans perte dinformation, avec perte de mémoire vive Déterminer toutes les transactions non validées qui doivent être défaites; celles pour qui il y a un Début_tr mais pas de Valider_tr ou Abandonner_tr Déterminer toutes les transaction pouvant avoir besoin dêtre refaites; celles pour qui il y a un Valider_tr Défaire les transactions identifiées en et refaire les transactions identifiées en –Pannes avec perte de mémoire secondaire, avec perte de mémoire stable (fichier journal existe) Reconstitution de la base en partant de la dernière sauvegarde et en appliquant dessus toutes les images après modification

Stéphane Frenot - Département Télécommunication - SID - III - TPMon 362 Transactions réparties Une transaction répartie est une transaction ACID dont les parties sexécutent sur des systèmes différents. Exemple: virement bancaire Sur chaque site il est possible de mettre en oeuvre la procédure centralisée; le problème se situe au niveau de la décision commune entre les systèmes: protocole de communication. S1 débit S2 crédit S3 comptabilité

Stéphane Frenot - Département Télécommunication - SID - III - TPMon 363 Protocole de validation répartie Protocole de validation à deux phases (Two phase commit) Implémenté dans OSI-TP et SNA-LU6.2 Structure de communication hiérarchique Coordinateur Participant

Stéphane Frenot - Département Télécommunication - SID - III - TPMon 364 Protocole de validation à deux phases Coordinateur:Ecrire PREPARE dans journal Envoyer message PREPARE aux participants et activer une temporisation Participant:Attendre message PREPARE Si le participant veut valider alors début Ecrire PRET dans journal Envoyer PRET au coordinateur fin sinon début Ecrire ABANDONNER dans journal Envoyer ABANDONNER au coordinateur fin Coordinateur:Attendre les réponses (PRET ou ABANDONNER) des participants ou la temporisation Si chute de temporisation ou au moins une réponse ABANDONNER alors début Ecrire ABANDONNER_GLOBAL dans journal Envoyer ABANDONNER à tous les participants fin

Stéphane Frenot - Département Télécommunication - SID - III - TPMon 365 Protocole de validation à deux phases sinon début Ecrire VALIDER_GLOBAL dans journal Envoyer VALIDER aux participants fin Participant:Attendre message de commande Ecrire ABANDONNER ou VALIDER dans journal Envoyer ACCUSE_DE_RECEPTION au coordinateur Exécuter la commande Coordinateur:Attendre ACCUSE_DE_RECEPTION des participant Ecrire COMPLET dans journal

Stéphane Frenot - Département Télécommunication - SID - III - TPMon 366 Protocole de validation à deux phases : Résistance aux pannes PANNES DE SITE Un participant échoue avant décrire PRET dans son journal Un participant échoue après lécriture de PRET dans son journal Le coordinateur tombe en panne après avoir écrit PREPARE mais avant lécriture de VALIDER_GLOBAL ou ABANDONNER_GLOBAL Le coordinateur tombe en panne après avoir écrit VALIDER_GLOBAL ou ABANDONNER_GLOBAL, mais avant lécriture de COMPLET Le coordinateur tombe en panne après lécriture de COMPLET MESSAGES PERDUS Un message de réponse (PRET ou ABANDONNER) dun participant est perdu Un message PREPARE est perdu Un message de commande (VALIDER ou ABANDONNER) est perdu RESEAU PARTITIONNE