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

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

Embed Size (px)

Citation preview

Page 1: 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

1 G. Gardarin

GESTION DE TRANSACTIONSGESTION DE TRANSACTIONS

1. Objectifs et bases

2. Journaux et reprise

3. Scénarios de reprise

4. Modèles étendus

5. Cas des systèmes répartis

Page 2: 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

2 G. Gardarin

1. Le transactionnel (OLTP)1. Le transactionnel (OLTP)

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

Exemple Benchmark TPC-A et TPC-B : débit / crédit sur unebase de

données bancaire TPC-A transactionnel et TPC-B avec traitement par lot Mesure le nombre de trasactions par seconde (tps) et le coût

par tps

Page 3: 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

3 G. Gardarin

La base TPC-A/BLa base TPC-A/B

Comptes

Caissiers

Agences

Historique

1

100

100000

Taille pour 10 terminaux, avec règle d'échelle ( scaling rule)

Page 4: 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

4 G. Gardarin

La transaction Débit - CréditLa transaction Débit - Crédit

Begin-Transaction Update Account Set Balance =

Balance + 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 ;

End-Transaction.

90 % doivent avoir un temps de réponse < 2 secondes

Chaque terminal génère une transaction toute les 10s

Performance = Nb transactions commises / Ellapse time

Page 5: 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

5 G. Gardarin

Cohabitation avec le décisionnelCohabitation avec le décisionnel

Les transactions doivent souvent cohabiter avec des requêtes décisionnelles, traitant un grand nombre de tuples en lecture

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 ;

Page 6: 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

6 G. Gardarin

Les menacesLes menaces

Problèmes de concurrence pertes d ’opérations introduction d ’incohérences verrous mortels (deadlock)

Panne de transaction erreur en cours d'exécution du programme applicatif nécessité de défaire les mises à jour effectuées

Panne système reprise avec perte de la mémoire centrale toutes les transactions en cours doivent être défaites

Panne disque perte de données de la base

Page 7: 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

7 G. Gardarin

Propriétés des transactionsPropriétés des transactions

Atomicité Unité de cohérence : toutes les mises à jour doivent être

effectuées ou aucune.

Cohérence La transaction doit faire passer la base de donnée d'un état

cohérent à un autre.

Isolation Les résultats d'une transaction ne sont visibles aux autres

transactions qu'une fois la transaction validée.

Durabilité Les modifications d ’une transaction validée ne seront

jamais perdue

Page 8: 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

8 G. Gardarin

Commit et AbortCommit et Abort

INTRODUCTION D’ACTIONS ATOMIQUES Commit (fin avec succes) et Abort (fin avec echec) Ces actions s'effectuent en fin de transaction

COMMIT Validation de la transaction Rend effectives toutes les mises à jour de la transaction

ABORT Annulation de la transaction Défait toutes les mises à jour de la transaction

Page 9: 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

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 de transaction simpleSchéma de transaction simple

Fin avec succès ou échec

Begin_Transaction update update ..... Commit ou Abort

Page 10: 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

10 G. Gardarin

Effet logiqueEffet logique

Mémoire de la transaction

Update

Update

CommitAbort

Bases de données Poubelle

Page 11: 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

11 G. Gardarin

Interface applicativeInterface applicative

API pour transaction simple Trid Begin (context*) Commit () Abort()

Possibilité de points de sauvegarde : Savepoint Save() Rollback (savepoint) // savepoint = 0 ==> Abort

Quelques interfaces supplémentaires ChainWork (context*) //Commit + Begin Trid Mytrid() Status(Trid) // Active, Aborting, Committing, Aborted,

Committed

Page 12: 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

12 G. Gardarin

2. Journaux et Sauvegarde2. Journaux et Sauvegarde

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

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

Page 13: 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

13 G. Gardarin

Page lue

Base de données

Page modifiée

1.Read

3.Update

4.Write

2.Log

Journal des images avantJournal des images avant

Utilisé pour défaire les mises à jour : Undo

Page 14: 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

14 G. Gardarin

Journal des images aprèsJournal des images après

Page lue

Base de données

Page modifiée

1.Read

2.Update

4.Write

3.Log

