建築

公開日: 2022-02-28 • 読了時間: 12分

レガシー データベースの最新化: 分散 SQL への移行

Banner

従来のデータベース アーキテクチャは、アクティブ/パッシブ レプリケーションに依存して障害を管理します。プライマリ データベースに障害が発生すると、手動または自動のフェイルオーバーがトリガーされます。これにより、同期の遅れ、潜在的なデータ損失 (RPO > 0)、および重大なダウンタイム (RTO > 0) が発生します。分散 SQL は、設計によりこの制約を解決します。

アクティブ-アクティブ同期レプリケーション

分散 SQL データベースは、コンセンサス プロトコル (Raft や Paxos など) を利用して、複数の独立したクラウド リージョン間でデータを同期的に複製します。すべてのデータベース ノードはアクティブであり、書き込みトランザクションを処理できます。

従来のアクティブ/パッシブデータベースアーキテクチャから分散SQLエンジンに移行するには、最適なシャーディングのためにデータモデルを再設計する必要があります。データが複数のノードに分散されるため、適切なシャードキーを選択してホットスポットを回避します。

マルチリージョン分散 SQL地域 A (フランクフルト)アクティブノード地域 B (ダブリン)アクティブノード地域 C (チューリッヒ)アクティブノード同期 Raft レプリケーション

分散 SQL の主な利点

  • データ損失ゼロ (RPO = 0): 同期コンセンサスにより、トランザクションが複数のリージョン間で同時にコミットされることが保証されます。
  • ほぼ即時フェイルオーバー (RTO < 5 秒): 地域的な停止が発生した場合、手動介入なしでリーダーが自動的に再選されます。
  • 水平スケール: データベースをパーティショニングせずにノードを追加することによる読み取りおよび書き込みのスケーリング。

Raft コンセンサスの仕組み

分散 SQL の中心となるのはコンセンサスです。単一のマスター データベースに依存してデータの書き込みとミラーリングを非同期的に行うのではなく、書き込みトランザクションはコミットされる前にデータベース ノードの過半数 (クォーラム) によって受け入れられる必要があります。これにより、突然のネットワーク分割時でも完全な一貫性が保証されます。

分散SQLレジリエンスの主要素

現代の分散SQLデータベースは、高い可用性とトランザクションの一貫性を確保するために、分散型のレプリケーションと合意形成レイヤーに依存しています。

分散レジリエンスアクティブ・アクティブ同期Raft合意形成複数地域フェイルオーバー厳格なシリアライズ整合性
Raft コンセンサス定足数の投票リーダーフォロワー1フォロワー21.複製2. 確認応答1.複製2. 確認応答クォーラム達成 (3 ノード中 2 ノードが確認済み) -> コミット成功

コア金融システムの移行

コア バンキングなどのトランザクション システムの場合、分散 SQL への移行により、前例のない復元力が実現します。地域的なクラウドの停止によってトランザクション障害が発生することがなくなり、マルチリージョンのエンジニアリングを簡素化しながら、エンドユーザーの継続的なサービスの可用性が確保されます。

アクティブ-パッシブから分散SQLへの移行は、データベースの入れ替えというよりレジリエンスの強化です。見返りはリージョンをまたぐ運用継続性ですが、一貫性モデルを前提にせず理解し検証した場合に限られます。

← ブログに戻る