Beruflich Dokumente
Kultur Dokumente
Partie 3
Witold Litwin
Witold.Litwin@dauphine.fr
Transactions
Contrle de concurrence et de consistence: En prsence d'autonomie En absence de contrle centralis (global)
Transactions ACID
Oprations
Prservant
la consistance de la BD comme si l'usager tait isol sur la BD A effet durable sur la BD, une fois termines comme prvu
COMMIT, ROLLBACK
BEGIN TRANSACTION
UPDATE Compte1 Val = Val -100 IF SQLCODE <> 0 ROLLBACK ; EXIT ; UPDATE Compte2 Val = Val + 100 IF SQLCODE <> 0 ROLLBACK ; EXIT;
COMMIT
Concurrence
Les
Thorie
Verrou mortel
Les
Les excutions concurrentes sont correctes ssi leur rsultat est quivalent celui d'une excution srielle
Le
Cas MBD
Architecture de rfrence
App MDB Apps locales TM TM Apps locales TM TM
Cas MBD
Architecture de rfrence
App MDB Apps locales
SousTM transact.
Transaction TM
Apps locales
SousTM transact.
SousTM transact.
Cas MBD
Architecture de rfrence
App MDB Apps locales
Participant TM
Coordinateur TM
Apps locales
Participant TM
TM Participant
10
Quelles transactions ??
Critres de rference : Srialisabilit ? ACID ? Temps global ? Problme nouveau. Si l'excution d'une transaction T - certaines sous-transactions commettent - une ou plus avortent alors l'excution de T est-elle correcte ou pas ?
11
Quelles transactions ??
Rponse industrielle actuelle Pas correcte Il faut le modle ACID Solutions techniques Vrouillage deux phases (2-phase locking) Committement deux phases (2-phase commit) Base de temps global (DCE)
12
2-me phase est le +souvent aprs le commit (strict 2-PL). Pourquoi ? Problme:
Verrou mortel (2-PL) Mal adapt aux transactions longues
13
2-PC
Le coordinateur envoie les N soustransactions et attend N messages EOTs (end-of-transaction) Alors, il envoie N messages Vote Chaque participant journalise sa soustransaction et si tout est OK, alors envoie le message RTC (ready-tocommit) Si N messages RTC sont reus, alors le coordinateur envoie le message Commit
14
Avantages
Atomicit garantie Simplicit
Problmes
Blocage (2-PC) A quel moment ?? Nombre de messages changes Protocoles de terminaison
15
Solutions
Nouveaux modles de transaction (non-ACID) et notamment: Compensation & transactions flexibles Dates de valeur
Toute transaction T est munie d'une date de valeur V (par l'application ou le systme)
quand la date V arrive, la transaction doit tre termine sinon elle est avorte par le systme toute T estampille toute donne D utilise avec V. dans le cas d'un conflit d'accs D, la priorit va T avec V minimal.
Rgle de priorit
16
si une transaction T2 avec V2 > V avait dj estampill D, alors T2 est localement avorte et attend la fin de T. Proprits intressantes: Jamais de verrou mortel Possibilit de commitement implicite, sans blocage, et sans messages, la date de valeur Approche bien adapt galement au BDs temps-rel Problme pratique principal Comment dterminer les dates de valeur Evitement de "livelock" (une transaction toujours avorte et relance)
17
Site 1
Site 2
20
W31(C)
T31
T28
W28 (A)
W31 (B)
28
31
t
18
Site 1
Site 2
20
W31(C) W31(A)
T31
T28
W28 (A)
W31 (B)
28
31
t
19
Site 1
Site 2
20
W31(C) W31(A)
T31
T28
W28 (A)
W31 (B)
28
C28 C31
31
t
20
Site 1
Site 2
20
W31(C) W31(A)
T31
T28
W28 (A)
28
C28 C31
31
t
21
Site 1
Site 2
20
W31(C) W31(A)
T31
T28
W28 (A)
28
C28
31
t
22
seule voie pour la coopration des SGBD ODBC (Open Database Connectivity) standard interface, & protocole
bits et octets encodent :
ordres SQL & tables rsultats de ceux-ci ordre de gestion de connections et d'excution rpartie Locking & 1PC API 2 niveaux, jusque-l
(DRDA)
IBM, une partie de System Application Arch. (SAA)
EDA-SQL
ODBC
Origines
ISO - RDA Intl. Standard Org. Remote Database Access Protocol commenc vers 1988 Draft Intl. Standard depuis 1991
25
ODBC
Origines
SQL - Access Group Consortium Priv de 40 Comp. Cre sous l'impulsion de J. Gray en 1989 SQL-Access
ISO - RDA
26
ODBC
Origines
Microsoft coup de poing sur la table
ODBC
SQL-Access
ISO - RDA
27
ODBC Architecture
Programme d'application Interface ODBC Gestionnaire de Drivers Driver Driver
Single Tier Driver
Driver Driver
Multiple Tier Driver
Passerelle
Btrieve
Excell
Sybase
Passerelle MicroDcision Systems
DB2
28
driver (Bull)
ORACLE, INFORMIX, INGRES, DB2, RDB... Contacte Microsoft pour la liste jour
29
ODBC
L'interface
gestionnaire de drivers charge le driver appropri passe les ordres de connection et de SQL rcupre les rsultats en format ODBC
30
ODBC
Le
driver
traduit les ordres SQL & API vers ceux de la source de donnes
dcompose SQL
Single-tier
ODBC
Niveaux de conformit
Fonctions
API
Core
Tout le driver
Level1 Level2
SQL
Minimum
Tout le driver
32
Core Extended
ODBC
Fonctions de Core API
33
ODBC
Fonctions de Core API
Commit et rollback
SQLTransact
erreur
34
ODBC
Fonctions Level1 API
35
ODBC
Fonctions Level1 API
36
ODBC
Fonctions Level2 API
37
ODBC
Fonctions Level2 API
38
TABLE, DROP TABLE Simple SELECT, INSERT, UPDATE SEARCHED, DELETE SEARCHED Expressions simples
(A > B+C)
Types
de donnes
39
Minimale
ALTER TABLE, CREATE INDEX, DROP INDEX, CREATE VIEW, DROP VIEW, GRANT & REVOKE DML SELECT entier
sous-requtes et fonctions agrgats de SQL Access
Types
de donnes
40
Minimale
DML
Types
de donnes
BIT, TINYINT, BIGINT, BINARY, VARBINARY, LONG VARBINARY, DATE, TIME, TIMESTAMP 41
ODBC
Conception d'un driver
Les
Les
drivers ne sont pas en principe fournis par Microsoft Plusieurs vendeurs peuvent proposer un driver vers une mme source, p.e. Sybase
42
ODBC
Conception d'un driver
Les
drivers vers une mme source peuvent diffrer en niveau de conformit performances les diffrences en performances peuvent rsulter de stratgie de rception de tuples
sur demande ou "read-ahead" existence et taille du cache
ODBC
Limitations de V2
Une
44
Absence
de 2PC
ODBC
Pour en savoir +
ODBC
2.0 Programmer's Reference and SDK Guide. Microsoft Press, 900. $25 Geiger, K. Inside ODBC.Microsoft Press, 482 & CDROM. $39.95
45
& DDE
de Microsoft Permettent d'changer les donnes entre un SGBD et les applications externes
tableur, traitement de texte, gestionnaire d'images
CORBA
DCE
Distributed
Computing Environment Un ensemble de services supportes par les principaux constructeurs Tout particulirement
SGF distribu Les serveurs de temps unique
DCE
47
DCE
Reference Architecture
File service Time Directory Security service service service RPC & authentication DCE Threads Host Operating system and networking Hardware
48
DCE
Reference Architecture
Les
Directory Service (DS) utilise RPC pour la communication entre les serveurs RPC utilise DS pour connatre la destination d'un appel Time Service (TS) utilise les Security Service (SS) pour dterminer qui peut rgler une horloge SS utilise TS pour donner les permissions courte terme ("short life-time tickets")
49
DCE
Reference Architecture
Les machines, usagers, fichiers et autres ressources sont groups en "Cells" selon But fonctionnel Scurit Performance
Gographie
Ordinateur
Chaussure
Administration
choix de Cell Administrator
50
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 rel
Le
modle de temps
quelle heure est-il ?
temps intervalle
entre 9:30 et 9:31
DCE
Distributed Time Format
Mois Jour Heure Min. Sec, (prc. de 1 msec. Indic. d'imprcision Erreur max (en sec.)
Diff. / GMT
Anne
DCE
Time Adjustement Algorithm
Time Time
Clerks (TC)
Servers (TS)
avec peut-tre une interface vers les sources exterieures de UTC ondes hertziennes diffuses dans les pays industriels
53
DCE
Time Clerk Synchronization
Contacte
tous les TS sur le LAN ou dans la Cell Delete toute rponse 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
54
UTC client
DCE
Directory Service
Cell
CDS
GDA DNS
Services
auxiliaires
55
DCE
File Service
Deux
partie conceptuelles
FMS global
extension de AFS indpendance de localisation dans une Cell duplication possible d'un fichier entre les Cells nommage DCE notion de client et de serveur 56
DCE
Security Service
Composantes Authentication Server (AS) donne des tickets Privilege Server (PS) issue des privilges d'accs et d'execution
AS 1 DCE Client 3 LS 2 PS
exigs pour execs. RPC Login Server (LS) gre les connections et vrifie les tickets et les privilges 57
DCE
Pour en savoir +
Tanenbaum,
A.
58
Conclusion
Manipulations
multibases - parmi les plus importantes directions R & D dans les SGBDs Autres mots-cls:
Interoprabilit Intgration Bases Rparties Htrognes
Encore 59
Exercices
Voir tous ceux dj dans le texte Est-ce que cette requte est une transaction ACID ?
Use Banks vital cic Update cl* set street = 'Charles de Gaulle" where street = 'Etoile Proposez un exemple de requte multibase o le modle ACID convient et un il il ne convient pas En quoi consiste le blocage dun participant au 2PC ? A quoi sert un protocole de terminaison si on ajoute un au 2PC standard ? Proposez un protocole de terminaison Prouvez quil ny a pas de protocole de terminaison qui viterait coup sr le blocage dun participant. Prouvez que le protocole de dates de valeur est libre de verrou mortel. A quoi sert ODBC ? Lutilit de fonctions API par rapport aux celles dites SQL de ODBC Comment pourrait-on appeler autrement les drivers CrossAccess ? Comment la DCE gre la base de temps globale ?
60
FIN