抛弃数据库:用 Tigris 对象存储构建 Ampbase

Object storage is all you need

抛弃数据库:用 Tigris 对象存储构建 Ampbase

作为 Ampbase 的创始人,我选择直接利用 Tigris 对象存储作为数据层,完全摒弃了传统关系型数据库。我们仅依赖对象存储的两个原语,自行实现了唯一约束、事务、索引和历史表等核心数据库行为。通过强读后写一致性、条件写入以及巧妙的键设计,我们不仅实现了数据隔离,还获得了比传统数据库更优的审计追踪能力。这种架构消除了迁移、连接和模式管理的复杂性,证明了在分布式系统中,对象存储足以替代传统数据库引擎。

历史无法因一次粗心的更新而丢失,因为系统中根本不存在更新操作。
  1. dullcrisp

    这篇文章并没有提供太多为什么要这么做的理由。

    在我看来,这读起来有点像:我们是如何在没有桌子的情况下搭建办公室的:原来只要把两把椅子叠在一起,就能在顶层平衡地放好笔记本电脑,同时底层还能当架子放东西。

  2. arpinum

    读这篇文真让人抓狂。Tigris 是构建在 FoundationDB 之上的,但它并没有暴露 FoundationDB 的所有操作,比如事务、范围读取(range reads)和 get mapped range。为了解决这些问题,他们搞出了一大堆复杂的方案,包括引入一个数据库来做缓存(而且他们似乎根本没考虑过惊群问题)。

    那为什么不直接运行 FoundationDB 呢?

  3. tantalor

    > Protobuf 字段名是永久的

    如果你只担心二进制编码的 proto(这很常见),那你完全可以重命名字段。

同日更多故事

2026-09-10