抛弃数据库:用 Tigris 对象存储构建 Ampbase
Object storage is all you need

作为 Ampbase 的创始人,我选择直接利用 Tigris 对象存储作为数据层,完全摒弃了传统关系型数据库。我们仅依赖对象存储的两个原语,自行实现了唯一约束、事务、索引和历史表等核心数据库行为。通过强读后写一致性、条件写入以及巧妙的键设计,我们不仅实现了数据隔离,还获得了比传统数据库更优的审计追踪能力。这种架构消除了迁移、连接和模式管理的复杂性,证明了在分布式系统中,对象存储足以替代传统数据库引擎。
历史无法因一次粗心的更新而丢失,因为系统中根本不存在更新操作。
HN 评论区
16- dullcrisp
这篇文章并没有提供太多为什么要这么做的理由。
在我看来,这读起来有点像:我们是如何在没有桌子的情况下搭建办公室的:原来只要把两把椅子叠在一起,就能在顶层平衡地放好笔记本电脑,同时底层还能当架子放东西。
- arpinum
读这篇文真让人抓狂。Tigris 是构建在 FoundationDB 之上的,但它并没有暴露 FoundationDB 的所有操作,比如事务、范围读取(range reads)和 get mapped range。为了解决这些问题,他们搞出了一大堆复杂的方案,包括引入一个数据库来做缓存(而且他们似乎根本没考虑过惊群问题)。
那为什么不直接运行 FoundationDB 呢?
- tantalor
> Protobuf 字段名是永久的
如果你只担心二进制编码的 proto(这很常见),那你完全可以重命名字段。