Aurora DSQL および PostgreSQL
Aurora DSQL は、トランザクションワークロード用に設計された PostgreSQL 互換の分散リレーショナルデータベースです。Aurora DSQL は、パーサー、プランナー、オプティマイザー、型システムなどの主要な PostgreSQL コンポーネントを使用します。
Aurora DSQL 設計により、サポートされているすべての PostgreSQL 構文によって互換性のある動作が提供されるため、同一のクエリ結果が得られます。例えば、Aurora DSQL は PostgreSQL と同様の型変換、算術演算、数値の精度とスケールを提供します。偏差は文書化されます。
Aurora DSQL では、オプティミスティック同時実行制御や分散スキーマ管理などの高度な機能も導入されています。これらの機能により、PostgreSQL の使い慣れたツールを使用しながら、最新のクラウドネイティブな分散アプリケーションに必要なパフォーマンスとスケーラビリティを活用できます。
PostgreSQL の互換性に関するハイライト
Aurora DSQL は現在 PostgreSQL バージョン 16 に基づいています。主な互換性は次のとおりです。
- ワイヤプロトコル
-
Aurora DSQL は、標準の PostgreSQL v3 ワイヤプロトコルを使用します。これにより、標準の PostgreSQL クライアント、ドライバー、ツールとの統合が可能になります。例えば、Aurora DSQL は
psql
、pgjdbc
、およびpsycopg
と互換性があります。 - SQL 互換性
-
Aurora DSQL は、トランザクションワークロードで一般的に使用される標準 PostgreSQL の式と関数を幅広くサポートしています。サポートされている SQL 式は、以下を含む PostgreSQL と同じ結果を生成します。
-
null の処理
-
ソート順の動作
-
数値オペレーションのスケールと精度
-
文字列オペレーションの同等性
詳細については、「Aurora DSQL での SQL 機能の互換性」を参照してください。
-
- トランザクション管理
-
Aurora DSQL は、ACID トランザクションや PostgreSQL Repeatable Read に相当する分離レベルなど、PostgreSQL の主な特性を保持します。詳細については、「Aurora DSQL での同時実行制御」を参照してください。
アーキテクチャ上の主な相違点
Aurora DSQL の分散型で共有なしの設計では、従来の PostgreSQL といくつかの基本的な違いがあります。これらの違いは Aurora DSQL アーキテクチャに不可欠であり、パフォーマンスとスケーラビリティにおいて多くの利点を提供します。主な違いは次のとおりです。
- オプティミスティック同時実行制御 (OCC)
-
Aurora DSQL は、オプティミスティック同時実行制御モデルを使用します。このロックフリーアプローチにより、トランザクションが互いにブロックされるのを防ぎ、デッドロックを排除し、高スループットの並列実行を可能にします。これらの機能により、Aurora DSQL は大規模で一貫したパフォーマンスを必要とするアプリケーションに特に役立ちます。その他の例については、「Aurora DSQL での同時実行制御」を参照してください。
- 非同期 DDL オペレーション
-
Aurora DSQL は DDL オペレーションを非同期的に実行します。これにより、スキーマの変更中に中断のない読み取りと書き込みが可能になります。分散アーキテクチャにより、Aurora DSQL は次のアクションを実行できます。
-
DDL オペレーションをバックグラウンドタスクとして実行し、中断を最小限に抑えます。
-
カタログの変更を強力な整合性のある分散トランザクションとして調整します。これにより、障害時や同時操作時でも、すべてのノードでアトミックな可視性が確保されます。
-
コンピューティングレイヤーとストレージレイヤーが分離された複数のアベイラビリティーゾーン間で、完全に分散されたリーダーレスな方法で運用します。
詳細については、「Aurora DSQL での DDL および分散トランザクション」を参照してください。
-