Transactionnel et transactionnel réparti



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

Module BDR Master d Informatique (SAR)

Software Engineering and Middleware A Roadmap

Services OSI. if G.Beuchot. Services Application Services Présentation - Session Services Transport - Réseaux - Liaison de Données - Physique

Implémentation des SGBD

Performances. Gestion des serveurs (2/2) Clustering. Grid Computing

Le modèle client-serveur

Intégration de systèmes client - serveur Des approches client-serveur à l urbanisation Quelques transparents introductifs

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

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

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

WEA Un Gérant d'objets Persistants pour des environnements distribués

LES ACCES ODBC AVEC LE SYSTEME SAS

Introduction. René J. Chevance

Cours Bases de données

Moderniser. le système d information et le portefeuille applicatif.

Concept de machine virtuelle

Bases de données cours 1

La reconquête de vos marges de manœuvre

Modules du DUT Informatique proposés pour des DCCE en 2014/2015

Le protocole ARP (Address Resolution Protocol) Résolution d adresses et autoconfiguration. Les protocoles ARP, RARP, TFTP, BOOTP, DHCP

Guide de configuration de SQL Server pour BusinessObjects Planning

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

ORTIZ Franck Groupe 4. Terminal serveur pour administrer un serveur Windows à distance, client rdp linux.

Environnements de Développement

NOTIONS DE RESEAUX INFORMATIQUES

Guide d'installation et de configuration de Pervasive.SQL 7 dans un environnement réseau Microsoft Windows NT

//////////////////////////////////////////////////////////////////// Administration bases de données

Annuaires LDAP et méta-annuaires

Chapitre 1 : Introduction aux bases de données

Microsoft Dynamics AX. Solutions flexibles avec la technologie Microsoft Dynamics AX Application Object Server

Acronis Backup & Recovery 10 Advanced Server Virtual Edition. Guide de démarrage rapide

Couche application. La couche application est la plus élevée du modèle de référence.

Architectures Client-Serveur

Rationalisation et évolution des assets, licences et contrats informatiques. Philippe ASTIER Software Technical Professionals

Gestion répartie de données - 1

Présentation du déploiement des serveurs

C-JDBC. Emmanuel Cecchet INRIA, Projet Sardes.

Microsoft Windows NT Server

Architectures web/bases de données

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

Mise en œuvre des serveurs d application

portnox pour un contrôle amélioré des accès réseau Copyright 2008 Access Layers. Tous droits réservés.

1. Introduction à la distribution des traitements et des données

Trixbox: Asterisk packagé. Unité Réseaux du CNRS

CommandCenter Secure Gateway

Introduction aux applications réparties

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

SYSTÈME DE GESTION DE FICHIERS

Fiche de l'awt Intégration des applications

Urbanisme du Système d Information et EAI

Analyse de performance, monitoring

Architecture distribuée

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

Dell Server PRO Management Pack 4.0 pour Microsoft System Center Virtual Machine Manager Guide d'installation

Annexe : La Programmation Informatique

INTRODUCTION AUX SGBD/R LUW

Runtime. Gestion de la réactivité des communications réseau. François Trahay Runtime, LaBRI sous la direction d'alexandre Denis Université Bordeaux I

COMPOSANTS DE L ARCHITECTURE D UN SGBD. Chapitre 1

INF6500 : Structures des ordinateurs. Sylvain Martel - INF6500 1

Installation d'un serveur DHCP sous Windows 2000 Serveur

//////////////////////////////////////////////////////////////////// Administration systèmes et réseaux

Introduction aux Systèmes et aux Réseaux, Master 2 CCI

Le Ro le Hyper V Premie re Partie Configuration et Prise en main du gestionnaire Hyper-V

I. Présentation du serveur Samba

Projet de Veille Technologique

ésylog, direction technique Esylog_PeerBackup outil de sauvegarde individuelle mails & fichiers personnels documentation technique

EMC DATA DOMAIN OPERATING SYSTEM

NOUVELLES FONCTIONNALITÉS DE MYQ 4.4

Ordinateur central Hôte ERP Imagerie/Archivage Gestion des documents Autres applications d'administration. Messagerie électronique

Logiciel Enterprise Guide Version 1.3 Windows

- Visioconférence - Utiliser NetMeeting au quotidien. Richard BONMARIN DSO/DSI/EMC-EBZ

LA VOIX SUR GPRS. 1. Introduction. P. de Frino (1), S. Robert (2), G. Cecchin (3) Résumé

