Problema de Visibilidade de Transações em Cluster PostgreSQL Multi-AZ: Um mergulho profundo no relatório Jepsen

Um relatório recente da Jepsen destaca um problema de longa data de visibilidade de transações em clusters Amazon RDS para PostgreSQL Multi-AZ: a ordem em que as transações se tornam visíveis difere entre o primário e as réplicas. Isso não causa perda de dados ou corrupção e não afeta implantações de AZ único ou bancos de dados Aurora. O problema está relacionado à anomalia 'Long Fork', violando o Isolamento de Instantâneo. A postagem detalha a causa raiz (atualizações assíncronas para ProcArray e WAL), ilustrando como isso leva a resultados inconsistentes (por exemplo, Alice e Bob observando diferentes classificações de um artigo do Hacker News). Embora raramente afete a correção do aplicativo, corrigi-lo é crucial para recursos de nível empresarial de clusters PostgreSQL. A AWS está colaborando com a comunidade PostgreSQL para resolver isso, oferecendo soluções alternativas, como revisar as suposições do aplicativo sobre a ordenação de transações e usar mecanismos de sincronização explícitos.