Utilisé pour refaire les mises à jour : Redo

Page 15: 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

15 G. Gardarin

Gestion du journalGestion du journal

Journal avant et après sont unifiés Écrits dans un tampon en mémoire et vider sur

disque en début de commit Structure d'un enregistrement :

N° transaction (Trid) Type enregistrement {début, update, insert, commit, abort} TupleId [Attribut modifié, Ancienne valeur, Nouvelle valeur] ...

Problème de taille on tourne sur N fichiers de taille fixe possibilité d'utiliser un fichier haché sur Trid/Tid

Page 16: 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

16 G. Gardarin

SauvegardeSauvegarde

Sauvegarde périodique de la base toutes les heures, jours, ... Doit être effectuée en parallèle aux mises à jour

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

Pose d'un point de reprise : écrire les buffers de journalisation (Log) écrire les buffers de pages (DB) écrire un record spécial "checkpoint" dans le journal

Page 17: 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

17 G. Gardarin

3. Scénarios de Reprise3. Scénarios de Reprise

Les mises à jour peuvent être effectuées directement dans la base (en place) la base est mise à jour immédiatement, ou au moins dès que

possible pendant que la transaction est active

Les mises à jour peuvent être effectuées en mémoire et installées dans la base à la validation (commit) le journal est écrit avant d'écrire les mises à jour

Page 18: 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

18 G. Gardarin

Stratégie do-undoStratégie do-undo

Mises à jour en place l'objet est modifié dans la base

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

Page 19: 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

19 G. Gardarin

Ombre

Mémoire cache

Base

Update

1. LirePage

3. LogPage

2. WritePage

Redo

Journal après

Commit

Stratégie do-redoStratégie do-redo

Mises à jour en différentiel l'objet est modifié en page différentielle (non en

place/journal)

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)

Page 20: 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

20 G. Gardarin

Pages ombresPages ombres

Nom

Fichier

Adresse

Table des

Pages

Table des Pages Ombres

Page Ombre

Nouvelles Pages

Nouvelle Table des Pages

COMMIT

Page Ombre

Page 21: 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

21 G. Gardarin

La gestion des buffersLa gestion des buffers

Bufferisation des journaux on écrit le journal lorsqu'un buffer est plein ou lorsqu'une transaction commet

Bufferisation des bases on modifie la page en mémoire le vidage sur disque s'effectue en différé (processus E/S)

Synchronisation journaux / base le journal doit toujours être écrit avant modification de la

base !

Page 22: 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

22 G. Gardarin

Commits bloquésCommits bloqués

AFIN D'EVITER 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

buffer d'écriture dans le journal

RESULTAT La technique des "commits" bloques permet d'améliorer les

performances lors des pointes sans faire attendre trop sensiblement les transactions

Page 23: 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

23 G. Gardarin

Reprise à froidReprise à froid

En cas de perte d'une partie de la base, on repart de la dernière sauvegarde

Le système retrouve le checkpoint associé Il ré-applique toutes les transactions commises

depuis ce point (for each committed Ti : redo (Ti))

Page 24: 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

24 G. Gardarin

5. Modèles étendus5. Modèles étendus

Applications longues composées de plusieurs transactions coopérantes

Seules les mises-à-jour sont journalisées

Si nécessité de défaire une suite de transactions : contexte ad-hoc dans une table temporaire nécessité d'exécuter des compensations

Page 25: 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

25 G. Gardarin

Points de SauvegardesPoints de Sauvegardes

Introduction de points de sauvegarde intermédiaires (savepoint, commitpoint)

Begin_Trans update update savepoint update update

Commit

unité d'oeuvre

unité d'oeuvre

Non perte du contexte

Page 26: 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

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éesTransactions Imbriquées

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

SCHEMA Reprises et abandons partiels Possibilité d'ordonner ou non les

sous-transactions

Page 27: 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

27 G. Gardarin

SagasSagas

...T1 T2 T3 Tn

T1 T2 CT2 CT1

Groupe de transactions avec transactions compensatrices

En cas de panne du groupe, on exécute les compensations

Page 28: 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

28 G. Gardarin