Les nouvelles architectures des SI : Etat de l Art

FileMaker 13. Guide ODBC et JDBC

Windows Azure Platform Développez, déployez et administrez pour le Cloud Microsoft

SafeKit. Sommaire. Un livre blanc de Bull Evidian

Administration de systèmes

CHAPITRE 1 ARCHITECTURE

SQL Server 2014 Administration d'une base de données transactionnelle avec SQL Server Management Studio

Architectures d'intégration de données

Architectures en couches pour applications web Rappel : Architecture en couches

Oracle 11g Optimisez vos bases de données en production (ressources matérielles, stockage, mémoire, requêtes)

Windows Server 2012 Les bases indispensables pour administrer et configurer votre serveur

Module 0 : Présentation de Windows 2000

CH.3 SYSTÈMES D'EXPLOITATION

EMC DATA DOMAIN HYPERMAX

Intranet et les Bases de Données

Installation FollowMe Q server

Les messages d erreur d'applidis Client

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

Bases de Données. Stella MARC-ZWECKER. Maître de conférences Dpt. Informatique - UdS

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

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

TEKLYNX SENTINEL S/5

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration

Service Informatique et Télématique (SITEL), Emile-Argand 11, 2009 Neuchâtel, Tél ,

Créer et partager des fichiers

Transcription:

Transactionnel et transactionnel réparti Mars 2000 René J. Chevance Contenu! Introduction! Concept de transaction - Propriétés ACID! Caractéristiques du transactionnel! Rôle d un moniteur transactionnel! Composantes d'un moniteur transactionnel! Modèle de moniteur transactionnel! Moniteur transactionnel! Threads! Modèle X/Open! Transactionnel réparti - commitment à deux phases! Exemple de moniteur transactionnel: Tuxedo! Moniteurs transactionnels et SGBDs Page 2

Introduction Page 3! Le transactionnel est une dimension essentielle des systèmes d'information des entreprises! Un système transactionnel (OLTP On Line Transaction Processing) fournit un cadre pour les applications critiques, il est fiable et à haute performance! Les besoins transactionnels ont conduit les constructeurs à développer des systèmes ou des sous-systèmes spécifiques: " Spécifique: TPF(IBM Mainframe) pour des systèmes très spécialisés (e.g. système de réservation de la TWA) " IBM: CICS sous-système transactionnel pour mainframe (environ 38000 installations) maintenant porté sur des systèmes UNIX (e.g. CICS/6000). Produits compatibles sous UNIX tels qu'unikix (Integris/Bull)! Bull: TDS sur Mainframe, DEC: ACMS,...! Tandem: Pathway/Guardian pour ses systèmes à continuité de service! USL, Novell puis BEA : Tuxedo pour systèmes UNIX, NCR : Top End pour UNIX! Transarc: ENCINA pour UNIX Concept de transaction - Propriétés ACID! Rappel, on appelle transaction une séquence d'actions sur l'état physique et logique d'une application qui respecte les propriétés suivantes dites ACID (Atomicity, Consistency, Isolation, Durability):! Atomicité: Les changements opérés par une transaction sur l'état sont atomiques: ils sont tous exécutés ou bien aucun ne l'est;! Consistance: Une transaction est une transformation correcte de l'état. L'ensemble des actions accomplies par la transaction ne viole pas les contraintes associées avec l'état. Ceci implique que la transaction soit un programme correct;! Isolation: Bien que les transactions s'exécutent de façon concurrentes, il apparaît, à chaque transaction que les autres transactions, se sont exécutées soit avant soit après;! Durabilité: Lorsqu'une transaction se termine avec succès (commitement), le changement qu'elle a provoqué sur l'état doit survivre aux défaillances. Page 4

