Consultas distribuídas no Aurora PostgreSQL Limitless Database
As consultas distribuídas são executadas em um roteador e em mais de um fragmento. A consulta é recebida por um dos roteadores. O roteador cria e gerencia a transação distribuída, que é enviada aos fragmentos participantes. Os fragmentos criam uma transação local com o contexto fornecido pelo roteador e a consulta é executada.
Quando a transação é confirmada, o roteador usa um protocolo de confirmação em duas fases otimizado, se necessário, e um controle de simultaneidade de várias versões (MVCC) baseado em tempo para fornecer semântica ACID
O MVCC baseado em tempo registra o horário de confirmação de cada transação e usa o horário de início da transação para gerar o horário do snapshot dos dados. Para identificar se uma transação está confirmada (visível) dado o snapshot do leitor, o banco de dados compara o horário de confirmação com o horário do snapshot. Se o horário de confirmação for menor que o horário do snapshot do leitor, a transação estará visível; caso contrário, invisível. Sob esse protocolo, você sempre verá dados fortemente consistentes no Aurora PostgreSQL Limitless Database.