les serveurs et les sgbd - Deptinfo

publicité
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
Téléchargement