NewSQLユースケース7選
ミックさん
- NewSQLの本が去年出た
- これまではTiDB中心の本が多かった
- この本は複数の製品に対応
- ユースケースも書いてあるのが特徴
- NewSQL
- RDB - NoSQL - 分散クラウドネイティブSQL
- RDBとNoSQLでトレードオフだったところの両取りができる
- 水平スケーラビリティ
- 分散データベース
- 分散データベース
- クエリレイヤー/ストレージレイヤーそれぞれで分散
- プライマリーがない
- 主要な製品
- Cloud Spanner
- PostgreSQL
- yugabyteDB
- PostgreSQL
- TiDB
- MySQL
- CockroachDB
- PostgreSQL
- 日本法人はない
- AuroraDSQL
- 第三リージョンをどこの国に置くかが問題
- Cloud Spanner
- 事例
- 2020年代に入って採用数が増えてきた
- 日本も海外も
- DoorDash
- 海外のリテールEC
- UberEatsみたいな
- コロナ禍で利用者急造
- CockroachDBに移行して更新負荷をスケールさせる
- 海外のリテールEC
- Flipkart
- TiDBでwrite/read両方の処理を自働でスケール
- k8s上で動作することで障害児はノードが自働復旧するので可用性高い
- みんなの銀行
- Cloud Spannerを勘定系で使っている
- 東京/大阪でactive-activeにできる
- Form3
- イギリスのFinTech系企業
- A2A決済
- AWSが利用不可になったらどうするかという規制当局からの指摘
- 特定クラウドプラットフォームに依存しない体制
- CockroachDBをAWS/Azure/GoogleCloudのk8s上で動かすようにした
- 日本ではマルチクラウドはそこまでだが海外だと進んでいる
- 欧州のように法規制で進む可能性
- 地政学上の懸念
- レバテック
- 増えすぎたデータベースの統合
- 80人の開発組織で50データベース
- TiDBの1つのクラスタに統合
- マイクロサービスはトランザクションが難しい
- 失敗した時に取り消すパターン
- これをDB側で担保できるよさ
- DMM.com
- 異種混合データベースの統合
- RDBやNoSQLも
- TiDBにまとめた
- 異種混合データベースの統合
- Netflix
- CockroachDBを採用
- 地理分散で低遅延を
NewSQL: ストレージ分離と分散合意を用いたスケーラブルアーキテクチャ
ぶーとさん(株式会社hacomono)
- コンピュートとストレージの分離
- コンピュート
- ステートレスな計算層
- クエリパース
- オプティマイザ
- ストレージ
- ステートフルな保存層
- データの永続化
- フィルタリング処理
- なぜ分離したいか
- ノード追加時の負荷軽減と高速化
- 既存データのコピー作業がいらなくなる
- なので負荷が高まる前に事前にスケールしないといけなかった
- きめ細やかなスケーリング
- コンピュート層がステートレスなので必要な時に追加削除できる
- 異なるライフサイクルの分離
- コンピュート層は負荷に応じてスケールしたい
- ストレージ層は一定の量が必要
- ノード追加時の負荷軽減と高速化
- コンピュート
- 分散合意アルゴリズム(Raft)
- クラスタで合意した値がくつがえらないことを保証する仕組み
- NewSQLの中で普及してるのはPaxosとRaft
- Jepsen Test
- Raftがやること
- クラスタのフェイルオーバー
- クラッシュしても自働でリカバリー
- データの同期
- ログレプリケーションとよんでる
- StateMachineへの命令のこと
- 一貫性の維持と分断耐性
- リーダーを必ず経由するモデルで一貫性
- 分断時にも過半数のノードに届けば動く
- クラスタのフェイルオーバー
- 役割
- リーダー/フォロワー/候補者
- リーダーがクラッシュしたらフォロワーが候補者となり投票の結果リーダーになる
- スケールの壁
- 単一Raftの限界
- データの再文化とリーダーの分散配置
- Multi-Raft
パネルディスカッション
ミックさん
ぶーとさん(株式会社hacomono)
山田 浩之さん(Scalar)
こばさん(Scalar)
- NewSQL本当にいるのか
- 結局はRDBとNoSQLの折衷案
- 分析系は苦手
- HTAP
- トランザクションも分析も
- DBのどこが好きか
- SQLのチューニングをずっとやっていた
- オプティマイザを長くさわってた
- kvsの層
- 分散合意
- 従来不可能だったことを可能にしていくレイヤー
- スケーラビリティ/アベイラビリティ
- SQLのチューニングをずっとやっていた
サイボウズの自社k8s環境におけるTiDB運用の現在地
渡邉 洋平さん(サイボウズ)
- TiDB Operator v1では安定運用できてる
- v2では変更が多い
- TiDB + TiFlash
Kubernetesでセルフホストが簡単なNewSQLを求めて
nnaka2992さん(スリーシェイク)
https://speakerdeck.com/nnaka2992/seeking-a-newsql-database-thats-simple-to-self-host-on-kubernetes
- いまどきはHelm ChartsとOperatorが推奨
- CockroachDBはドキュメント不備が
- どれも使えるので誤差の範囲
Keycloak を使った SSO で CockroachDB にログインする
kota2and3kanさん
- Keycloakでユーザ認証してCockroachDBにアクセスできるようにするデモ