Aurora PostgreSQL Limitless Database의 분산 쿼리
분산 쿼리는 라우터와 둘 이상의 샤드에서 실행됩니다. 쿼리는 라우터 중 하나에서 수신합니다. 라우터는 분산 트랜잭션을 만들고 관리하며, 이는 참여 샤드로 전송됩니다. 샤드는 라우터에서 제공하는 컨텍스트로 로컬 트랜잭션을 만들고 쿼리가 실행됩니다.
트랜잭션이 커밋되면 라우터는 필요한 경우 최적화된 두 단계 커밋 프로토콜과 시간 기반 다중 버전 동시성 제어(MVCC)를 사용하여 분산 데이터베이스 시스템에서 ACID
시간 기반 MVCC는 각 트랜잭션의 커밋 시간을 기록하고 트랜잭션 시작 시간을 사용하여 데이터 스냅샷 시간을 생성합니다. 리더의 스냅샷이 주어졌을 때 트랜잭션이 커밋(가시적)되었는지를 식별하기 위해 데이터베이스는 커밋 시간을 스냅샷 시간과 비교합니다. 커밋 시간이 리더의 스냅샷 시간보다 전이면 보이지만 그렇지 않으면 보이지 않습니다. 이 프로토콜에서는 항상 Aurora PostgreSQL Limitless Database에서 매우 일관된 데이터를 볼 수 있습니다.