LES SERVEURS ET LES SGBD Introduction Dans ce chapitre nous allons examiner les options d’architecture des serveurs et des systèmes de gestion de bases de données. Ces derniers ont des relations privilégiées avec les disques. Les fournisseurs de SGBD parallèle ont fait des choix d’architecture que nous allons examiner. Un SGBD parallèle exploite le parallélisme pour fournir un service autour d’une base de données. Ce parallélisme est supporté par une architecture parallèle. Il ne faut pas confondre ce type de SGBD avec les SGBD distribués ou répartis. Ces derniers visent à fédérer en une vision de base de données unique des bases supportées par des systèmes différents. CNAM 2009 - 2010 Patrick Arlaud - Jerome Dupire 1 LES SERVEURS ET LES SGBD Modèle d’architecture CPU CPU MEM MEM MEM CPU MEM CPU CPU Share Everything (typique SMP) CPU RESEAU D’INTERCONNEXION RESEAU D’INTERCONNEXION Share Nothing (certains cluster et typique MPP) Shared Disk (certains cluster) Ö Dans l’architecture Share Everything, l’ensemble des processeurs du système fonctionne sous le contrôle d’un seul système d’exploitation. Ö Dans l’architecture Share Nothing, chacun des nœuds qui composent le système fonctionne sous le contrôle de sa propre copie du système d’exploitation et a un accès exclusif aux disques qui lui sont attachés. Ö Dans l’architecture Shared Disk, chacun des nœuds qui composent le système fonctionne sous le contrôle de sa propre copie du système d’exploitation mais peut accéder directement aux disques qui sont partagés entre les différents nœuds. CNAM 2009 - 2010 Patrick Arlaud - Jerome Dupire 2 LES SERVEURS ET LES SGBD Modèle d’architecture Ces trois modèles correspondent à des réalités différentes du point de vue des données et de l’équilibrage des charges. Une analogie avec des clients attendant d’être servis devant des guichets permet d’appréhender les différences entre les modèles. Clients (processus) Guichets (processeurs/systèmes) Dossiers (données) Modèle Share Everything CNAM 2009 - 2010 Modèle Share Disks Patrick Arlaud - Jerome Dupire Modèle Share Nothing 3 LES SERVEURS ET LES SGBD Modèle d’architecture Dans le modèle Share Everything : Ö Les clients sont placés dans une file d’attente commune. Il y a un équilibrage de charge naturel, les clients se répartissent automatiquement sur les guichets en fonction de leur disponibilité. Ö Tous les agents aux guichets disposent de possibilités identiques d’accès aux dossiers. Ö L’ensemble des dossiers est partagé par l’ensemble des agents. Ö La synchronisation entre les agents pour la mise à jour des dossiers s’effectuent par un dialogue direct (les processeurs partagent la même mémoire). Ö La limite du système se trouve dans le nombre maximal d’agents qui peuvent être mis en parallèle. Ö Et aussi dans le débit de l’accès aux données. CNAM 2009 - 2010 Patrick Arlaud - Jerome Dupire 4 LES SERVEURS ET LES SGBD Modèle d’architecture Dans le modèle Share Disks : Ö La répartition des clients vers les différents guichets ne se fait pas naturellement, il est nécessaire de prévoir un agent en amont chargé d’équilibrer les flux de clients vers les différents guichets. Ö Dans les systèmes informatiques, ce rôle est dévolue à l’un des nœuds du cluster qui recueille les informations sur la charge des nœuds et aiguille la requête vers les nœuds les moins chargés. Ö Chacun des agents a accès à l’ensemble des dossiers. Ö La synchronisation entre les agents pour la mise à jour des données nécessitent un dialogue entre les différents guichets. Ö Pour les systèmes informatiques, ce dialogue est réalisé au moyen d’un réseau d’interconnections, il est bien moins efficace que le dialogue au travers d’une mémoire commune. CNAM 2009 - 2010 Patrick Arlaud - Jerome Dupire 5 LES SERVEURS ET LES SGBD Modèle d’architecture Dans le modèle Share Nothing : Ö Chaque ensemble de guichets accède en propre à un sous ensemble de dossiers. Ö Un guichet désirant accéder à des dossiers gérés par des guichets appartenant à un autre sous ensemble doit s’adresser à ce sous ensemble. Ö Ce modèle implique que la répartition des clients sur les sous ensembles de guichets, soit faite en foncton du sous ensemble de dossiers auquel le client souhaite accéder. Ö L’équilibrage de charge est donc étroitement lié à la répartition des dossiers entre les différents sous ensembles des guichets et à la distribution des demandes des clients vis-à-vis de ces dossiers. Ö L’accès d’un sous ensemble de guichets donné à des données gérées par d’autres sous ensembles de guichet nécessite des échanges entre ces sous ensembles. CNAM 2009 - 2010 Patrick Arlaud - Jerome Dupire 6 LES SERVEURS ET LES SGBD Modèle d’architecture Ö Ces demandes peuvent être de deux sortes : Ö Envoi de données (Data Shipping). Le guichet traitant la requête demande au sous ensemble de guichets possèdent la donnée de la lui adresser. Ce guichet se charge de la réalisation de l’opération et du renvoi des données au sous ensemble de guichets qui gère ces données. Ö Envoi de fonction (Function Shipping). Le guichet traitant la requête adresse au sous ensemble de guichets possédant la donnée la définition de la fonction à exécuter. Ce dernier retourne, le cas échéant, les résultats de la fonction qu’il a exécutée. Les SGBD qui ont fait le choix pour l’architecture Shared Disks ont opté pour l’option « envoi de données », alors que les autres SGBD qui ont fait le choix pour l’architecture Share Nothing ont opté pour l’option « envoi de fonction ». CNAM 2009 - 2010 Patrick Arlaud - Jerome Dupire 7 LES SERVEURS ET LES SGBD Modèle d’architecture Problématique des SGBD : Ö Les ressources de traitement (processeurs). ÖLes entrées – sorties (contrôleurs et unités disques). Ö Caractéristiques de la mémoire (capacité et temps moyen d’accès). Ö Performance du réseau d’interconnexion (latence et débit). Nous allons nous intéresser surtout aux processeurs et aux entrées – sorties. Deux types de saturation peuvent se produire : Ö Saturation des ressources de traitement. Cette situation est applée CPU Bound parce que la performance du système est limité par les processeurs. Ö Saturation des entrées - sorties. Cette situation est appelée I/O Bound parce que la performance du système est limité par les entrées – sorties. CNAM 2009 - 2010 Patrick Arlaud - Jerome Dupire 8 LES SERVEURS ET LES SGBD Modèle d’architecture Deux types de parallélisation des requêtes existent : Ö Parallélisme de traitement. La requête est décomposée en requêtes élémentaires qui sont exécutées en parallèle. Ö Parallélisme de données. L’exécution de la requête s’opère en parallèle sur des sous ensembles des données. Ces deux techniques peuvent être mises en œuvre sur n’importe lequel des modèles d’architecture présentés : Share everything, Shared Disks, Share Nothing. Le parallélisme de traitement utilise la décomposition d’une requête en un ensemble partiellement ordonné d’opérateurs (indexation, tri, jointure etc.). Les différents opérateurs s’exécutent dans des threads. Le parallélisme de données consiste à diviser une table en un certains nombres de partitions. L’exécution d’une requête se traduit alors par des exécutions sur chacune des partitions en simultanée. CNAM 2009 - 2010 Patrick Arlaud - Jerome Dupire 9 LES SERVEURS ET LES SGBD Modèle d’architecture Cela se traduit par le parallélisme interrequête et le parallélisme intrarequête : Ö Pour le parallélisme interrequête, le SGBD procède à l’exécution simultanée de plusieurs requêtes concernant des clients différents. Ö Pour le parallélisme intrarequête, le SGBD transforme une requête soumise par un client en plusieurs sous requêtes susceptibles d’être exécutées simultanément. Ces deux formes de parallélisme peuvent cohabiter ensemble. Le cas typique du parallélisme interrequête est le transactionnel dans lequel le SGBD (et éventuellement le moniteur des transactions) se chargent de traiter simultanément les transactions émises par le client. Le parallélisme intrarequête consiste à répartir l’exécution d’une même requête sur plusieurs processus. Pour cela le SGBD transforme la requête en plusieurs sous requêtes qui sont exécutées en parallèle. Chaque sous requête agit sur un partitionnement des données. CNAM 2009 - 2010 Patrick Arlaud - Jerome Dupire 10 LES SERVEURS ET LES SGBD Modèle d’architecture Le parallélisme interrequêtes : … DISPATCHER … Processus serveurs Base de données CNAM 2009 - 2010 Patrick Arlaud - Jerome Dupire 11 LES SERVEURS ET LES SGBD Modèle d’architecture Le parallélisme intrarequêtes : Temps Table 1 Temps total 12 min Table 2 Etape 1 Scan 4 min Etape 2 join 4 min Etape 3 sort 4 min Exécution séquentielle Table 1 Temps total 3 min. Répartition des données sur plusieurs systèmes Table 2 Etape 1 Etape 2 Scan join 1 min 1 min Etape 3 sort 1 min Partionnement des données et exécution en parallèle CNAM 2009 - 2010 Patrick Arlaud - Jerome Dupire 12 LES SERVEURS ET LES SGBD Modèle d’architecture Le partitionnement peut être exécuté en pipeline (combinaison du partitionnement et du pipeline) : TEMPS S c a n J o i n S o r t n Temps = 1 min CNAM 2009 - 2010 S c a n J o i n S o r t n Temps = 2 min S c a n J o i n S o r t n S c a n J o i n S o r t n S c a n J o i n S o r t n Temps = 3 min Temps = 4 min Temps = 5 min Fin d’exécution de la première requête Fin d’exécution de la seconde requête Fin d’exécution de la troisième requête Patrick Arlaud - Jerome Dupire 13 LES SERVEURS ET LES SGBD Modèle d’architecture Ö Le partitionnement des données est particulièrement important dans les architectures de type Share Nothing. Ö Il influence la performance du système dans les architectures de type Shared Disks car : Grâce à un aiguillage judicieux, il est possible de créer une affinité nœud – données qui favorise l’effet cache. Les mêmes données sont alors accédées par le même nœud et donc le cache de la base de données placé sur ce nœud a une très forte probabilité de contenir les données accédées par les requêtes. Le partitionnement des données cherche à atteindre les objectifs suivants : Ö Réduction de la charge système au niveau de l’accès aux données. Plusieurs ressources parallèles sont mise au service de l’accès aux données. Ö Equilibrage de la charge. Les traitements sont répartis en fonction de la répartition des données sur les différents nœuds composant le système. Ö Accroissement de la capacité de travail du système du fait de la mise en parallèle de plusieurs nœuds. CNAM 2009 - 2010 Patrick Arlaud - Jerome Dupire 14 LES SERVEURS ET LES SGBD Modèle d’architecture Modèles de partitionnement des données : le partitionnement vertical Table Système 1 Système 2 Le partitionnement vertical séparent les attributs d’une relation entre plusieurs systèmes. Ce type de partitionnement peut avoir des conséquences sur la programmation des applications. Deux cas peuvent se présenter : Ö Si le SGBD supporte les bases de données distribuées, il y a transparence vis-à-vis de l’application. Le SGBD se chargeant des problèmes liés à la distribution. Ö Si le SGBD ne supporte pas les bases de données distribuées, l’application doit tenir compte de la partition des données. Ö Dans tous les cas, les performances sont impactées par la mise à jour des données portant sur plus d’une partition. CNAM 2009 - 2010 Patrick Arlaud - Jerome Dupire 15 LES SERVEURS ET LES SGBD Modèle d’architecture Modèles de partitionnement des données : le partitionnement horizontal Système 1 Table Système 2 Le partitionnement horizontal ne présente pas les mêmes contraintes, son utilisation ne pose pas de problèmes au niveau application. CNAM 2009 - 2010 Patrick Arlaud - Jerome Dupire 16 LES SERVEURS ET LES SGBD Modèle d’architecture Exemple de techniques de partitionnement : Table 1 2 3 4 5 Round Robin, chaque tuple est rangé dans la partition suivante en séquence Domaine de valeurs CNAM 2009 - 2010 . . . Patrick Arlaud - Jerome Dupire Domaine, les tuples sont répartis en fonction des domaines de valeur des clés Hachage (ou HASHING), un algorithme appliqué à la clé détermine son numéro de partition 17 LES SERVEURS ET LES SGBD Modèle d’architecture Exemple de techniques de partitionnement : Ö Le partitionnement fondé sur les domaines de valeur de la clé permet des optimisations car il possible d’aiguiller les requêtes vers un nœud en fonction de la valeur de la clé. Exemple : les clés sont des noms et la partition se fait en fonction de la première lettre du nom, ainsi les noms débutant par les lettres A à E appartiennent à la première partition, ceux débutant par les lettres F à J à la seconde et ainsi de suite. Ö Le Round Robin possède, par définition, la propriété d’équilibrer les partitions. En revanche, l’équilibrage de la charge n’est pas assurée puisqu’elle dépend des articles qui sont accédés. Ö La méthode fondée sur une fonction de hachage, ou hashing, pose le problème du choix de la fonction de hachage. Exemple de fonction de hachage : on considère les bits composants la clé comme un nombre entier de longueur variable. La valeur de fonction de hachage est le reste de la division de ce nombre par un nombre premier. Une fonction de hachage doit être simple à évaluer et fournir un bon équilibre des partitions. CNAM 2009 - 2010 Patrick Arlaud - Jerome Dupire 18 LES SERVEURS ET LES SGBD Cas de la réplication de données : Modèle d’architecture Ö Une même donnée se trouve sur plusieurs disques dans le système, cela nécessite un protocole pour mise à jour, mais facilite l’accès. Modèle Expédition de données pour l’architecture Share Nothing : Demande d’accès aux données Le nœud désirant effectuer une opération sur des données gérées par un nœud distant expédie à ce nœud distant une demande d’accès aux données. Le nœud distant réalise l’accès et expédie les données via le réseau d’interconnexion au nœud demandeur. Données Exécution de la requête AàE Hors cet accès distant, la requête est exécutée en totalité sur le même nœud. CNAM 2009 - 2010 F..J K..N O..S T..Z Expédition de la donnée (DataShipping) Patrick Arlaud - Jerome Dupire 19 LES SERVEURS ET LES SGBD Modèle d’architecture Modèle expédition de fonction pour l’architecture Share Nothing : Le nœud désirant effectuer une opération sur des données gérées par un nœud distant expédie au nœud distant une demande d’exécution de partie de la requête (fonction) qui concerne les données gérées par ce nœud. Le nœud distant exécute la fonction sur les données concernées et expédie le résultat (c’est à dire des données) via le réseau d’interconnexion au nœud demandeur. Demande d’exécution de la fonction Résultat Exécution de la fonction Exécution de la requête (partielle) AàE F..J K..N O..S T..Z Expédition de fonction (Function Shipping) Une requête peut être ainsi exécutée par plusieurs nœuds. Les avantages et inconvénients des deux modèles dépendent des quantités de données à exporter et de la quantité de traitement exportés. CNAM 2009 - 2010 Patrick Arlaud - Jerome Dupire 20 LES SERVEURS ET LES SGBD Modèle d’architecture Architecture d’IBM DB2 Universal Database (version Enterprise et Enterprise extended) : Ö DB2 est fondé sur une architecture de type Share Nothing. Ö DB2 utilise le modèle d’expédition de fonction. Ö DB2 fonctionne sur les plateformes MVS, AIX, Solaris et Windows NT. Ö Les architectures supportées sont les multiprocesseurs symétriques, les clusters et les machines parallèles. Ö Pour les partitionnements, DB2 utilise le hachage en collaboration avec une méthode paramétrable de répartitions des données dans les partitions. CNAM 2009 - 2010 Patrick Arlaud - Jerome Dupire 21 LES SERVEURS ET LES SGBD Modèle d’architecture Architecture d’IBM DB2 Universal Database (version Enterprise et Enterprise extended) : Exécution d’une requête : Applications « client » Nœud 1 Nœud 2 Nœud 3 C E C E E E Tache Coordinatrice E E E E E E Tache Esclave L’exécution d’une requête est réalisée sous le contrôle d’une tâche dite coordinatrice. Cette tâche distribue le traitement à des tâches esclaves et recueille les réponses. CNAM 2009 - 2010 Patrick Arlaud - Jerome Dupire 22 LES SERVEURS ET LES SGBD Modèle d’architecture Architecture d’IBM DB2 Universal Database (version Enterprise et Enterprise extended) : Partitionnement des données : Colonne 1 (Clé de partition) Colonne 2 Colonne 3 XXXXX YYYYY ZZZZZ Fonction de hashing Résultat de fonction 0 1 2 3 4 5 6 7 8 9 10 11 .... Nœud assigné 1 2 3 4 5 6 1 2 3 4 5 6 .... N œ u d 1 N œ u d 2 N œ u d 3 N œ u d 4 N œ u d 5 N œ u d 6 Le partitionnement est fondé sur la valeur d’un des attributs de la relation. Cet attribut appelé clé de partitionnement n’est pas nécessairement la clé de la relation. La fonction de hachage prend ses valeurs dans l’ensemble 0 à 4095. A chacune de ces valeurs, une table fait correspondre le nœud sur lequel sont rangés les tuples. On applique donc la fonction de hachage à la clé de partitionnement d’un tuple. Le résultat de cette fonction est un index dans un tableau qui contient le numéro de la partition à laquelle appartient le tuple. CNAM 2009 - 2010 Patrick Arlaud - Jerome Dupire 23 LES SERVEURS ET LES SGBD Modèle d’architecture Architecture d’IBM DB2 Universal Database (version Enterprise et Enterprise extended) : Stratégie de jointure : Tache Coordinatrice Taches esclaves Tache Coordinatrice Jointure Tâches esclaves 1 Scan Scan Table Table 2 1 Jointure locale Scan Tache Coordinatrice Tâches esclaves 2 Jointure Dirigé Ou diffusé Scan Table 1 Table 2 Jointure dirigée ou diffusée Tâches esclaves 1 Scan Tâches esclaves 3 Jointure Scan Tâches esclaves 2 Table Table 2 1 Jointure répartie La jointure locale exploite deux partitions de tables placées sur le même nœud. La jointure dirigée ou diffusée exploite des partitions de tables placées sur des nœuds différents. Les tuples sélectionnés au niveau d’un nœud doivent être dirigés vers un autre nœud pour que l’opération de jointure y soit réalisée. La jointure dirigé correspond au cas où l’on connaît à l’avance le nœud sur lequel cette jointure va être réalisée. Lorsque l’on ne connaît pas à l’avance ce nœud, les données sélectionnées sont diffusées aux autres nœuds. La jointure répartie fonctionne sur le principe d’un arborescence. CNAM 2009 - 2010 Patrick Arlaud - Jerome Dupire 24 LES SERVEURS ET LES SGBD Modèle d’architecture Oracle Paralle Server (OPS) : Oracle Parallel Server est basé sur une architecture de type Shared Disks. Ö On appelle instance d’Oracle l’association des processus implémentant Oracle et d’une zone de données globale appelée SGA (System Global Area). Ö Dans la version non OPS d’Oracle, il existe autant d’instance d’Oracle sur un système donné qu’il y a de bases ouvertes, alors qu’avec OPS plusieurs instances peuvent partager la même base de données. Ö OPS supporte de l’ordre d’une dizaine de nœuds. Instance unique Nœud Instance Oracle Base Ouverte Instance Multiples / Multiples bases Instance Oracle Base Ouverte Nœud Instance Oracle Base Ouverte Mode Exclusif OPS : Nœud 1 Instance Oracle Instance Oracle Nœud 2 Base Ouverte CNAM 2009 - 2010 Partagé Patrick Arlaud -Mode Jerome Dupire 25 LES SERVEURS ET LES SGBD Modèle d’architecture Oracle Paralle Server (OPS) : Processusd’arrière d’arrièreplan plan Processus Structure générale d’une instance d’Oracle Journal « refaire » Cache de la base de données ZONE GLOBALE SYSTEME (SGA) Zone partagée Session utilisateur et états curseur pour MTS Zones SQL partagées Serveur dédié PGA PILE PGA PGA PILE PILE DISPATCHER Session util Etat courant UTILISATEUR UTILISATEUR Serveur multithreaded UTILISATEUR CNAM 2009 - 2010 Patrick Arlaud - Jerome Dupire 26 LES SERVEURS ET LES SGBD Oracle Paralle Server (OPS) : Modèle d’architecture Structure générale d’une instance d’Oracle : Ö Un utilisateur peut se connecté via une structure produits par un serveur dédié à sa connexion. Ö Un utilisateur peut aussi se connecter via une structure partagée entre les utilisateurs gérée par un serveur multi – threads. Ö Dans le cas d’un serveur dédié, une zone de données appelée PGA (Program Global Area) est associé à l’utilisateur, cette zone contient des informations relatives à cette utilisateur : la pile (enchaînement des appels de procédures et fonctions) et données relatives à la session en cours. Ö Dans le cas du serveur multi – threads, une zone PGA est également associée à chaque utilisateur, mais cette zone ne contient qu’un sous ensemble des informations qui sont stockées dans la PGA des serveurs dédiés. Les données relatives à la session sont rangées dans la SGA. Ö Le cache de la base de données contient des blocs de données les plus récemment accédés et peut aussi contenir des blocs de données modifiés qui n’ont pas encore été rangés sur le disque. Ö Le journal « refaire » contient les informations qui permettent de rejouer les transactions. Ö La zone de mémoire partagée contient des éléments tels que ceux associés à des utilisateurs ayant demandé l’exécution du même ordre SQL. CNAM 2009 - 2010 Patrick Arlaud - Jerome Dupire 27 LES SERVEURS ET LES SGBD Modèle d’architecture Oracle Paralle Server (OPS) : Structure générale d’une instance multi – threads d’Oracle Processusd’arrière d’arrièreplan plan Processus Zone partagée Cache de la base de données Zone globale système (SGA) Queue des requêtes Serveur partagé Queue des réponses DISPATCHER Utilisateur CNAM 2009 - 2010 Journal « refaire » Utilisateur DISPATCHER Utilisateur Utilisateur LSNR Utilisateur Patrick Arlaud - Jerome Dupire Serveur dédié Utilisateur 28 LES SERVEURS ET LES SGBD Oracle Paralle Server (OPS) : Modèle d’architecture Structure générale d’une instance multi – threads d’Oracle Ö Le serveur multi – threads permet le partage d’un petit nombre de processus entre les différents utilisateurs (c’est une implémentation propre à Oracle du concept de thread). Ö Cela améliore les performances du système du fait de la diminution du nombre de processus que le système doit géré et donc aussi du moindre coût de commutation entre les threads (par rapport aux processus). Ö Le multiplexage entre les utilisateurs et les serveurs partagés est assuré par des processus dispatcher … Ö Deux queues, l’une pour les requêtes et l’autre pour les réponses assurent l’interface entre ces processus dispatcher et les serveurs partagés. Ö Le processus LSNR (Listener) est en permanence à l’écoute des demandes des utilisateurs et connecte l’utilisateur soit à un serveur dédié, soit à un dispatcher. CNAM 2009 - 2010 Patrick Arlaud - Jerome Dupire 29 LES SERVEURS ET LES SGBD Modèle d’architecture Oracle Paralle Server (OPS) : Ick0 Processus d’arrière plan d’Oracle Reco Reco Pmon Pmon Smon Smon System Global Area (SGA) Cache de la base de données S000 S000 Processus Processus Serveur Serveur partagé partagé Journal « refaire » Ckpt Ckpt Dbwr Dbwr Arch Arch Lgwr Lgwr Périphériques d’archivage D000 D000 Fichiers de contrôle Processus utilisateur Fichiers journal « refaire » Fichiers base de données CNAM 2009 - 2010 Patrick Arlaud - Jerome Dupire 30 LES SERVEURS ET LES SGBD Oracle Paralle Server (OPS) : Modèle d’architecture Les différents processus d’arrière plan d’Oracle implémentent les fonctions principales : Ö Ö Ö Ö Ö Ö Ö Ö Arch (Archive). Processus d’archivage qui enregistre le journal « refaire ». Un état de la base de données peut être reconstitué à partir de ce journal et d’une sauvegarde de la base. Cette sauvegarde est liée à une instance. Ckpt (CheckPoint). Processus de point de reprise qui signale à Dbwr qu’un point de reprise est à effectuer et met à jour les fichiers supportant la base de données ainsi que les fichiers de contrôle. Dbwr (Data Base Writer). Processus qui écrit les blocs modifiés du cache sur disque de façon asynchrone. Dans le contexte d’OPS, le Dbwr d’une instance écrit sur les blocs de données requis par d’autres instances. Lgwr (Log Writer). Processus qui alloue de l’espace dans les fichiers journaux et écrit le contenu des journaux. Pmon (Process Monitor). Processus qui assure le recouvrement en cas de défaillance d’un processus utilisateur. Reco (Distributed Transaction Recovery). Processus qui assure la récupération des transactions en attente du fait de défaillances du réseau ou d’un système. Smon (System Monitor). Processus qui assure le recouvrement d’une instance. Lock (Lock Process). Processus qui prend en compte la gestion du verrouillage. Jusqu’à 10 processus de verrouillage peuvent être utilisés. CNAM 2009 - 2010 Patrick Arlaud - Jerome Dupire 31 LES SERVEURS ET LES SGBD Oracle Paralle Server (OPS) : Modèle d’architecture Les différents processus d’arrière implémentent les fonctions principales : Ö Ö D000 (dispatcher). Ensemble de processus qui assurent le multiplexage des requêtes des utilisateurs sur les processus serveurs. S000 (Serveur). Ensemble de processus assurant l’exécution des requêtes des utilisateurs. Deux techniques sont mises en œuvre pour optimiser les performances en transactionnel : Ö Committement rapide et écriture différée (Fast commit / Deferred writte). Lors d’une validation de transaction. Oracle ne met à jour que le journal. La base de données n’est mise à jour que lorsque les blocs de données modifiés sont écrits par le gestionnaire du cache. Ö Committement groupé (Group Commit). Les écritures sur le journal relatives à plusieurs transactions sont regroupés afin que le committement des transactions ne nécessite qu’une seule écriture sur le journal. Il faut donc un nombre suffisant de transactions pour le committement puisse avoir lieu. Les écritures sur le journal sont alors réalisées en une seule opération d’entrées – sorties. CNAM 2009 - 2010 Patrick Arlaud - Jerome Dupire 32 LES SERVEURS ET LES SGBD Modèle d’architecture Oracle Paralle Server (OPS) : Architecture d’Oracle Parallel Server Instance B Instance A Nœud 1 Nœud 2 Serveurs Partagés Smon Smon Pmon Pmon SGA arch Lgwr DLM SGA Dbwr Dbwr CGS CGS CNAM 2009 - 2010 I/O IPC Lgwr arch DLM Parallel Server API Parallel Server API CM Serveurs Partagés IPC Patrick Arlaud - Jerome Dupire I/O CM 33 LES SERVEURS ET LES SGBD Modèle d’architecture Oracle Paralle Server (OPS) : Les principaux composants d’OPS sont : Ö Ö Ö Ö Ö Ö Le gestionnaire de cache parallèle (Parallel Cache Manager) (non représenté). Le groupe de service cluster CGS (Cluster Group Services). Le gestionnaire de verrous DLM (Distributed Lock Manager) qui coordonne les accès aux données entre les différentes instances. Le gestionnaire de cluster CM (Cluster Manager) surveille l’état du cluster et connaît les nœuds qui en font partie. I/O pour les mécanismes d’entrées – sorties. IPC pour les mécanismes de communication interprocessus. Les composants CM, I/O et IC font partie du système. L’interface entre ses différents composants et OPS est appelée Parallel Server API. Les processus de gestion de verrouillage gèrent des verrous distribués. Un verrou couvre plusieurs blocs de données. CNAM 2009 - 2010 Patrick Arlaud - Jerome Dupire 34