#DSSAsia 2022のJapanese Trackから。 https://asia.distributedsql.org/
従来のRDBMSの課題を整理し、分散SQLデータベース、またはNewSQLと呼ばれるものが何を解決するかについて洞察します。
The State of DistibutedDatabase In JapanDistributed SQL Summit Asia ,2022/3/31Takahiro, Kobayashi
View Slide
31. データベースにまつわる課題2. 分散SQLデータベースの要素技術3. 国内における分散SQLDBの事例4. YugabyteDBの特徴5. まとめアジェンダ
4データベースにまつわる課題1
5古き良き時代のデータベース• システム内のデータベースはRDBのみ。• Primary-Replicaで冗長化、複数DCやリージョン跨ぎの要件は少ない。• Writeはスケールアップ、Readはレプリカ増やして対応。• アプリケーションからのIFはSQL。ApplicationsP東京SQLR東京
6現在は、複数データベースを使い分ける時代に• RDB、NoSQLを用途に応じて使い分け。• マルチプライマリで可用性を向上させたり、リージョン跨ぎのレプリカも。• NoSQLでWriteスケール、RDBは相変わらず限定的な拡張性。• アプリケーションからはSQL、JSON、KVなど様々なIFが要求される。ApplicationsP R東京 大阪SQL JSON KVS SQL JSON KVS
7これで満足していますか?• DBごとに異なる可用性、拡張性、そして一貫性。• それぞれのデータベースに、熟練したDevとOpsが必要。⇒より使いやすく、ユニバーサルな分散SQLデータベースが求められているApplicationsP R東京 大阪SQL JSON KVS SQL JSON KVS• WriteもReadもスケールアウト、スケールダウンも可能• マルチプライマリ、マルチリージョンの構成で高い可用性• 複数のIFをサポートし、一貫性のあるSQLデータベース
8これまでのRDBでスケールアウトが難しかった理由Replication構成(例)WriteRPRRead• 既存RDBの多くで可能な、レプリケーション構成。• PrimaryがWriteをすべて受け付け、書込みをReplicaへ同期する。【メリット】• 実績豊富で、クラウドでも構成可能。• ReadはReplicaを増やしてスケール可能。【デメリット】• 非同期ではラグあり、同期では耐障害性↓• Writeは全てPrimaryで捌く必要があり、スケールアップしかできない。⇒拡張性に限界がある
9RDBにおけるマルチプライマリ構成の事例Hyperscale(Citus)の例WriteReadOracle RACの例WriteRead• マルチプライマリで水平スケール可能な構成はこれまでも存在した。• しかし、SPOFやボトルネックなしで、一貫性のあるDBは実現が困難だった。
10分散SQLデータベースの要素技術2
11どのような技術で、分散SQLデータベースは実現されている?• WriteもReadもスケールアウト、スケールダウンも可能• マルチプライマリ、マルチリージョンの構成で高い可用性• 複数のIFをサポートし、一貫性のあるSQLデータベース• WriteとReadのスケールアウト、スケールダウン Sharding 自動再配置• マルチプライマリ、マルチリージョン Raft 同期+非同期• 一貫性のあるSQLデータベース 分散トランザクション 特別なHWを要求するケースも
13要素技術①:Sharding• Sharding自体は古くからあり、データを複数ノードに分散配置する手法。• ノードが所有するデータを一定範囲に限定し、負荷を分散する。Shard-3Shard-2Shard-1Shard-1-aShard-1-bShard-2Shard-3負荷増=分割負荷減=結合
14要素技術②:Raft• 合意プロトコルであるRaftで、同期Replicationに近い一貫性・耐障害性と、非同期に近いレイテンシを実現する。• ShardごとにLeaderが存在し、マルチプライマリを実現。Follower3WriteReadFollower2Leader1Leader3Follower2Follower1Follower3Leader2Follower1【Write Path 】①WriteはLeaderに送られ、Leaderのlogに更新が記録される。②全てのFollowerにlogを複製。③Followerの過半数からackが返る。④Leaderは更新をコミット。【Read Path 】①Readも原則はLeaderへ送られる。②LeaderはFollowerへハートビートして、過半数からackを待つ。③自身がLeaderであることが確認できたので、Readを返す。
15RaftでマルチリージョンとはRaft LeaderサイトFollowerサイトFollowerサイト• Raftによる合意は近郊サイトのFollowerで完了するため、レイテンシが短縮可。• 大きなポイントとして、合意ベースのシステムには3つ以上のサイトが必要。• この図では関東近郊が全面障害の場合、関西サイト単独では稼働できない。(合意に達しないため)• Raftでは過半数のackを待つが、それ以外は遅延があっても良い。• これを利用して、遠近のレプリカを使い分けてマルチリージョンを実現。
16要素技術③:分散トランザクション• 複数ノードにデータを配置する分散DBでは、トランザクションも複雑化。• 旧来の2PCを改良し、PaxosやRaftと組み合わせて現実的な分散トランザクションを実現している。from 詳説データベース• 左図はCloud Spannerの例。• 複数Shard(図ではTablet)にまたがるトランザクションを実現している。• Cloud Spannerでは高精度GPSと原子時計を用いて、高い一貫性と低レイテンシを実現している。
17国内における分散SQLDBの事例3
18スケールアップの限界⇒分散SQLDBへ• Aurora等のRDBの限界を感じて、分散SQLDBの検証を始める例は国内でも見られるようになってきた。• PayPayでは、MySQL互換の分散SQLデータベースを利用している。【課題】• Writeのスケールアウトが必要、スケールアップ時のDB停止が許容できない。• キャンペーンによってリクエスト数が劇的に増減する中で、DB性能(コスト)も弾力的に変更したい。
19AI&データプラットフォームとして• 楽天モバイルでは、Autonomous NWを支えるプラットフォームとしてを利用。• 1.5PB・約100台でのDBクラスタを、3つのデータセンタで稼働。【課題】• 膨大なNWデータを受け付けて処理できる、低レイテンシのOLTPデータベースが必要。• 3つ以上のDCに分散して配置できる、可用性と拡張性が求められる。• SQLだけでなく、NoSQLとしてもアクセス可能な柔軟性が必要。
20クラウド上で分散SQLデータベースの利用が進む• 国内のスマホゲームでも、分散SQLDBが利用されている。• 大量のノードやストレージを管理する手間がなく、自動スケーリングなどのメリットも受けられるマネージドサービスとしての利用例。【課題】• MySQLから、よりスケーラブルな分散SQLDBへの移行。• 分散SQLDB自体の使い方の難しさにも直面、開発チームも含めたノウハウの共有が必要。
21YugabyteDBの特徴4
22分散SQLデータベースを超える、tablet3tablet2tablet1tablet3tablet2tablet1tablet3tablet2tablet1DistrbutedTxn MgrDistrbutedTxn MgrDistrbutedTxn MgrSQL CQLApplicationsSQL CQLSQL CQL SQL CQL• Write/Readでスケールし、マルチリージョンの配置ができて、SQLだけでなくNoSQLアクセスにも対応した、分散データベース。Sharding+Raftによる複製で、高い可用性と拡張性、マルチリージョン配置を同時に実現。高い一貫性を担保する分散Txn Mgr。SQL+CQLをサポートするIF。
23= Cloud Native• YugabyteDBは複数のデプロイ方法に対応。• クラウドやKubernetesでの利用、そしてDBaaSとしての利用をサポート。• Apache 2.0ライセンスで提供されるOSSDB。• DockerやKubernetesでも利用可能。• 24*7の商用サポート。• クラウド、オンプレなど幅広く対応し、運用コストを低減。• フルマネージドなDBaaS。• Free Tierあり、開発・検証をすぐに開始可能。YugabyteDB CoreYugabyte PlatformYugabyte Cloud
24まとめ5
252022年以降の分散データベースあなたのシステムにも分散SQLデータベースという選択肢を! RDBが課題としてきた下記を、分散SQLDBはサポート。 Writeも含めたスケールアウト マルチプライマリ、マルチリージョンによる高い可用性 今後はさらに運用性が向上し、サーバレス等の取り組みが進んでいくと見られる。 利用には、分散データベースの仕組みを理解しておくことが今まで以上に重要。
26Questions?@tzkb@tzkoba