Caractéristiques du transactionnel Page 5! Partage: " en Lecture et Écriture " par l ensemble des utilisateurs " Propriétés ACID! Flux de requêtes irrégulier! Travail répétitif " Répertoire de fonctions pré-défini typiquement O(100) fonctions! Fonctions simples " Fonctions peu complexes (typiquement de 10 5 à 10 7 instructions et 10 E/S)! Possibilité de traitement de type batch (avec respect des propriétés ACID)! Grand nombre de terminaux (1000-10000)! Clients intelligents (stations, PC, autres systèmes, terminaux)! Haute disponibilité requise " Recouvrement effectué par le système " Fondé sur les propriétés ACID! Taille des bases de données " Proportionnelle à l'activité de la Société! Peu de données "touchées" par une transaction! Équilibrage de charge automatique! Recherche de la performance au moyen du parallélisme inter-requête! Performance : haut débit et temps de réponse garanti! Scalabilité : exigence typique Rôle d un moniteur transactionnel! Peu de systèmes d exploitation ont été conçus dans l optique du transactionnel! Le support d un grand nombre d utilisateurs et d un flux important de transactions (plusieurs milliers par seconde) provoque un effondrement des systèmes! Le rôle d un moniteur transactionnel est : " Gestion des processus comprenant le lancement des applications, le contrôle de leur déroulement et l équilibrage de charge (on peut parler de multiplexage des requêtes sur les ressources du système) " Gestion des transaction (respect des propriétés ACID) dans un contexte, éventuellement distribué, mettant en jeu plusieurs gestionnaires de données Page 6

Modèle de moniteur transactionnel Réseau Terminal Message (MM). Collecte les entrées des transactions (gestion de formes). Construit un format standard d'entrée des requêtes. Envoie les résultats (gestion de formes) Request Control (RC). Débute et termine les transactions. Détermine le type des requêtes. Dirige les requêtes vers les applications appropriées Application Server (AS). Exécute les programmes d'application Database System (DBMS). Gère les données partagées Page 7 Composants d un moniteur transactionnel Presentation Services Send/ Receive TP Monitor Communication Dispatch Savepoint, Prepare, Finish Begin Work, Save Work,, Rollback Register Incoming/ Outgoing Transactions Savepoint Prepare Application Application Application Program Application Program Program Program Transaction Join Transaction Service Call Save Work Checkpoint Prepare UNDO/ REDO Log Records Resource Resource Resource Resource Resource Savepoint Preapred ted Completed Checkpoint Log records Log Service Call Page 8 Source [GRA93 ]

Concept de threads (processus légers) Page 9! La gestion d'un grand nombre d'utilisateurs connectés et d'un grand nombre de transactions actives dépasse, bien souvent, les capacités de traitement des systèmes d'exploitation et du matériel les supportant! Il convient d alléger la gestion des contextes des utilisateurs, c est-àdire éviter d'avoir un processus par utilisateur (trop de processus conduit à un effondrement du système)! Solution: les "threads", ou chemins d'exécution indépendants au sien d'un même processus. Ceci correspond au multiplexage de processus "légers" au sein d'un processus. Une commutation de thread au sein d'un processus coûte environ 10 fois moins de temps qu'une commutation de processus! Le processus est l'unité d'allocation de ressources du point de vue du système : protection, espace mémoire, fichiers, connections réseau,...les threads partagent les ressources au sein du processus. Bien évidemment, l'accès aux ressources partagées nécessite une synchronisation! Les threads sont supportés soit au niveau du système d'exploitation (e.g. implémentation de la norme POSIX 1003.4a) soit au sein des sous-systèmes eux-mêmes (e.g. moniteurs transactionnels, systèmes de gestion de bases de données,..) Notion de processus (Unix) et de thread Exemple de structuration de l'espace d'adressage virtuel (Unix) 4GB Système Code et données noyau 2GB Librairies partagées Mémoire partagée 2GB Librairies partagées Mémoire partagée 2GB Process Librairies partagées Mémoire partagée 2GB Utilisateur Multi-thread Contexte Pro. Contexte Pro. Contexte Pro. Contexte Pro. Pile Pile Pile Pile Page 10 Données Code (text) 0 Utilisateur Mono-thread Données Code (text) 0 Utilisateur Mono-thread Données Code (text) 0 Thread 0 Thread n

Notion de thread (Unix) 4GB Partage des ressources "système» entre les threads d'un processus Système Code et données noyau Structure u Ressources associées au processus 2GB Process Librairies partagées 2GB Utilisateur Multi-thread Notes: - Deux threads "système" sont automatiquement associés à un processus multi-thread pour la gestion des threads "utilisateur» (exemple scheduling, signaux,...) - L'accès aux données communes au niveau du processus nécessite une synchronisation entre les threads Mémoire partagée Données Code (text) 0 Contexte Pro. Pile Thread 0 Contexte Pro. Pile Thread n Page 11 Modèle X/Open! Transactionnel centralisé Application Begin Rollback (TX) TM Transaction Join Prepare,, Rollback Requests RM Resource Le modèle X/open suppose que les Resource s ont leurs propres services de log et de verrouillage (lock) et que ces Resource s réalisent leurs propres reprises (rollback) à la demande du Transaction Page 12

