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

The State of Distibuted Database In Japan

tzkoba
March 31, 2022

The State of Distibuted Database In Japan

#DSSAsia 2022のJapanese Trackから。
https://asia.distributedsql.org/

従来のRDBMSの課題を整理し、分散SQLデータベース、またはNewSQLと呼ばれるものが何を解決するかについて洞察します。

tzkoba

March 31, 2022
Tweet

More Decks by tzkoba

Other Decks in Technology

Transcript

  1. 7 これで満足していますか? • DBごとに異なる可用性、拡張性、そして一貫性。 • それぞれのデータベースに、熟練したDevとOpsが必要。 ⇒より使いやすく、ユニバーサルな分散SQLデータベースが求められている Applications P R

    東京 大阪 SQL JSON KVS SQL JSON KVS • WriteもReadもスケールアウト、スケールダウンも可能 • マルチプライマリ、マルチリージョンの構成で高い可用性 • 複数のIFをサポートし、一貫性のあるSQLデータベース
  2. 8 これまでのRDBでスケールアウトが難しかった理由 Replication構成(例) Write R P R Read • 既存RDBの多くで可能な、レプリケーション構成。

    • PrimaryがWriteをすべて受け付け、書込みをReplicaへ同期する。 【メリット】 • 実績豊富で、クラウドでも構成可能。 • ReadはReplicaを増やしてスケール可能。 【デメリット】 • 非同期ではラグあり、同期では耐障害性↓ • Writeは全てPrimaryで捌く必要があり、 スケールアップしかできない。 ⇒拡張性に限界がある
  3. 9 RDBにおけるマルチプライマリ構成の事例 Hyperscale(Citus)の例 Write Read Oracle RACの例 Write Read •

    マルチプライマリで水平スケール可能な構成はこれまでも存在した。 • しかし、SPOFやボトルネックなしで、一貫性のあるDBは実現が困難だった。
  4. 14 要素技術②:Raft • 合意プロトコルであるRaftで、同期Replicationに近い一貫性・耐障害性と、 非同期に近いレイテンシを実現する。 • ShardごとにLeaderが存在し、マルチプライマリを実現。 Follower3 Write Read

    Follower2 Leader1 Leader3 Follower2 Follower1 Follower3 Leader2 Follower1 【Write Path 】 ①WriteはLeaderに送られ、Leaderのlogに 更新が記録される。 ②全てのFollowerにlogを複製。 ③Followerの過半数からackが返る。 ④Leaderは更新をコミット。 【Read Path 】 ①Readも原則はLeaderへ送られる。 ②LeaderはFollowerへハートビートして、 過半数からackを待つ。 ③自身がLeaderであることが確認できたので、 Readを返す。
  5. 15 Raftでマルチリージョンとは Raft Leader サイト Followerサイト Followerサイト • Raftによる合意は近郊サイトのFollower で完了するため、レイテンシが短縮可。

    • 大きなポイントとして、合意ベースの システムには3つ以上のサイトが必要。 • この図では関東近郊が全面障害の場合、 関西サイト単独では稼働できない。 (合意に達しないため) • Raftでは過半数のackを待つが、それ以外は遅延があっても良い。 • これを利用して、遠近のレプリカを使い分けてマルチリージョンを実現。
  6. 16 要素技術③:分散トランザクション • 複数ノードにデータを配置する分散DBでは、トランザクションも複雑化。 • 旧来の2PCを改良し、PaxosやRaftと組み合わせて現実的な分散トランザク ションを実現している。 from 詳説データベース •

    左図はCloud Spannerの例。 • 複数Shard(図ではTablet)にまたが るトランザクションを実現している。 • Cloud Spannerでは高精度GPSと原 子時計を用いて、高い一貫性と低レ イテンシを実現している。
  7. 19 AI&データプラットフォームとして • 楽天モバイルでは、Autonomous NWを支えるプラットフォームとして を利用。 • 1.5PB・約100台でのDBクラスタを、3つのデータセンタで稼働。 【課題】 •

    膨大なNWデータを受け付けて処理でき る、低レイテンシのOLTPデータベースが 必要。 • 3つ以上のDCに分散して配置できる、 可用性と拡張性が求められる。 • SQLだけでなく、NoSQLとしてもアクセ ス可能な柔軟性が必要。
  8. 22 分散SQLデータベースを超える、 tablet3 tablet2 tablet1 tablet3 tablet2 tablet1 tablet3 tablet2

    tablet1 Distrbuted Txn Mgr Distrbuted Txn Mgr Distrbuted Txn Mgr SQL CQL Applications SQL CQL SQL CQL SQL CQL • Write/Readでスケールし、マルチリージョンの配置ができて、 SQLだけでなくNoSQLアクセスにも対応した、分散データベース。 Sharding+Raftによる複製で、 高い可用性と拡張性、 マルチリージョン配置を同時に実現。 高い一貫性を担保する分散Txn Mgr。 SQL+CQLをサポートするIF。
  9. 23 = Cloud Native • YugabyteDBは複数のデプロイ方法に対応。 • クラウドやKubernetesでの利用、そしてDBaaSとしての利用をサポート。 • Apache

    2.0ライセンスで提供されるOSSDB。 • DockerやKubernetesでも利用可能。 • 24*7の商用サポート。 • クラウド、オンプレなど幅広く対応し、運用コストを低減。 • フルマネージドなDBaaS。 • Free Tierあり、開発・検証をすぐに開始可能。 YugabyteDB Core Yugabyte Platform Yugabyte Cloud
  10. 25 2022年以降の分散データベース あなたのシステムにも 分散SQLデータベースという選択肢を!  RDBが課題としてきた下記を、分散SQLDBはサポート。  Writeも含めたスケールアウト  マルチプライマリ、マルチリージョンによる高い可用性

     今後はさらに運用性が向上し、サーバレス等の取り組みが 進んでいくと見られる。  利用には、分散データベースの仕組みを理解しておくことが 今まで以上に重要。