4. Les composants de l'architecture d'un système de bases de données
123
Tenue du journal
Dans l'exemple des transactions comptables simultanées TRX_1
et TRX_2, nous définissons comme granules les comptes a, b et c. A la
figure 4-7, le journal de l'objet b contient quatre entrées (voir aussi la
figure 4-6). Tout d'abord la transaction TRX_2 lit la valeur de b,
TRX_1 lit ensuite la même valeur avant que la transaction TRX_2
enregistre la valeur modifiée de b. Enfin, selon la quatrième et
dernière entrée dans le journal, la transaction TRX_1 enregistre la
valeur de b qu'elle vient de modifier, écrasant celle enregistrée
auparavant par la transaction TRX_2.
Visualisation par
un graphe de
précédence
L’examen du journal permet d’analyser des conflits entre les
transactions concurrentes de manière simple. Dans un graphe de
précédence (precedence graph, en anglais) nous représentons les
transactions par des nœuds et les conflits potentiels READ_WRITE ou
WRITE_WRITE par des arcs orientés (flèches curvilignes). Pour un
objet donné, un WRITE qui succède à un READ ou à un WRITE peut
être source de conflit. En revanche, plusieurs lectures successives ne
sont généralement pas conflictuelles. C'est pourquoi un graphe de
précédence ne contient aucun arc orienté READ_READ.
Figure 4-7
Analyse du journal
à l’aide d’un graphe
de précédence
Les arcs
READ_WRITE et
WRITE_WRITE
peuvent générer
des conflits
Dans la figure 4-7, un graphe de précédence a été dessiné à partir
du journal de l'objet b pour les transactions comptables TRX_1 et
TRX_2. En partant du nœud TRX_1, un READ de l'objet b est suivi d'un
WRITE du même objet par la transaction TRX_2. Ces deux opérations
successives sont représentées par un arc orienté reliant le nœud
LOG(b)
TRX_2: READ
TRX_1: READ
TRX_2: WRITE
TRX_1: WRITE
Journal
Graphe de précédence
pour la valeur de donnée b
TRX_2
TRX_1
Arc
WRITE-WRITE
Arc
READ-WRITE
Arc READ_WRITE: à "TRX_1: Read" succède "TRX_2: Write"
Arc WRITE_WRITE: à "TRX_2: Write" succède "TRX_1: Write"
123
Tenue du journal
Dans l'exemple des transactions comptables simultanées TRX_1
et TRX_2, nous définissons comme granules les comptes a, b et c. A la
figure 4-7, le journal de l'objet b contient quatre entrées (voir aussi la
figure 4-6). Tout d'abord la transaction TRX_2 lit la valeur de b,
TRX_1 lit ensuite la même valeur avant que la transaction TRX_2
enregistre la valeur modifiée de b. Enfin, selon la quatrième et
dernière entrée dans le journal, la transaction TRX_1 enregistre la
valeur de b qu'elle vient de modifier, écrasant celle enregistrée
auparavant par la transaction TRX_2.
Visualisation par
un graphe de
précédence
L’examen du journal permet d’analyser des conflits entre les
transactions concurrentes de manière simple. Dans un graphe de
précédence (precedence graph, en anglais) nous représentons les
transactions par des nœuds et les conflits potentiels READ_WRITE ou
WRITE_WRITE par des arcs orientés (flèches curvilignes). Pour un
objet donné, un WRITE qui succède à un READ ou à un WRITE peut
être source de conflit. En revanche, plusieurs lectures successives ne
sont généralement pas conflictuelles. C'est pourquoi un graphe de
précédence ne contient aucun arc orienté READ_READ.
Figure 4-7
Analyse du journal
à l’aide d’un graphe
de précédence
Les arcs
READ_WRITE et
WRITE_WRITE
peuvent générer
des conflits
Dans la figure 4-7, un graphe de précédence a été dessiné à partir
du journal de l'objet b pour les transactions comptables TRX_1 et
TRX_2. En partant du nœud TRX_1, un READ de l'objet b est suivi d'un
WRITE du même objet par la transaction TRX_2. Ces deux opérations
successives sont représentées par un arc orienté reliant le nœud
LOG(b)
TRX_2: READ
TRX_1: READ
TRX_2: WRITE
TRX_1: WRITE
Journal
Graphe de précédence
pour la valeur de donnée b
TRX_2
TRX_1
Arc
WRITE-WRITE
Arc
READ-WRITE
Arc READ_WRITE: à "TRX_1: Read" succède "TRX_2: Write"
Arc WRITE_WRITE: à "TRX_2: Write" succède "TRX_1: Write"