! Transactionnel distribué (DTP) Modèle X/Open(2) Begin Rollback (TX) Site A TM Gestionnaire de transactions La transaction <transid> quitte ce nœud Protocoles OSI/TP et CCR prepare, commit, rollback + ack, - ack, restart (XA+) (OSI-TP+CCR) (XA+) Site B TM Gestionnaire de transactions La transaction <transid> arrive sur ce nœud Start Application Données de l application (C/S - Égal à égal) CM Gestionnaire de communications CM Gestionnaire de communications Données de l application (C/S - Égal à égal) Application «serveur» Prepare,, Rollback (XA) Prepare,, Rollback (XA) Requêtes Requêtes RM Gestionnaire de ressources Requêtes distantes RM Resource R Gestionnaire de ressources Note: TM et CM peuvent être intégrés Page 13 Modèle X/Open(3)! Standards Eléments participant Protocole/API Organisme Application:TM TX X/Open DTP Application:RM spécifique du RM fournisseurs des RMs Application:Serveur C/S ou Peer to Peer OSI + application TM:RM XA X/Open DTP TM:CM XA+ X/Open DTP TM-TM OSI-TP + CCR OSI - OSI définit des protocoles et des formats (FAP - Format And Protocols). Ceci est nécessaire pour l'interopérabilité. _ X/Open définit des interfaces de programmation API (Application Programming Interface). Ceci est nécessaire pour la portabilité. - C/S: Client/Seveur qui utilise souvent un RPC (Remote Procedure Call) spécifique - Peer to Peer: dialogue d'égal à égal - CR:, Concurrency Control and Recovery Page 14 Note: OSI-TP est similaire à LU6.2 qui est un standard (FAP) de fait relatif aux interactions entre clients et serveurs dans un environnement transactionnel.

Validation à deux phases! Cas centralisé [GRA93] Coordinateur (Transaction ) Participants (Resource s) Prépare Préparation locale OK Préparation locale Ecriture (forcée) d'un enregistrement "Prépare" dans le journal Ecriture (forcée) d'un enregistrement "" dans le journal Ecriture d'un enregistrement "Complétion" dans le journal Ack commitment local Ecriture d'un enregistrement "Complétion" dans le journal Acquittement lorsque l'écriture est durable Page 15 Validation à deux phases(2)! Cas distribué [GRA93] Etat courant next tr_id Transactions actives tr_id Etat max. LSN {RM_ids} Sessions Transaction Resource s Communication Log Sessions Master Log Autres Transaction s Page 16

! Cas distribué (suite) Validation à deux phases(3) Préparation locale.préparation "distribuée" Coordinateur (Transaction ) OK OK Prépare Prépare Participants locaux (Resource s) Préparation locale Participants distribués (Transactions s) Préparation locale Préparation "distribuée" Décision "Prépare" -> Log Acquitter Décision Ecriture (forcée) d'un enregistrement "" dans le journal commitment local Page 17 "Complete" Ecriture d'un enregistrement "Complétion" dans le journal Ack commitment distribué "Complete" Acquitter! Cas distribué (suite) Validation à deux phases(4) Page 18 Transaction "Coordinateur":. Préparation locale :"prépare" envoyé à chaque RM local. Préparation "distribuée" : "prépare" envoyé O à chacune des sessions impliquées dans la transaction (en fait des TMs). Décision : Si tous les RM locaux et les sessions impliquées répondent OK, écriture d'un enregistrement "commit" avec toutes ces informations dans le journal). : Envoi de l'ordre "commit" à tous les RM locaux et aux TM des sessions concernées. "Complète" : Si tous les RM locaux et les toutes les sessions impliquées (les TMs) répondent positivement écriture (forcée) d'un enregistrement "complétion" dans le journal. Après la fin d'écriture, mise à jour de l'état de la transaction ("finie") Abort. "Broadcast Abort" : envoyer le message "abort" à toutes les sessions concernées. Défaire : défaire la transaction à l'aide des informations du journal. "Complète" : Ecriture d'un enregistrement dans le journal et mise à jour de l'état de la transaction Transaction "Participant": Prépare(). Préparation locale :"prépare" envoyé à chaque RM local. Préparation "distribuée" : "prépare" envoyé à chacune des sessions impliquées dans la transaction (en fait des TMs). Décision : Si tous les RM locaux et les sessions impliquées répondent OK, le TM est quasi prêt Préparé : écriture d'un enregistrement "commit» avec les informations (RMs et TMs participants ainsi que le TM "parent" dans le journal). Réponse : répondre positivement au demandeur. Attente : attente d'un ordre "commit" en provenance du coordinateur. (). : Envoi de l'ordre "commit" à tous les RM locaux et aux TM des sessions concernées. "Complète" : Si tous les RM locaux et les toutes les sessions impliquées (les TMs) répondent positivement écriture (forcée) d'un enregistrement "complétion" dans le journal. Après la fin d'écriture, mise à jour de l'état de la transaction ("phase 2 terminée"). Acquittement : après l'écriture dans le journal, envoyer un acquittement du commit au coordinateur et mettre à jour l'état (local) de la transaction

