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

個人的にNewSQLに注目しているポイント/What I personally find in...

個人的にNewSQLに注目しているポイント/What I personally find interesting about NewSQL

hitsumabushi

July 22, 2024
Tweet

Other Decks in Technology

Transcript

  1. “New”SQL: web業界からの理解 RDBMS ↓ NoSQL ↓ SQL冬の時代 ↓ “Spanner” ↓

    NewSQL Pros. • ACID特性 • 高い信頼性 • 圧倒的実績 Cons. • スケーラビリティが往々にして低い • スキーマ変更が難しい • パフォーマンス的に難しい点がある
  2. “New”SQL: web業界からの理解 RDBMS ↓ NoSQL ↓ SQL冬の時代 ↓ “Spanner” ↓

    NewSQL BigTable, Dynamo, Cassandraなど。 Pros. • 高いスケーラビリティ • 大量のアクセスでも高いパフォーマンス • 非構造化データ Cons. • ACID特性を保証してくれず、一貫性に関 する考慮が必要 • データ型のチェックが往々にして弱い
  3. “New”SQL: web業界からの理解 RDBMS ↓ NoSQL ↓ SQL冬の時代 ↓ “Spanner” ↓

    NewSQL やはりRDBMSのメリットを享受したい、かっちりした スキーマで一貫性のあるDBを使いたいが...。 • Vitess, Citus: 本物のRDBMSを水平分割して スケールさせ、アプリ側では(できるだけ)意識せず に使えるようにしたい ◦ ただやはり様々難点はある • VoltDB: パフォーマンスとしてNoSQL対抗する、 SQLが使えるインメモリDB。すべてストアドだった り、インメモリだったりの制約が大きい
  4. “New”SQL: web業界からの理解 RDBMS ↓ NoSQL ↓ SQL冬の時代 ↓ “Spanner” ↓

    NewSQL ↓ “CloudNative-architecture“ 2012: “Spanner: Google’s Globally-Distributed Database” • 原子時計を用いたアプローチが注目された • TrueTime APIでskewを評価することで、commit waitを短く して、external consistencyを満たすアルゴリズム ◦ やばノードは排除する、最大/最小の時刻がわかる 2017: Google Cloud 上でのSpannerサービスGA • 一貫性のあるスケール可能なSQLを使えるDB ◦ レイテンシ的なペナルティは存在する(NewSQL全般同じ。夢 のDBはない) • インターリーブなどの設計上の癖があるのは否めない
  5. “New”SQL: web業界からの理解 RDBMS ↓ NoSQL ↓ SQL冬の時代 ↓ “Spanner” ↓

    NewSQL ↓ “CloudNative-architecture“ Google Spanner inspiredたち。レイテンシや癖があるのは同じ。 • YugaByte DB • CockroachDB • TiDB • AWS Aurora Limitless DB(たぶんNewSQLに分類される と思うが、まだあんまり知らない) ※ Spanner vs Calvin という文脈の話もあり、FaunaDBが有名 (SQLではなくFQL)
  6. TiDBのアーキテクチャ TiDBはSQLを受け取って、PDにどのKV に聞くべきか問い合わせ、SQLを変換して TiKVにリクエストしたり、結果を集めて集 計して返したりする。 TiKV というのが、リージョン(テーブルを) ごとにmuti-raftして、データを保持する Key-Value storage。内部にRocksDB

    というLSM-tree storage engineを持 つ。Percolator-likeな分散トランザクショ ン制御をする。 PDが超重要コンポーネントで、 placementやメタデータの管理、TiKVの スケジュールなどはもちろんや TimeStamp Oracleも提供する。
  7. まとまっていないまとめ Spannerは1つの金字塔だと思う。 スケールするRDBが欲しいと思っていた人がWebやゲーム業界にはいたはずだが、新しい観点で実 現した。Cassandraを生んだDynamo: Amazon’s Highly Available Key-value Storeに 近いレベルで新しいスタイルを提案したような気がする。(個人の感想)

    一方でSpanner inspiredなやつらも、TrueTime APIの置き換え以外も含め、昨今のソフトウェ アの発展を踏まえた内部実装になっている感があり、非常によく考えられたシステムになっているの で面白い。 (AuroraやらのCompute/Storageの分離だとか触れていない話題もあるが、うまく入れ込めな かった)