56.4. Carte de visibilité
Chaque relation a une carte de visibilité (VM acronyme de Visibility
Map) pour garder trace des pages contenant
seulement des lignes connues pour être visibles par toutes les
transactions actives. Elle est stockée en dehors du fichier de
données dans un fichier séparé nommé suivant le numéro
relfilenode de la relation, auquel est ajouté le suffixe
_vm. Par exemple, si le relfilenode de
la relation est 12345, la VM est stockée dans un fichier appelé
12345_vm, dans le même répertoire que
celui du fichier de données. Notez que les index n'ont pas de
VM.
La carte de visibilité enregistre un bit par page. Un bit à 1
signifie que toutes les lignes de la page sont visibles par
toutes les transactions. Cela signifie que le page ne contient
pas de lignes nécessitant un VACUUM. Cette information peut
aussi être utilisé par les parcours
d'index seuls pour répondre aux requêtes utilisant
seulement l'enregistrement de l'index.
Chaque fois qu'un bit est à 1, la condition est vraie à coup
sûr. Par contre, dans le cas contraire, la condition peut être
vraie comme fausse. Les bits de la carte de visibilité ne sont
initialisés que par le VACUUM, mais sont désinitialisés par
toutes opérations de modification des données sur une page.