Activités : Propriétés SouhaitéesActivités : Propriétés Souhaitées

contexte persistant

rollforward, rollback avec compensations

flot de contrôle dépendant des succès et échecs différencier les échecs systèmes des échecs de programmes

monitoring d'activités: état d'une activité, arrêt, ...

Page 29: 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

29 G. Gardarin

Langage de Contrôle d'ActivitésLangage de Contrôle d'Activités

Exemple: réservation de vacances T1 : réservation avion alternative : location voiture T2 : réservation hôtel T3 : location voiture

Activité Ensemble d'exécution de transactions avec alternative ou

compensation

Langage de contrôle d'activités Possibilité de transactions vitales (ex: réservation hôtel) Langage du type :

If abort, If commit, Run alternative, Run compensation, …

Page 30: 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

30 G. Gardarin

6. Transactions réparties6. Transactions réparties

OBJECTIF Garantir que toutes les mises à jour d'une transaction sont

exécutées sur tous les sites ou qu'aucune ne l'est.

EXEMPLE Transfert de la somme X du compte A vers le compte B DEBUT

site 1: A = A - X site 2: B = B + X PANNE --> INCOHERENCE DONNEES

FIN

PROBLEME Le contrôle est réparti : chaque site peut décider de valider

ou d’annuler ...

Page 31: 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

31 G. Gardarin

Commit en 2 PhasesCommit en 2 Phases

Principe Diviser la commande COMMIT en deux phases Phase 1 :

Préparer à écrire les résultats des mises à jour dans la BD Centralisation du contrôle

Phase 2 : Écrire ces résultats dans la BD

Coordinateur : Le composant système d'un site qui applique le protocole

Participant : Le composant système d'un autre site qui participe dans

l'exécution de la transaction

Page 32: 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

32 G. Gardarin

Protocole C/SProtocole C/S

1. PREPARER Le coordinateur demande aux autres sites s’ils sont prêts à

commettre leurs mises à jour.

2a. SUCCES : COMMETTRE Tous les participants effectuent leur validation sur ordre du

client.

2b. ECHEC : ABORT Si un participant n’est pas prêt, le coordinateur demande à tout

les autres sites de défaire la transaction.

REMARQUE Le protocole nécessite la journalisation des mises à jour

préparées et des états des transactions dans un journal local à chaque participant.

Page 33: 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

33 G. Gardarin

Cas FavorableCas Favorable

SITE COORDINATEUR

SITE PARTICIPANT 2SITE PARTICIPANT 1

PREPARE PREPARE

OK OK

COMMIT COMMIT

ACK ACK

Page 34: 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

34 G. Gardarin

Cas Défavorable (1)Cas Défavorable (1)

PREPARE PREPARE

OK

ACK

KO

ABORT ABORT

ACK

SITE COORDINATEUR

SITE PARTICIPANT 2SITE PARTICIPANT 1

Page 35: 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

35 G. Gardarin

Cas Défavorable (2)Cas Défavorable (2)

PREPARE PREPARE

OK

ACK

OK

COMMIT COMMIT

STATUS

COMMIT

ACK

SITE COORDINATEUR

SITE PARTICIPANT 2SITE PARTICIPANT 1

Page 36: 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

36 G. Gardarin

Prepare OK OKCommit

PrepareOK

Commit distribué ou centraliséCommit distribué ou centralisé Validation à deux phases centralisée

Possibilité de diffuser la réponse au PREPARE chaque site peut décider localement dans un réseau sans perte

Page 37: 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

37 G. Gardarin

Initial

Wait

Abort Commit

CCommit/Prepare

VoteKO/GAbort VoteOK/GCommit

Initial

Ready

Abort Commit

Prepare/VoteOK

GAbort/Ack GCommit/Ack

COORDINATEUR

PARTICIPANT

Transitions d'EtatsTransitions d'Etats

Page 38: 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

38 G. Gardarin

Transactions bloquéesTransactions bloquées

Que faire en cas de doute ? Demander l’état aux autres transactions : STATUS

conservation des états nécessaires message supplémentaire

Forcer la transaction locale : ABORT toute transaction annulée peut être ignorée cohérence garantie avec un réseau sans perte de message

