Jepsen:ParticleDB 1.1.4

一篇新的 Jepsen 分析针对 ParticleDB——这是一款被宣传为“经过形式化证明”、面向 AI 的 Postgres 兼容数据库——报告了异常多的严重正确性缺陷,从写入丢失到诸如 `WHERE 4 = 5` 也会返回行这类荒谬的查询结果。评论者认为,这些缺陷的数量和性质指向根本性的设计与 QA 失败,并且很可能因对大型语言模型的重度依赖而进一步恶化;这一事件被视为对炒作驱动的数据库项目的警示。许多人得出的结论是,这样的系统不适合用于生产,而 Jepsen 风格测试应成为任何严肃数据存储系统的最低标准。

问题范围与严重性

  • 评论者认为,与典型数据库分析相比,这份 Jepsen 报告异常严厉。
  • 据称 ParticleDB 表现出大量严重漏洞:崩溃、死锁、数据丢失、诡异的 SQL 行为(例如,不可能成立的谓词返回行、对不存在列的谓词也能返回结果),以及即使在单节点、无故障情况下也普遍存在的事务异常。
  • 几位参与者认为,这表明其设计在根本上就有问题(“incorrect by construction”),而不仅仅是局部漏洞。

营销宣传与现实

  • 对营销文案的批评很强烈:声称“经过 TLA+ 形式化证明”、“兼容 PostgreSQL”、可用于生产的构建,以及极端性能宣称(例如,比 Redis 更快、比 Postgres 快几个数量级)。
  • Jepsen 报告指出,并没有可用的 TLA+ 规格说明,而且基础的 Postgres 兼容性显然失败了。
  • 有人指出,在测试结果出来后,网站和措辞似乎被悄悄修改过。

测试与 QA 流程

  • 很多人对这些最基本的漏洞竟然能发版感到困惑:他们推断要么根本没有测试,要么测试无效,要么测试根本没跑。
  • Jepsen 指出,现有的 Postgres Jepsen harness 据称之前已经跑过,但在所测版本上会立刻失败。
  • 评论者将此视为深层结构性 QA 问题的证据,可能还包括过度依赖自动化代理。

AI / “Vibecoding” 的角色

  • 反复有人猜测,大型语言模型被大量用于编写数据库及其测试,而人类并没有完全理解这个系统。
  • “vibecoded database” 逐渐成为 AI 生成、验证不足的代码和文档的代称。
  • 有人指出,AI 在有能力的人手中可以很强大,但在这里它似乎放大了经验不足和糟糕的判断。

厂商回应与未来信任

  • 一位团队成员表示,这些问题后来已经修复,引擎已重新设计,现在每天都会运行 Jepsen 负载,测试也得到了加强。
  • 大多数回复都高度怀疑:修复列出的问题被称为“基本门槛(table stakes)”,人们质疑为什么一个如此不成熟的系统会被宣传为可用于生产并且经过形式化验证。
  • 几个人表示他们绝不会部署该产品;也有人建议重来,或者干脆离开这个领域,理由是声誉损害已经造成。
  • 少数人强调,Jepsen 的目的就是发现漏洞以便修复,而如果未来能经受住 Jepsen 的测试,或许还能恢复一些信任。

更广泛的启示

  • 许多人认为,每一家数据库厂商都应该接受 Jepsen 风格的测试,而坦率、即便严厉的报告对于保护用户是必要的。
  • 这条讨论凸显了严谨、以测试驱动的数据库工程,与忽视正确性、由炒作驱动、受 AI 加速的开发之间的对比。