NewSQL、#distributedsql のセルフまとめ

まとめました。
YugaByteDB distributedsql TiDB CockroachDB NewSQL database
1
こば(右)- Koba as a DB engineer @tzkb
Disaggregated HCIがあるなら、AggregatedなNewSQLがあっても良いのかも知れない。
こば(右)- Koba as a DB engineer @tzkb
[SQLite Is Serverless] へーってなった。曰くSQLiteはClassic Serverlessでアプリケーションと同じプロセス・名前空間で実行される(サーバ的な別プロセスがない=Serverless)。 最近のCosmos DBとかはNeo-Serverlessと。Aurora Serverlessも多分そう。 sqlite.org/serverless.html
こば(右)- Koba as a DB engineer @tzkb
client/serverモデルにおけるserverが居ないことをServerlessとする古典派もいて、「最近のはmanageableなnodeがないだけじゃろ?」とか言う人がいるのかも知れない。
こば(右)- Koba as a DB engineer @tzkb
RocksDBが近年開発されているシェアードナッシング型の分散DBで多く使われている。Facebookも自作のストレージエンジンではなくRocksDBを採用してるぜ、というお話。 rockset.com/blog/rocksdb-i…
リンク rockset.com 3 users 22 RocksDB Is Eating the Database World An overview of what makes RocksDB well-suited to power many of the world's high-performance distributed data systems.
こば(右)- Koba as a DB engineer @tzkb
RocksDBの話が伸びてるので、TiKVの記事も一つ紹介。CNCF Incubatingな分散KVSで、こちらも内部にRocksDBが使われている。Raftログの用とデータ保存用の2種類。 TiKVではRawKVとTxnKVという2つのAPIが用意されており、TiDBでは当然TxnKVが使われる。 pingcap.com/blog/how-tikv-…
リンク MySQL at Scale. No more manual sharding 1 user 7 How TiKV Reads and Writes | TiDB This post details how TiKV, as a distributed database, stores the data contained in a write request and how it retrieves the corresponding data with consistency guaranteed.
こば(右)- Koba as a DB engineer @tzkb
NewSQLの解説記事。NoSQLが満たせなかったものを実現するために、VitessやCitusのようなShardingやSQLエンジン+分散ストレージの2種類のアプローチがあったと紹介されている。Citusなどの弱点も書かれており興味深い。 blog.yugabyte.com/distributedsql…
リンク The Distributed SQL Blog 41 users 111 Distributed SQL vs. NewSQL - The Distributed SQL Blog Learn about NewSQL databases and compare them against distributed SQL databases to better understand their differences
こば(右)- Koba as a DB engineer @tzkb
もちろんYugaByteDBのブログなよで、過去のDBの評価は辛めだけど、Shardingと他の分散SQLデータベースを比較しているものは貴重。
こば(右)- Koba as a DB engineer @tzkb
TiKVがどんな仕組みで大規模な分散ストレージを実現しているかについて。どのようにShardingするかは重要で、rangeまたはhashから選択する。TiKVはTiDB(MySQL互換の分散SQL)での利用を想定し、rangeを採用している。 #distributedsql pingcap.com/blog/building-…
リンク MySQL at Scale. No more manual sharding 3 Building a Large-scale Distributed Storage System Based on Raft | TiDB This post introduces the PingCAP team's firsthand experience in designing a large-scale distributed storage system based on the Raft consensus algorithm.
こば(右)- Koba as a DB engineer @tzkb
rangeかhashかというのは以前Y7DBやC8DBでも紹介した通り、各プロダクトの設計方針に根付いている。rangeはRDBによく見られる範囲検索に強いが、hotspotが生まれる。hashは範囲検索に弱いが、hotspotが生まれにくい。さらにTiKVはhashはリバランス負荷が高いと言っているが、そこは疑問。
こば(右)- Koba as a DB engineer @tzkb
TiKVでは複数のRaftグループを用いてレプリケーションをしているが、etcdやconsulなど単一のRaftグループを扱うものとは実装が異なり複雑。この辺はY7DBなどでも同じ。
こば(右)- Koba as a DB engineer @tzkb
ちなみに、 Y7DB = YugaByteDB C8DB = CockroachDB と読み替えてください。
こば(右)- Koba as a DB engineer @tzkb
#DatabaseInternals の5章を読み直してるのだけど、 - ロック:論理整合性、キー単位で獲得される - ラッチ:物理整合性、ページ(ブロック)単位で獲得される の説明が分かりやすくて、何故私は20年DB触ってるのにこの説明が出来なかったのかと思う。
こば(右)- Koba as a DB engineer @tzkb
CassandraからNewSQL、CockroachDBに移行した話。Cassandraのデータモデルに対応するために特別な設計が必要だったが、SQLは柔軟で整合性も担保されてて良いということだ。 #distributedsql cockroachlabs.com/blog/cassandra…
リンク Cockroach Labs 11 Why MyWorld Switched from Cassandra to CockroachDB | Cockroach Labs A lack of flexible indexing, denormalization patterns and other Cassandra limitations led MyWorld to migrate from Cassandra to CockroachDB.
こば(右)- Koba as a DB engineer @tzkb
少し前のブログだが、CAPのうち、APからCPにフォーカスが移ることでNewSQLが台頭したとするもの。Cのないデータストア上でアプリ開発をするのは(不可能ではないが)非常に難しく、一方Aは完全な(100%の)保証はありえないから#distributedsql dbmsmusings.blogspot.com/2018/09/newsql…
リンク dbmsmusings.blogspot.com 7 users 93 NewSQL database systems are failing to guarantee consistency, and I blame Spanner (Spanner vs. Calvin, Part 2) [TL;DR I wrote a post in 2017 that discussed Spanner vs. Calvin that focused on performance differences. Th...
こば(右)- Koba as a DB engineer @tzkb
分散システムで最小限のコストで一貫性を保証するにはPaxos/Raftを用いるが、単一のコンセンサスグループを使うDBと複数グループを使うものがあります。後者がSpannerやそのクローン(CockroachDBやYugaByteDB)です。
こば(右)- Koba as a DB engineer @tzkb
YugaByteによる4つのSharding戦略の話。先日紹介したrangeとhash(consistent hash sharding)の他、Algorithmic ShardingとLinear Hash Shardingが紹介されている。Linear Hash Shardingは初期Cassandraで採用されたが問題があり、現在は非推奨とのこと。 #distributedsql blog.yugabyte.com/four-data-shar…
リンク The Distributed SQL Blog Four Data Sharding Strategies We Analyzed in Building a Distributed SQL Database - The Distributed SQL Blog A distributed SQL database needs to automatically partition the data in a table and distribute it across nodes. This is known as data sharding and it can be achieved through different strategies, each with its own tradeoffs. In this post, we will examine
こば(右)- Koba as a DB engineer @tzkb
Algorithmic ShardingはmemcachedやRedisで使われ、メタデータ管理が不要だが、rebalanceやprewarmのコスト・影響範囲が高いという欠点がある。
こば(右)- Koba as a DB engineer @tzkb
Linear Hash Shardingは相対的順序を保証しつつデータを複数Shardに分割する筈だったが、分離境界を適切に設定するのが難しく、hot spotが避けられなかった。そのためCassandraでもconsistent hash Shardingが後に採用されている。
残りを読む(654)

コメント

コメントがまだありません。感想を最初に伝えてみませんか?

ログインして広告を非表示にする
ログインして広告を非表示にする