列存具有「读友好,写不友好」的特点。这个特点使列存和 AP 数据库仿佛王八看绿豆一样 —— 对上眼了。因为 AP 数据库正好重视读性能(大查询吞吐量),不重视写性能(能容忍 T+1h/1d 更新)。 于是,列存顺理成章地霸占了 AP 数据库的存储底座。
Read More网络上有很多贬低分布式数据库(e.g., TiDB, OceanBase),吹捧传统(单机)数据库(e.g., Postgres, MySQL)的文章,这类文章通常列出的一个关键论据是:传统数据库的性能可以全方位(各种负载下)击败分布式数据库(基于单机环境测试结果)。然而事实真的是这样的吗?作为一个利益相关的分布式数据库行业的产品经理,我认为我有必要站出来捍卫一下行业的声誉。为此,我选取了世界上最先进的开源传统数据库 —— Postgres,和世界上前三先进的开源分布式数据库 —— TiDB,进行了一系列的性能测试。我的测试结果表明:传统数据库和分布式数据库在性能上是互有胜负的,而不是一边倒的。如果你对我的测试感兴趣,就请继续往下看吧。
Read More你是玩大数据的,你发现主流的湖仓存储都支持 Z-order clustering,你 TM 的还不知道这个是什么玩意儿。我 TM 的花了半个小时,画了 TM 的几张图,九浅一深地给你说明下,什么叫 TM 的 Z-order clustering。
Read More你是否有疑问,为什么有的系统用一个活跃事务列表(e.g., PG 的 Snapshot,MySQL 的 ReadView)来实现 MVCC,有的系统(e.g., Spanner,TiDB,CockroachDB)用时间戳(Timestamp)来实现 MVCC?这两种技术的优缺点是什么样的,各自适合什么样的场景?本文就来回答一下这些鸟问题。
Read More本文的主要内容:
- 介绍 LevelDB 的写入流程。
- 介绍 RocksDB 对 LevelDB 写入流程的部分优化(下一篇文章再补充其他优化)。
本文的主要内容:
- 介绍 LSM-tree 在 delete 上面临的一些性能问题。
- 介绍 RocksDB 和 Lethe 提供的一些优化方案。
改造 RocksDB 使其支持存算分离,这类工作之前就有团队做过,e.g., RockSet 的 RocksDB-cloud。眼看云时代的存储计算分离是大势所趋(从 share nothing 转向 share storage),RocksDB 官方再也按捺不住自己的大刀了,亲自下场,先搞了一个 RocksDB on Distribute File System(DFS) 试试水(支持 S3 也为期不远?),并在 SIGMOD 23 上发了一篇文章《Disaggregating RocksDB: A Production Experience》,分享自己的一些「分离」经验。今天我们就来快速鉴定一下这篇文章有没有东西,亦或者是「有点东西,但东西不多」。