Problème de visibilité des transactions dans les clusters PostgreSQL Multi-AZ : Plongeon approfondi dans le rapport Jepsen

2025-05-03
Problème de visibilité des transactions dans les clusters PostgreSQL Multi-AZ : Plongeon approfondi dans le rapport Jepsen

Un rapport récent de Jepsen met en évidence un problème de longue date de visibilité des transactions dans les clusters Amazon RDS pour PostgreSQL Multi-AZ : l’ordre dans lequel les transactions deviennent visibles diffère entre le principal et les réplicas. Cela n’entraîne pas de perte de données ni de corruption, et n’affecte pas les déploiements mono-AZ ni les bases de données Aurora. Le problème est lié à l’anomalie « Long Fork », qui viole l’isolation par instantané. L’article détaille la cause racine (mises à jour asynchrones de ProcArray et WAL), illustrant comment cela conduit à des résultats incohérents (par exemple, Alice et Bob observant des classements différents d’un article de Hacker News). Bien que cela affecte rarement la correction de l’application, sa résolution est cruciale pour les fonctionnalités de niveau entreprise des clusters PostgreSQL. AWS collabore avec la communauté PostgreSQL pour résoudre ce problème, en proposant des solutions de contournement, telles que l’examen des hypothèses de l’application concernant l’ordre des transactions et l’utilisation de mécanismes de synchronisation explicites.