Dans le cadre d’une base de données prise en compte par un groupe de disponibilité Always on.
Dans la première partie de cette article je présentai le parcours de données modifiées pour une base de données stand alone, c’est à dire pour un fonctionnement classique. Ici je présente ce parcours pour des données d’une base de données inclue dans un groupe de disponibilité.
Sur cette page nous considérons un groupe de disponibilité configuré en synchrone.
Dans les grandes lignes, les données sont mises à jour sur les pages concernées en mémoire et, en parallèle, les transactions sont écrites sur le journal de transactions de la base de données, sur le primaire. Ensuite elles le sont sur les secondaires. Les données sont validées (par un commit) sur l’instance primaire et les instances secondaires seulement, et seulement lorsque l’écriture sur le journal de transactions des secondaires (en mode synchrone) est effectif.
Ci-dessous les étapes de l’évolution de données dans le cadre d’un groupe de disponibilité Always on.
- Exécution de la requête qui provoque les mises à jour.
- Chargement en mémoire des pages concernées.
- Modification de ces pages (en mémoire) et écriture sur le journal de transactions du primaire.
- Écriture de la transaction sur le journal de transactions des secondaires.
- Les pages concernés sont chargés en mémoire sur les secondaires.
- Pendant les deux étapes précédentes (4 et 5) le checkpoint et le commit s’exécutent indépendamment l’un de l’autre sur le primaire. A partir de cette étape 6 c’est au tour du secondaire de jouer ces deux actions, le commit et le checkpoint, toujours parallèlement et indépendamment l’un de l’autre (voir la première partie de cette article pour davantage de considérations à leurs propos).
- C’est seulement lors du commit sur les secondaires (configurés en mode synchrone) que la mise à jour est validée. Comme vu dans des étapes précédentes les données sont écrites sur le disque lors de l’exécution du checkpoint, sur le primaire ou/et sur le secondaire, qu’un commit soit intervenu ou non. Dans ce dernière cas, la lisibilité de la données dépend du niveau d’isolation.
Laisser un commentaire