25.2. Avantages futurs

L'opération UNDO n'est pas implémentée. Cela signifie que les changements faits par des transactions avortées occuperont toujours un espace sur le disque et qu'un fichier permanent pg_clog qui contient le statut des transactions, est toujours nécessaire ; de plus, les identifiants de transactions ne peuvent plus être réutilisés. Une fois que UNDO sera implémenté, il ne sera plus requis que pg_clog soit permanent ; il sera possible d'effacer pg_clog à l'arrêt. (Cependant, l'urgence de ce souci a diminué considérablement avec l'adoption d'une méthode de stockage segmenté pour pg_clog : il n'est plus nécessaire de conserver de vieilles entrées de pg_clog pour toujours.)

Avec UNDO, il sera aussi possible d'implémenter des points de sauvegardes pour permettre des annulations partielles d'opérations de transactions invalides (erreurs d'analyse syntaxique causées par des commandes mal saisies, insertions de clés primaire/unique en double et ainsi de suite) avec la possibilité de continuer ou de valider les opérations correctes faites par la transaction avant l'erreur. À présent, une erreur quelconque invalide la transaction toute entière et il est requis de l'annuler.

WAL offre l'opportunité d'une nouvelle méthode pour la sauvegarde et la restauration en ligne de la base (BAR - Backup And Restore). Pour utiliser cette méthode, on devrait sauvegarder périodiquement les fichiers de données sur un autre disque, une bande ou un autre hôte et archiver aussi les journaux WAL. La copie du fichier de la base et le journal archivé pourront être utilisés pour restaurer comme on le ferait après une défaillance. Chaque fois qu'une copie d'un fichier de la base est faite, les vieux journaux peuvent être supprimés. Implémenter ce service nécessitera l'écriture de traces pour les fichiers de données et pour la création et la suppression d'index ; il sera aussi nécéssaire de développer une méthode pour copier les fichiers de données (les commandes de copie du système d'exploitation ne sont pas recommandées).

La difficulté, dans la manière d'obtenir ces avantages, réside dans le fait qu'ils requièrent de sauvegarder les entrées WAL pour des périodes de temps considérables (par exemple, aussi longtemps que la plus ancienne transaction possible si une transaction UNDO est recherchée). Le format actuel de WAL est extrêmement étendu depuis qu'il inclue de nombreux instantanés de pages disques. Ce n'est pas une préoccupation sérieuse pour le moment puisque les entrées ont seulement besoin d'être gardées pour un ou deux intervalles de points de contrôles mais pour réaliser ces futurs avantages une sorte de format WAL compressé sera nécéssaire.