Forcer la transaction locale : COMMIT toute transaction commise peut être ignorée non garantie de cohérence avec le coordinateur

Page 39: 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

39 G. Gardarin

Initial

Wait

Abort PréCommit

Commit

CCommit/Prepare

VoteKO/GAbort VoteOK/PréCommit

PréOK/GCommit

Initial

Ready

Abort PréCommit

Commit

Prepare/VoteOK

GAbort/AckPréCommit/PréOK

GCommit/Ack

Commit en 3 PhasesCommit en 3 Phases

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

Messages du commit à 3 phases Prepare, Prepare to Commit, Global-Commit, Global-Abort.

Page 40: 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

40 G. Gardarin

Coordinateur global

Coordinateur localPoint de validation(Noeud critique)

Coordinateur local

Protocole arborescent TP Protocole arborescent TP

TP est le standard proposé par l’ISO dans le cadre OSI

Protocole arborescent Tout participant peut déclancher une

sous-transaction Un responsable de la validation est choisi Un coordinateur est responsable de ses

participants pour la phase 1 collecte les PREPARE demande la validation

Le point de validation est responsable de la phase 2

envoie les COMMIT

Page 41: 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

41 G. Gardarin

7. Moniteurs transactionnels7. Moniteurs transactionnels

Support de transactions ACID Accès continu aux données Reprise rapide du système en cas de panne Sécurité d'accès Performances optimisées

Partage de connexions Réutilisation de transactions

Partage de charge Distribution de transactions

Support de bases hétérogènes Respect des normes et standards

Page 42: 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

42 G. Gardarin

TM

TM

CRM

AP

RM

TX

XA

Moniteur transactionnel : ModèleMoniteur transactionnel : Modèle

Modèle DTP de l’X/OPEN Programme d’application AP Gestionnaire de transactions TM Gestionnaire de communication

CRM Gestionnaire de ressources RM

Interfaces standards TX = interface du TM XA = interface du RM intégration de TP

Types de RM gestionnaire de fichiers SGBD périphérique

Page 43: 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

43 G. Gardarin

Interface applicative TXInterface applicative TX

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. tx_begin

ordonne au TM de demander aux RM de débuter une transaction.

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. tx_set_transaction_timeout

positionne un “ timeout ” sur les transactions tx_info

permet d’obtenir des informations sur le statut de la transaction.

Page 44: 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

44 G. Gardarin

Interface ressource XAInterface ressource XA

xa_open ouvre un contexte pour l’application.

xa_start débute une transaction.

xa_end indique au RM qu’il n’y aura plus de requêtes pour le

compte de la transaction courante. xa_prepare

lance l’étape de préparation du commit à deux phases. xa_commit

valide la transaction. xa_rollback

abandonne la transaction.

Page 45: 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

45 G. Gardarin

Principaux moniteurs (1)Principaux moniteurs (1)

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

Open CICS de IBM construit sur Encina (et DCE) reprise de l’existant CICS (API et outils) conformité DTP : Xa, CPI-C

Page 46: 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

46 G. Gardarin

Principaux moniteurs (2)Principaux moniteurs (2)

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

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

Autres : UTM de Siemens, Unikix

Page 47: 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

47 G. Gardarin

Le marchéLe marché

1994 1995 1996 19970

100

200

300

400

500

600

700

800

900

millions $

1994 1995 1996 1997

Tuxedo

Encina

CICS

UTM

TOP END

Autres

Gartner Group

Page 48: 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

48 G. Gardarin

MTS de MicrosoftMTS de Microsoft

Microsoft Transaction Server Intégré à DCOM Partage de grappes de NT (cluster) Les disques sont supposés partagés Allocation des ressources en pool aux requêtes :

pool de connexion aux ressources (SQL Server) pool de transactions (support) pool de machines

Ne suit pas les standards !

Page 49: 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

49 G. Gardarin

8. Conclusion8. Conclusion

Des techniques complexes Un problème bien maîtrisé dans les SGBDR La concurrence complique la gestion de

transactions Les transactions longues restent problématiques Enjeu essentiel pour le commerce électronique

validation fiable reprise et copies partage de connections partage de charge