Exemple de moniteur transactionnel : Tuxedo Page 19! Initialement développé par AT&T pour ses propres applications transactionnelles sous Unix, repris ensuite par USL (Unix System Laboratories), Novell et maintenant possession de BEA! Début de commercialisation en 1989. Plusieurs milliers de systèmes installés! Disponible sur un grand nombre de systèmes! Caractéristiques " Conforme au modèle X/Open DTP (Distributed Transaction Processing) " Portabilité " Support au niveau des langages de programmation (e.g. Visual Basic, Cobol) " Architecture Client/Serveur " Management du système " Multiplexage Clients - Serveurs " Mécanisme de gestion de files d'attente de messages " Transactions distribuées " Sécurité! Architecture d'application Tuxedo Applications Tools, 4GL s C, C++, COBOL TUXEDO System Client- Server Name Server ATMI Mngmnt & Admin Connectivity Distributed Transaction Processing System-Level (Hardware, Operating System, Network) Resource (s) Page 20 ATMI : Application - Transaction Interface

Tuxedo(2)! Architecture - Cas centralisé Client /T LIB Client /T LIB SYSTEM /T Bulletin Board Transaction et Communication /T LIB /T LIB /T LIB Function 1 RM LIB << >> Function 1 RM LIB >> Function n RM LIB Resource Resource Page 21 Tuxedo(3)! Architecture - Cas distribué WS Client WS Client UNIX Server UNIX Server WS Handler Unix Client Unix Client Unix Client DBBL BBL Bulletin Board Bulletin Board BBL TM Server Server /Host Server Bridge Bridge TM HOST Page 22

Tuxedo(4)! Composants " Tuxedo System/T # Composant principal de Tuxedo (fonctionne sous Unix) # Serveur de Nom et Gestionnaire de Transactions (TM) " Tuxedo System/WS # Partie Client, fonctionne sous DOS/Windows, Unix et OS/2 " Tuxedo System/Host # Permet à des services de Tuxedo de fonctionner sur des systèmes propriétaires " Tuxedo System/Q # Mécanisme de mise en queue de messages respectant les propriétés transactionnelles (soumission et achèvement garantis) # Gestionnaire de ressources (RM) conforme à XA " Tuxedo System/TDomain # Requêtes transactionnelles entre des domaines d'administration séparés de Tuxedo Page 23 Moniteurs transactionnels et SGBD Page 24! Il y a deux possibilités pour la programmation d'un système transactionnel: " Programmation Client/Serveur, sans moniteur transactionnel, en relation avec les possibilités offertes par les SGBDs. Ceci est appelé "TP Lite" ou transactionnel léger " Utilisation d'un moniteur transactionnel qui fournit le cadre architectural des applications et utilisation des services fournis par différents composants logiciels (e.g. SGBDs). Ceci est appelé "TP Heavy" ou transactionnel lourd! Pour le choix entre ces deux approches, différents éléments rentrent en ligne de compte tels que: " Transactionnel léger : dépendance vis à vis du fournisseur de SGBD, limitations vis à vis de la programmation des transactions (la validation est faite au niveau du SGBD), problèmes de performance,... " Pour TP Heavy: limitation potentielle dans les progiciels que l'on peut intégrer, pérennité du moniteur, complexité de la programmation,...

Références [BER97] Philip A. Bernstein, Eric Newcomer «Principles of Transaction Processing» Morgan Kaufmann, San Mateo, 1997 [BES97] Jérôme Besancenot, Michèle Cari, Jean Ferrié, Rachid Guerraoui, Philippe Pucheral, Bruno Traverson, " Les systèmes transactionnels : concepts, normes et produits " Hermès Science, 1997 [GRA93] Jim Gray, Andreas Reuter «Transaction Processing: Concepts and, Techniques» Morgan Kaufmann, San Mateo, 1993 Page 25