1 manipulations multibases et distribuées partie 3 witold litwin [email protected]
TRANSCRIPT
1
Manipulations multibases et distribuées
Partie 3
Manipulations multibases et distribuées
Partie 3
Witold [email protected]
2
Transactions
Contrôle de concurrence et de consistence:En présence d'autonomieEn absence de contrôle centralisé (global)
3
Transactions ACID
Opérations atomiques inexprimables avec une requête relationnelle.– Exécutées entièrement ou pas du tout
Préservant la consistance de la BD comme si l'usager était isolé sur la BD A effet durable sur la BD, une fois
terminées comme prévu
4
Primitives de gestion de transactions
BEGIN, COMMIT, ROLLBACKBEGIN TRANSACTION
UPDATE Compte1
Val = Val -100
IF SQLCODE <> 0 ROLLBACK ; EXIT ;
UPDATE Compte2
Val = Val + 100
IF SQLCODE <> 0 ROLLBACK ; EXIT;
COMMIT
5
Concurrence
Les BDs étant partagées, les transactions pourraient être exécutées:– l'une après l'autre– simultanément
» meilleures performances
» possibilités d'inconsistances dans la base
Théorie de concurrence analyse les problèmes d'accès simultané
6
Verrou mortel
Les transactions s'attendent mutuellement (deadlock)
Solution typique:– avorter une de transactions (la victime)– le choix est fait par le gestionnaire des verrous
(lock manager)
7
Les exécutions correctes
SérialisabilitéLes exécutions concurrentes sont correctes ssi
leur résultat est équivalent à celui d'une exécution sérielle
Le critère naturel et le plus populaire
8
Cas MBDArchitecture de référence
TM
TM TM TM
Appslocales
Appslocales
AppMDB
9
Cas MBDArchitecture de référence
TM
TM TM TM
Appslocales
Appslocales
AppMDB
Transaction
Sous-transact.
Sous-transact.
Sous-transact.
10
Cas MBDArchitecture de référence
TM
TM TM TM
Appslocales
Appslocales
AppMDB
Coordinateur
Participant Participant Participant
11
Quelles transactions ??Critères de réference :
Sérialisabilité ?ACID ?Temps global ?
Problème nouveau. Si à l'exécution d'une transaction T
- certaines sous-transactions commettent- une ou plus avortent
alors l'exécution de T est-elle correcte ou pas ?
12
Quelles transactions ??Réponse industrielle actuelle
Pas correcteIl faut le modèle ACID
Solutions techniquesVérouillage à deux phases (2-phase
locking)Committement à deux phases (2-phase
commit)Base de temps global (DCE)
13
Verrouillage à deux phases (2PL)
1-ère phase : tous les verrouillages2-ème phase : tous les déverrouillages
2-ème phase est le +souvent après lecommit (strict 2-PL). Pourquoi ?
Problème:Verrou mortel (2-PL)Mal adapté aux transactions longues
14
2-PCLe coordinateur envoie les N sous-
transactions et attend N messages EOTs(end-of-transaction)
Alors, il envoie N messages Vote
Chaque participant journalise sa sous-transaction et si tout est OK, alorsenvoie le message RTC (ready-to-commit)
Si N messages RTC sont reçus, alors lecoordinateur envoie le message Commit
15
Avantages
Atomicité garantieSimplicité
Problèmes
Blocage (2-PC)
A quel moment ??
Nombre de messages échangéesProtocoles de terminaison
16
Solutions
Nouveaux modèles de transaction (non-ACID) etnotamment:
Compensation & transactions flexibles Dates de valeur
Toute transaction T est munie d'une date de valeur V(par l'application ou le système)
quand la date V arrive, la transaction doit être terminéesinon elle est avortée par le système
Règle de prioritétoute T estampille toute donnée D utilisée avec V.dans le cas d'un conflit d'accès à D, la priorité va à T
avec V minimal.
17
si une transaction T2 avec V2 > V avait déjàestampillé D, alors T2 est localement avortéeet attend la fin de T.
Propriétés intéressantes:
Jamais de verrou mortelPossibilité de commitement implicite, sans
blocage, et sans messages, à la date de valeurApproche bien adapté également au BDs
temps-réelProblème pratique principal
Comment déterminer les dates de valeurEvitement de "livelock" (une transaction
toujours avortée et relancée)
18
T31T2820
W31(C)
W28 (A)
28
31
W31 (B)
Site 1 Site 2
t
19
T31T2820
W31(C)
W31(A)W28 (A)
28
31
W31 (B)
Site 1 Site 2
t
20
T31T2820
W31(C)
W31(A)W28 (A)
28 C28
31 C31
W31 (B)
Site 1 Site 2
t
21
T31T2820
W31(C)
W31(A)W28 (A)
28 C28
31 C31
W28 (B)
W31 (B)
Site 1 Site 2
t
22
T31T2820
W31(C)
W31(A)W28 (A)
28 C28
31 C31
W28 (B)
W31 (B)
A31
C28
C31
Site 1 Site 2
t
23
Protocoles & standards d'intéroperabilité MBD
La seule voie pour la coopération des SGBD ODBC (Open Database Connectivity) standard interface, &
protocole – bits et octets encodent :
» ordres SQL & tables résultats de ceux-ci» ordre de gestion de connections et d'exécution répartie» Locking & 1PC » API à 2 niveaux, jusque-là
"Middleware" supporté par pratiquement tous les producteurs de SGBD ou de "front-ends"
24
Protocoles & standards MBDIndustriels autres que ODBC
Data Access Language (DAL)– Disponible sur Apples depuis 1989
» un dialecte de SQL
Distributed Relational Database Access (DRDA)– IBM, une partie de System Application Arch. (SAA)
EDA-SQL– Inf. Builders ; un dialecte de SQL et une API
25
ODBCOrigines
ISO - RDA
Intl. Standard Org. Remote Database Access Protocol
commencé vers 1988 Draft Intl. Standard depuis
1991
26
ODBCOrigines
SQL-Access
ISO - RDA
SQL - Access GroupConsortium Privé de
40 Comp.Crée sous l'impulsion
de J. Gray en 1989
27
ODBCOrigines
ODBC
SQL-Access
ISO - RDA
Microsoftcoup de poing
sur la table
28
ODBC Architecture
Programme d'application
Gestionnaire de Drivers
Driver Driver Driver
Btrieve Excell Sybase
Interface ODBC
Single TierDriver Multiple Tier
Driver
Driver Passerelle
DB2
PasserelleMicroDécision
Systems
29
ODBC : quelques drivers
HP : ALLBASE/SQL CA : IDMS, DATACOM, VSAM, DL/1, TOTAL... CrossAccess ; IMS, VSAM, IDMS, RMS... IBM : DB2 DBA ODBC driver (Siemens-Nixdorf)
– INFORMIX, ORACLE, INGRES, SESAM/SQL, UDS/SQL...
DDA/ODBC driver (Bull)– ORACLE, INFORMIX, INGRES, DB2, RDB...
Contacte Microsoft pour la liste à jour
30
ODBC L'interface
– offre l'API unique aux applications» connections
» gestion de mémoires
» ordres SQL
Le gestionnaire de drivers– charge le driver approprié– passe les ordres de connection et de SQL– récupère les résultats en format ODBC
31
ODBC Le driver
– traduit les ordres SQL & API vers ceux de la source de données» décompose SQL
Single-tier
» passe SQL à la source multiple-tier
– SQL ODBC traduit
– SQL non-ODBC non-traduit ("pass through")
– traduit le format de données» à l'envoi» au retour
– traduit les codes d'erreur vers ceux standard
32
ODBCNiveaux de conformité
Fonctions offertes par un driver– API
» Core Tout le driver
» Level1» Level2
– SQL» Minimum
Tout le driver
» Core» Extended
33
ODBC Fonctions de Core API
Alloue et libère
– environnement, connections et "handles"» SQLAllocEnv, SQLAllocConnect, SQLAllocStmt
» SQLFreeStmt, SQLFreeConnect, SQLFreeEnv
– fonctions à executer avant toute connection Connecte au sources de données et déconnecte
» SQLConnect, SQLDisconnect
Prépare et exécute ordres SQL» SQLPrepare, SQLExecute, SQLExecDirect, SQLCancel,
SQLGetCursorName, SQLSetCursorName
Alloue mémoire pour les paramètres et résultats de SQL» SQLBindCol
34
ODBC Fonctions de Core API
Trouve des données dans le résultat» SQLFetch
Trouve les metadonnées du résultat» SQLRowCount, SQLNumResultsCols, SQLDescribeCol,
SQLColAttributes
Commit et rollback» SQLTransact
Gère les codes erreur» SQLError
35
ODBC Fonctions Level1 API
Fonctions de Core API avec un ordre suppl.» SQLBindParameter (prép. des ordres SQL)
Connections avec les boites de dialogue– spécifiques aux drivers
» SQLDriverConnect
Requêtes aux metadonnées de la connection et de l'ordre en cours » SQLSetConnectOption, SQLGetConnectOption
» SQLSetStatementOption, SQLGetStatementOption
Envoie d'une partie de paramètres de l'ordre ou du résultat– utile pour des données longues
» SQLPutData, SQLParamData, SQLGetData
36
ODBC Fonctions Level1 API
Requêtes au catalogues des attributs, tables et stats» SQLColumns, SQLSpecialColumns,
SQLStatistics,SQLTables,
Requêtes aux metadonnées du driver et de la source de données– types de données supportés, fonctions aggr., niveau de conformité
ODBC...
» SQLGetInfo, SQLGetFunctions,SQLGetTypeInfo
37
ODBC Fonctions Level2 API
Level1 "Browsing" de l'info sur la connection et les sources
disponibles» SQLBrowseConnect, SQLDataSources, SQLDrivers
Envoi des tables ("arrays") de valeurs de paramètres» SQLParamOptions
"Browsing" de l'info sur les paramètres et résultats– le nombre et les param. individuels
» SQLDescribeParam, SQLNumParams, SQLMoreResults
Gère les curseurs "scrolable"» , SQLSetScrollOptions, SQLSetPos, SQLExtendFetch
38
ODBC Fonctions Level2 API
Laisse-passer un dialecte de SQL– ordres spécifiques de la source de données
» SQLNativeSql Requêtes aux catalogues SQL
– privilèges, clés, procédures...
» SQLForeignKeys, SQLPrimaryKeys, SQLProcedureColumns,SQLProcedures, SQLTablePriviledges
Appel du traducteur DLL» SQLDriverToDataSource, SQLDataSourceToDriver
39
ODBC SQL : Niveau Grammaire Minimale
CREATE TABLE, DROP TABLE Simple SELECT, INSERT, UPDATE
SEARCHED, DELETE SEARCHED Expressions simples
– (A > B+C) Types de données
– CHAR, VARCHAR, LONG VARCHAR
40
ODBC SQL : Niveau Grammaire Core
Grammaire Minimale DDL
– ALTER TABLE, CREATE INDEX, DROP INDEX, CREATE VIEW, DROP VIEW, GRANT & REVOKE
DML– SELECT entier
» sous-requêtes et fonctions agrégats de SQL Access
Types de données– DECIMAL, NUMERIC, SMALLINT, INTEGER, REAL,
FLOAT, DOUBLE PRECISION
41
ODBC SQL : Niveau Grammaire Etendue
Grammaire Minimale DML
– outer joins,
– UPDATE, DELETE positionnées
– SELECT FOR UPDATE
– Unions Types de données
BIT, TINYINT, BIGINT, BINARY, VARBINARY, LONG VARBINARY, DATE, TIME, TIMESTAMP
42
ODBCConception d'un driver
Les fonctions de ODBC (API & SQL) sont prises en charge– par le Gestionnaire
– par le driver» surtout la conversion de SQL et de représentation de données
Les drivers ne sont pas en principe fournis par Microsoft
Plusieurs vendeurs peuvent proposer un driver vers une même source, p.e. Sybase
43
ODBCConception d'un driver
Les drivers vers une même source peuvent différer en– niveau de conformité– performances
les différences en performances peuvent résulter de– stratégie de réception de tuples
» sur demande ou "read-ahead"
» existence et taille du cache pour "read-ahead" ou une copie d'une table
– optimisation locale de requêtes» jointures internes et externes
44
ODBCLimitations de V2
Une connection per SGBD– mais une application peut ouvrir plusieurs connections
simultanément
Ordres SQL-ODBC sont monobase– sauf les "passe-through" vers un SGMB
Requêtes MBD doivent être décomposées par le système local– l'idée peu performante
» connections multiples
» jointures MBD
Absence de 2PC
45
ODBCPour en savoir +
ODBC 2.0 Programmer's Reference and SDK Guide. Microsoft Press, 900. $25
Geiger, K. Inside ODBC.Microsoft Press, 482 & CD-ROM. $39.95
46
Autres protocoles notables
OLE & DDE– de Microsoft– Permettent d'échanger les données entre un
SGBD et les applications externes» tableur, traitement de texte, gestionnaire d'images
CORBA– tentative de standard multicompagnie– orienté l'échange distribué des objets
47
DCE
Distributed Computing Environment Un ensemble de services supportes par les
principaux constructeurs Tout particulièrement
– SGF distribué– Les serveurs de temps unique
DCE sera probablement largement appliqué
48
DCE Reference Architecture
File service
Timeservice
Directory service
Securityservice
RPC &authentication
DCE Threads
Host Operating system and networking
Hardware
49
DCE Reference Architecture
Les DCE services s'utilisent en interne– Directory Service (DS) utilise RPC pour la
communication entre les serveurs– RPC utilise DS pour connaître la destination d'un
appel– Time Service (TS) utilise les Security Service (SS)
pour déterminer qui peut régler une horloge– SS utilise TS pour donner les permissions à courte
terme ("short life-time tickets")
50
DCE Reference Architecture
Les machines, usagers, fichiers et autres ressources sont groupés en "Cells" selon
– But fonctionnel
– Sécurité
– Performance» Géographie
– Administration» choix de Cell Administrator
Cell peut correspondre à une multibase
Ordinateur
Chaussure
Cellules organisées par produit
51
DCE Distributed Time Service
Maintient la synchronisation des horloges Basé sur les Time Servers qui veuillent sur
– la synchronisation mutuelle des horloges
– la synchronisation avec le temps réel
Offre 33 fonctions (library calls) aux applications
Le modèle de temps – temps à intervalle
» quelle heure est-il ? entre 9:30 et 9:31
– représenté sur 64 bits
– pas d'ordre total» problème pour les dates de valeur
52
DCE Distributed Time Format
An
née
Moi
s
Jou
rH
eure
Min
.S
ec, (
pré
c. d
e 1
mse
c.
Dif
f. /
GM
T
Ind
ic. d
'imp
réci
sion
Err
eur
max
(en
sec
.)
1995 -11 -02-14:23:43.123 - 01:00 I 003.600
International Standard 8601 pour Universal Coordinated Time (UTC)
53
DCE Time Adjustement Algorithm
Time Clerks (TC)– démons sur les machines-client
Time Servers (TS)– démons en charge de gérer la base de UTC
» locaux (dans les Cells)
» globaux avec peut-être une interface vers les sources exterieures
de UTC
– ondes hertziennes diffusées dans les pays industriels
54
DCE Time Clerk Synchronization
Contacte tous les TS sur le LAN ou dans la Cell
Delete toute réponse sans intersection avec une autre
Calcule l'intersection max du reste
Prend la valeur du milieu comme nouveau UTC
Fait une correction graduelle» p.e. < 5 msec. par tick d'horloge
UTC1
UTC2
UTC3
UTC4
UTC
UTC client
55
DCE Directory Service
Deux types de répertoires & services– Cell Directory Service (CDS)
– Global Directory Service (GDS)» schéma de nommage X500
Services auxiliaires– Domain Name System (DNS)
» utilisé par GDS schéma de nommage Internet
– Global Directory Agent» utilisé par CDS pour localiser les noms
CDS
GDA
Cell
GDA
CDS
Cell
DNS
GDS
56
DCE File Service
Deux partie conceptuelles– FMS local sur chaque noeud
» dit Episode» une modernisation de FMS de Unix
– FMS global» extension de AFS » indépendance de localisation dans une Cell» duplication possible d'un fichier entre les Cells» nommage DCE» notion de client et de serveur
57
DCE Security Service
Composantes– Authentication Server (AS)
» donne des tickets
– Privilege Server (PS)
» issue des privilèges d'accès et d'execution
Privilege Attribute Certificates
» exigés pour execs. RPC
– Login Server (LS)
» gère les connections et vérifie les tickets et les privilèges
DCEClient
AS
PS
LS
1
2
3
58
DCEPour en savoir +
Tanenbaum, A. Distributed Operating Systems. Prentice Hall, 1994, 614. $57
59
Conclusion
Manipulations multibases - parmi les plus importantes directions R & D dans les SGBDs
Autres mots-clés:– Interopérabilité– Intégration– Bases Réparties Hétérogènes
Encore beaucoup à apprendre et à faire
60
Exercices Voir tous ceux déjà dans le texte Est-ce que cette requête est une transaction ACID ?
Use Banks vital cicUpdate cl*set street = 'Charles de Gaulle"where street = 'Etoile‘
Proposez un exemple de requête multibase où le modèle ACID convient et un il il ne convient pas En quoi consiste le blocage d’un participant au 2PC ? A quoi sert un protocole de terminaison si on ajoute un au 2PC standard ? Proposez un protocole de terminaison Prouvez qu’il n’y a pas de protocole de terminaison qui éviterait à coup sûr le blocage d’un
participant. Prouvez que le protocole de dates de valeur est libre de verrou mortel. A quoi sert ODBC ? L’utilité de fonctions API par rapport aux celles dites SQL de ODBC Comment pourrait-on appeler autrement les drivers CrossAccess ? Comment la DCE gère la base de temps globale ?
FIN