2023-12-04
论证的方法论

论证(Argument)是个人的核心能力之一。论证能力直接影响个人思想的表达与影响力的建立,进一步影响个人的前途。

我曾经花过一些时间思考这一重要技能,包括论证的理论和方法论。本文是对个人思考的一些总结,分享给大家,希望对大家有所帮助。

Read More
 2023-11-05
列存高效更新技术介绍

列存具有「读友好,写不友好」的特点。这个特点使列存和 AP 数据库仿佛王八看绿豆一样 —— 对上眼了。因为 AP 数据库正好重视读性能(大查询吞吐量),不重视写性能(能容忍 T+1h/1d 更新)。 于是,列存顺理成章地霸占了 AP 数据库的存储底座。

Read More
 2023-10-16
真相!分布式数据库性能可击败传统数据库

网络上有很多贬低分布式数据库(e.g., TiDB, OceanBase),吹捧传统(单机)数据库(e.g., Postgres, MySQL)的文章,这类文章通常列出的一个关键论据是:传统数据库的性能可以全方位(各种负载下)击败分布式数据库(基于单机环境测试结果)。然而事实真的是这样的吗?作为一个利益相关的分布式数据库行业的产品经理,我认为我有必要站出来捍卫一下行业的声誉。为此,我选取了世界上最先进的开源传统数据库 —— Postgres,和世界上前三先进的开源分布式数据库 —— TiDB,进行了一系列的性能测试。我的测试结果表明:传统数据库和分布式数据库在性能上是互有胜负的,而不是一边倒的。如果你对我的测试感兴趣,就请继续往下看吧。

Read More
 2023-09-06
MVCC 的实现:活跃事务列表和时间戳

你是否有疑问,为什么有的系统用一个活跃事务列表(e.g., PG 的 Snapshot,MySQL 的 ReadView)来实现 MVCC,有的系统(e.g., Spanner,TiDB,CockroachDB)用时间戳(Timestamp)来实现 MVCC?这两种技术的优缺点是什么样的,各自适合什么样的场景?本文就来回答一下这些鸟问题。

Read More
 2023-07-13
从 SIGMOD 23 看 RocksDB 的存算分离实践

改造 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》,分享自己的一些「分离」经验。今天我们就来快速鉴定一下这篇文章有没有东西,亦或者是「有点东西,但东西不多」。

Read More