Upgrade to Pro — share decks privately, control downloads, hide ads and more …

SpannerとAurora DSQLの同時実行制御の違いに想いを馳せる

SpannerとAurora DSQLの同時実行制御の違いに想いを馳せる

Google CloudのSpannerとAWSのAurora DSQLそれぞれの同時実行制御の違いと魅力を紹介しながらも、これらを開発した組織のカルチャーに想いを馳せます

MasakiKato5

March 25, 2025
Tweet

More Decks by MasakiKato5

Other Decks in Technology

Transcript

  1. 自己紹介 2 Masaki Kato データベースとクラウドをこよなく愛するアプリケーションアーキテクト。 MasakiもKatoもよく被ります。会社では3人目のMasaki Kato ▪所属 • アクセンチュア株式会社

    テクノロジーコンサルティング本部 • 金融・公共系プロジェクトのアプリアーキチームによくいます • Google Cloud Partner Top Engineer 2024-2025 • Jagu’e’r (Google Cloud User Community) エバンジェリスト ▪趣味 • 去年フルマラソンデビュー。今年もまた走りたいです • Clineで色々作るのにはまっています
  2. データベースの意義 6 データを保存する 安全に 高速に ペタバイト級の データを分析する キーバリュー 形式の 障害時のデータ

    ロスト無し 排他制御 一貫した データ アトミックな 変更 ベクトル 形式の グラフ 形式の 柔軟な スキーマ データ更新時 に通知を出す データ の結合 複雑な 検索条件
  3. データベースの意義 7 データを保存する 安全に 高速に ペタバイト級の データを分析する キーバリュー 形式の 障害時のデータ

    ロスト無し サービス構築時に求められる要件のうち、 データに関わる部分を一手に引き受けてくれる存在 排他制御 一貫した データ アトミックな 変更 ベクトル 形式の グラフ 形式の 柔軟な スキーマ データ更新時 に通知を出す データ の結合 複雑な 検索条件
  4. クラウド時代の分散SQLデータベース “NewSQL” 8 「マルチリージョンでの強整合性・高可用性」と「SQLライクなインターフェイス」を併せ持つDBへの 要望のため、GoogleはSpannerを開発。これらの特徴を持つDBはNewSQLと呼ばれる。 クラウド時代のRDBが抱える課題 • 可用性向上・負荷分散のためにはシステム を複数のサーバーに冗長化するしかないが、 分散することでデータの一貫性を保てない

    ジレンマ • 読み込み専用のレプリカを配置することで 読み込み負荷のみ分散 書き込み インスタンス 読み込み専用 レプリカ データコピー NewSQLによる解決策 • テーブルを複数の小さな単位に分割するこ とで負荷の分散。 • DBサーバー間で合意をとり同期しながら コミットを実行することで高可用性を実現。 DBサーバー群 相互に通信し 同期しながら書き込み
  5. Spannerのアーキテクチャ 9 書き込み合意・排他制御を行うspanserverとデータの永続化を行うストレージ層である Colossusに分かれる。テーブルをtabletと呼ばれる小さな集合に分け、Paxosステートマシンを 利用してサーバー間での合意をとりながら更新を行う。 universemaster placement driver Zone 2

    location proxy zone master span server Zone 3 location proxy zone master span server spanserver (Leader) lock table tx manager tablet tablet Paxos Paxos Zone 1 location proxy zone master span server Colossus spanserver (Replica) tablet tablet Paxos Paxos spanserver (Replica) tablet tablet Paxos Paxos Colossus Colossus コンピューティング層 ストレージ層 Spanner: Google’s Globally Distributed Database: ACM Transactions on Computer Systems: Vol 31, No 3
  6. Spannerの魅力: BigQueryとのシームレスな連携 10 Google CloudのマネージドデータウェアハウスサービスBigQueryもSpannerと同じくColossus にデータを配置しているため、Spannerによって書き込まれたデータに対しBigQueryからクエリを 発行し分析することが可能。 3大クラウドが分散DBの開発で競う、老舗のGoogle「Spanner」を追撃へ | 日経クロステック(xTECH)

    Spanner BigQuery Colossus データ書き込み クエリ発行 This presentation makes reference to marks owned by third parties. Unless otherwise noted, all such third-party marks are the property of their respective owners. No sponsorship, endorsement or approval of this content by the owners of such marks is intended, expressed or implied.
  7. コンピューティング層 ストレージ層 AZ Endpoint Query Processor Adjudicator Storage Adjudicator Adjudicator

    Journal Journal Journal Storage Storage Storage Storage Query Processor AZ Endpoint AZ Endpoint Query Processor Query Processor クエリ処理 競合制御 永続化 読み取り最適化 AWS re:Invent 2024 - Deep dive into Amazon Aurora DSQL and its architecture (DAT427-NEW) – YouTube AWS re:Invent 2024 - Deep dive into Amazon Aurora DSQL and its architecture (DAT427-NEW) – YouTube 2024年 AWSはNewSQLサービス “Aurora DSQL”を発表 16 サーバーレスなNewSQLサービスを発表。マルチリージョンでの強整合性と高速なトランザクションに 強みを持つ。クエリ処理、分散合意、永続化、クエリストレージの4レイヤー構成になっている。 データにタイムスタンプを付与する等の基本的な要素はSpannerと類似している様子。
  8. コンピューティング層 ストレージ層 AZ Endpoint Query Processor Adjudicator Storage Adjudicator Adjudicator

    Journal Journal Journal Storage Storage Storage Storage Query Processor AZ Endpoint AZ Endpoint Query Processor Query Processor クエリ処理 競合制御 永続化 読み取り最適化 AWS re:Invent 2024 - Deep dive into Amazon Aurora DSQL and its architecture (DAT427-NEW) – YouTube AWS re:Invent 2024 - Deep dive into Amazon Aurora DSQL and its architecture (DAT427-NEW) – YouTube Aurora DSQLの特徴的な同時実行制御 17 読み込み時にはQuery ProcessorがStorageへデータをクエリ。ロック操作なし。 Read Write Commit
  9. コンピューティング層 ストレージ層 AZ Endpoint Query Processor Adjudicator Storage Adjudicator Adjudicator

    Journal Journal Journal Storage Storage Storage Storage Query Processor AZ Endpoint AZ Endpoint Query Processor Query Processor クエリ処理 競合制御 永続化 読み取り最適化 AWS re:Invent 2024 - Deep dive into Amazon Aurora DSQL and its architecture (DAT427-NEW) – YouTube AWS re:Invent 2024 - Deep dive into Amazon Aurora DSQL and its architecture (DAT427-NEW) – YouTube Aurora DSQLの特徴的な同時実行制御 18 書き込みリクエストはQuery Processorで保持。ロック操作なし。 Read Write Commit
  10. コンピューティング層 ストレージ層 AZ Endpoint Query Processor Adjudicator Storage Adjudicator Adjudicator

    Journal Journal Journal Storage Storage Storage Storage Query Processor AZ Endpoint AZ Endpoint Query Processor Query Processor クエリ処理 競合制御 永続化 読み取り最適化 AWS re:Invent 2024 - Deep dive into Amazon Aurora DSQL and its architecture (DAT427-NEW) – YouTube AWS re:Invent 2024 - Deep dive into Amazon Aurora DSQL and its architecture (DAT427-NEW) – YouTube Aurora DSQLの特徴的な同時実行制御 19 コミット時にはじめてAdjudicatorにて競合が判断される楽観的ロックを採用。競合発生時に はトランザクションが失敗となるが、徹底的にロックの取得にともなうリージョン間の競合制御回数を 減らすことで高速化を狙う。 Read Write Commit
  11. SpannerのMutationを使ったバッチ書き込み 20 Spannerは悲観的ロックを採用しているが、Mutationを用いたバッチ書き込みにて同様の高速化 を狙うことが可能。 通常のSQL Mutation Cloud Run Cloud Spanner

    Cloud Run 参照 更新 コミット 更新 参照 コミット 更新 更新 Spannerへの通信が 都度発生 変更をアプリ内に 蓄積 コミット時に一括 送信 Cloud Spanner This presentation makes reference to marks owned by third parties. Unless otherwise noted, all such third-party marks are the property of their respective owners. No sponsorship, endorsement or approval of this content by the owners of such marks is intended, expressed or implied.
  12. ビジネスが変わればシステムも変わる 22 • 広告を中心に様々なサービスを持つ • プロダクトごとに多様なDBへのビジネスニー ズが想定される。 • ビジネスニーズに応じたアプリ開発者による 拡張余地を残すようなSpannerの設計思

    想。 GoogleとAmazonのビジネスの差が強くあらわれているように見える。 • Amazon.comが中心。 • プライムデーの大量トラフィックの中で高速に レスポンスを返す必要あり。 • DynamoDBの運用を通じ楽観的ロックで システムを構築する知見を持つ。 • 「Simple」「Elastic」なサービスが多い。 悲観的ロック・Mutation書き込みの 選択肢を備えたデータベース 楽観的ロックに特化した シンプルかつ高速なデータベース Google Amazon
  13. ビジネス要求をシステムに反映させることの大切さ・難しさ 25 データを保存する 安全に 高速に ペタバイト級の データを分析する キーバリュー 形式の 障害時のデータ

    ロスト無し 排他制御 一貫した データ アトミックな 変更 ベクトル 形式の グラフ 形式の 柔軟な スキーマ データ更新時 に通知を出す データ の結合 複雑な 検索条件
  14. ビジネス要求をシステムに反映させることの大切さ・難しさ 26 データを保存する 安全に 高速に ペタバイト級の データを分析する キーバリュー 形式の 障害時のデータ

    ロスト無し 自社のビジネスにおいて、どの要素が大切でどの要素が不要か 理解できているか? 排他制御 一貫した データ アトミックな 変更 ベクトル 形式の グラフ 形式の 柔軟な スキーマ データ更新時 に通知を出す データ の結合 複雑な 検索条件
  15. 参考資料 29 • Spanner: Google’s Globally Distributed Database: ACM Transactions

    on Computer Systems: Vol 31, No 3 • Cloud Spanner のロックについて • Spanner #ポエム – Qiita • Amazon Aurora DSQL の同時実行制御 | Amazon Web Services ブログ • AWS を活用した 2023 年のプライムデー – 数字が示す驚異的なメトリクス • AWS re:Invent 2023 - Monday Night Live Keynote with Peter DeSantis • AWS re:Invent 2024 - Get started with Amazon Aurora DSQL (DAT424) – YouTube • AWS re:Invent 2024 - Deep dive into Amazon Aurora DSQL and its architecture (DAT427-NEW) – YouTube • DSQL Vignette: Transactions and Durability - Marc's Blog • TrueTime | Kevin Sookocheff • 【JAWS-UG朝会】今更ながら Amazon DynamoDB の論文を真面目に読んでみた • 3大クラウドが分散DBの開発で競う、老舗のGoogle「Spanner」を追撃へ | 日経クロステック(xTECH)