NewSQLについての色々と調べて読み漁ってみたので読んだものをまとめておく。
元々いくつかのNewSQLのDBについての比較をしてみたいと思って漁っていたのだが、内部で使われている技術について知っておく必要があったので、関連技術についての記事が多めになっている。
資料一覧
- Hybrid Clock
- Hybrid Logical Clock (HLC)
- 本当は恐ろしい分散システムの話
- 分散処理システムの検証をサービスとして提供するJepsenに注目 | Think IT(シンクイット)
- 分散システムの課題
- 分散システムについて語らせてくれ
- クラスタに3ノード必要な理由 - Qiita
- 雰囲気で分散システム使ってるやついる!? - Qiita
- Navigating the 8 fallacies of distributed computing
- 分散コンピューティングの落とし穴 - Wikipedia
- Percolator vs Spanner. Implementing Distributed Transactions the Google Way | YugabyteDB
- Low Latency Reads in Geo-Distributed SQL with Raft Leader Leases | Yugabyte
- A Busy Developer’s Guide to Database Storage Engines — The Basics | Yugabyte
- 分散合意アルゴリズム Raft を理解する - Qiita
- 4 Data Sharding Strategies We Analyzed When Building YugabyteDB
- CockroachDB's consistency model
- Spanner vs. Calvin: Distributed Consistency at Scale
- Fauna | The distributed serverless database
- Fauna の紹介 (Temporal Database ) なぜ定番のSQLを使わずFQLという謎言語を使うのか? - Qiita
- Living without atomic clocks: Where CockroachDB and Spanner diverge
- オープンソースの分散型NewSQLデータベースによるタイムサービス配信の仕組み - TiDB - PingCAP株式会社
- The Vitess Docs | What Is Vitess
- 金融トランザクションにNewSQLが使えるか検証してみた - 分散型データベース PingCAP株式会社
- 金融業界のミッションクリティカルなシナリオでTiDBを活用(パート1) - PingCAP株式会社
- CAP定理の壁 ~NewSQLへの道~ | データベース アクセス パフォーマンス ブログ
- 分散ノードの整合性 ~NewSQLへの道~ | データベース アクセス パフォーマンス ブログ
- LSM-TreeとRocksDB、TiDB、CockroachDBが気になる · hnakamur's blog
- Amazon Aurora アーキテクチャ概要
- NewSQLのコンポーネント詳解 - Qiita
- Amazon Auroraの先進性を誰も解説してくれないから解説する - Qiita
- TiDB on AWS EKS 〜DMM動画のPoCレポート〜 - DMM inside
- CockroachDB vs. TiDB vs. YugabyteDB Comparison
- 2020年現在のNewSQLについて - Qiita
- Architecture Overview
- Explore YugabyteDB | YugabyteDB Docs
- [論文紹介] TiDB:a Raft-based HTAP database
- TiDB の紹介
- SQL・NoSQL・NewSQLの違いは?【データベース言語】
- 100億円キャンペーンで学んだ“教訓” PayPayのスケーラブルな巨大決済システムを支える工夫 - ログミーTech
所感
実際にDB選定する際は要件に合わせた検証や性能比較が必要と思われるが、比較する際のポイントがいくつか分かった。
- 採用しているSQLインタフェース
- MySQLやPostgreSQLといったSQLへの互換性
- 分散トランザクションの仕様
- ちょっと難しくて理解できていないが、RaftやPaxosといった分散合意プロトコルや分散クロックなど採用している技術や方針によって整合性をどういう形で担保するかといった仕様が異なる、はず
- computeとストレージが別になっているか、同居しているアーキテクチャ構成か
- Spannerしか使ったことがないので、Spannerのように別になっているのが当たり前だと思っていたが、そうではないものもあるらしい
- スケーラビリティの担保に影響するかと思う
- HTAPか否か
- 分析用途も考慮するなら大事なポイントかと思われる
- とはいってもTiDB以外でサポートしているNew SQLあったっけ・・??
- 分析用途も考慮するなら大事なポイントかと思われる