Aurora PostgreSQL Limitless Database の分散クエリ - Amazon Aurora

Aurora PostgreSQL Limitless Database の分散クエリ

分散クエリは、1 つのルーターと複数のシャードで実行されます。クエリは、いずれかのルーターによって受信されます。ルーターは分散トランザクションを作成して管理し、参加シャードに送信されます。シャードは、ルーターによって提供されるコンテキストを使用してローカルトランザクションを作成し、クエリが実行されます。

トランザクションがコミットされると、ルーターは必要に応じて最適化された 2 フェーズコミットプロトコルと、時間ベースのマルチバージョン同時実行制御 (MVCC) を使用して、分散データベースシステムに ACID セマンティクスを提供します。

時間ベースの MVCC は、各トランザクションのコミット時間を記録し、トランザクションの開始時間を使用してデータスナップショット時間を生成します。リーダーのスナップショットに基づいてトランザクションがコミットされている (表示可能) かどうかを確認するために、データベースはそのコミット時間とスナップショット時間を比較します。コミット時間がリーダーのスナップショット時間より短い場合は表示され、それ以外の場合は表示されません。このプロトコルでは、Aurora PostgreSQL Limitless Database で常に強い整合性を持つデータが表示されることが予想されます。