从 0 到 1.5 亿 QPS:Uber 核心存储架构的十年演进与缓存设计哲学

本文永久链接 – https://tonybai.com/2025/09/01/uber-150-million-reads 大家好,我是Tony Bai。 在 Uber 这样体量的公司,其核心在线存储系统不仅要处理 PB 级的海量数据,还要以毫秒级的延迟响应每秒上亿次的请求。这一切是如何实现的?本文将深度整合 Uber 工程团队这几年公开发布的三篇文章,和大家一起穿越其核心存储架构的十年演进史:从最初为解决 MySQL 扩展性难题而生的 Schemaless,到拥抱 SQL 和强一致性的分布式数据库 Docstore,再到最终通过集成式缓存 CacheFront 将读取性能推向 1.5 亿 QPS 的极致。这是一个关于在 MySQL 之上构建分布式巨兽的真实故事,充满了工程上的权衡、妥协与创新。 ...

September 1, 2025 · 8 min · Tony Bai

关系代数、SQL语句和Go语言示例

本文永久链接 – https://tonybai.com/2023/11/15/relational-algebra-and-sql-with-go-examples 近些年,数据库领域发展日新月异,除传统的关系型数据库外,还出现了许多新型的数据库,比如:以HBase、Cassandra、MongoDB为代表的NoSQL数据库,以InfluxDB、TDEngine为代表的时序数据库,以Neo4J、Dgraph为代表的图数据库,以Redis、Memcached等为代表的内存数据库,以Milvus为代表的向量数据库,以CockroachDB、TiDB为代表的HTAP融合数据库以及云原生数据库等。各类型数据库都有自己的优势,开发者可以根据应用场景选择最合适的数据库。 ...

November 15, 2023 · 25 min · Tony Bai

试用Libmemcached

近期一直在做一个项目架构演化的讨论交流,为了解决产品中存在的某些问题,我们有意引入某种类Memcached的开源产品,但我们的应用场景并非经典Memcached的“Cache”场景,这里也不详述细节了,大致就是这么一件事儿。 我们的第一选择是日本小伙儿Mikio Hirabayashi实现的Tokyo Tyrant,主要基于三点原因: -> 支持数据的持久化 -> 快!(性能数据来自于网上的第三方资料) -> 无商业许可证束缚 ...

March 15, 2010 · 4 min · Tony Bai