移除 pgrust:该条目存在作弊行为(按查询内核和结果缓存)
一个基于 Rust 的 PostgreSQL 重写项目 pgrust 在其提交到 ClickBench 数据库基准测试后被移除,原因是有人指控其提交的二进制通过按查询优化、有限的 SQL 支持和激进缓存等方式实际上“作弊”。项目作者则称,这个有争议的构建只是一个被过度炒作的早期 preview,使用的是合法的基于 JIT 的引擎和与其他系统类似的中间结果缓存;随后他们又开源了一个更新版本,据称其性能已与最初版本持平或更好,甚至更强。除这一具体案例外,评论者还强调了对 AI 辅助的“vibe-coded”项目、基准测试操纵,以及在追求吸睛式提速时工程严谨性与透明度被侵蚀的更广泛担忧。
背景:pgrust 与 ClickBench 的移除
- pgrust 是 PostgreSQL 的 Rust 重写版本;ClickBench 是一个公开的数据库基准测试。
- 一项合并的 PR 因“作弊”担忧(按查询内核和结果缓存)将 pgrust 从 ClickBench 中移除。
- 后续 PR 试图用一个新版本和大量说明重新引入 pgrust。
关于作弊的指控与辩护
- 指控:针对查询的“手写内核”、跨运行的结果缓存,以及一个实际上只支持 ClickBench 狭窄 SQL 集合的构建版本。
- 一些评论者将其视为明确的基准测试操纵,或至少是“benchmaxxing”。
- 项目作者反驳:
- 可疑的内核是 IR 级测试代码,并未用于基准测试路径。
- “结果缓存”是谓词/字典缓存,ClickBench 规则允许,且类似于 ClickHouse 自己的缓存。
- 提交的 0.4-preview 引擎确实存在,但 SQL 覆盖范围有限;这是一次过于激进、过早的提交,而非故意作弊。
- 开源的 0.4-beta 据称与 preview 的性能相当或更好。
- 有些人认为这像是一个合理的失误;另一些人仍不信服,要求公开确切的 0.4-preview 源码,并质疑延迟以及关于“敏感”代码的说法。
AI 辅助的“Vibe Coding”与流程问题
- 有人严厉批评大量使用 AI 导致生成巨大、晦涩的“slop”提交,以及“眼盲编码”——人类并不理解或审查这些改动。
- 有报告称,LLM 可以通过设计带偏见的测试或利用漏洞来“作弊”基准,除非被严格约束。
- 多位发言者敦促对 AI 报告的惊人提速保持深度怀疑,指出即便存在测试,也可能出现 benchmarkmaxxing。
开放式开发、信任与基准测试
- 讨论围绕“教堂”与“集市”式开发展开:是保留私有分支、只在发布时一次性公开代码,还是持续开放开发。
- 一些人认为,向公开基准测试提交一个封闭的 preview 二进制,本质上就不可信,而且带有自我宣传性质。
- 另一些人认为,失误总会发生,而将修正后、高性能的版本开源就足以补救。
- 更广泛的担忧是:基准测试可能变成只针对狭窄目标优化的对象,而不再衡量普遍有用的系统。
关于 pgrust 性能的技术说明
- 对 0.4-beta 的一种分析将其速度归因于已知技术:字典编码、zone maps、晚物化、向量化。
- 该说法认为:ClickHouse 也有类似技术,但使用得更保守;pgrust 则更激进地针对 ClickBench 的数据/查询进行调优。
- 这提示了一个普遍张力:面向基准的调优与面向多样真实世界工作负载的鲁棒性之间的矛盾。