失败的Git代码审查工具实验:git-review

2025-08-21
失败的Git代码审查工具实验:git-review

作者尝试开发一个名为git-review的工具,旨在改进GitHub的代码审查流程。该工具的核心思想是将代码审查作为提交存储在代码库中,通过在代码中添加评论来进行审查。然而,实验结果并不理想。虽然在代码中直接添加评论非常高效,但修改审查中的代码却很复杂,特别是处理冲突和使用`git push --force-with-lease`带来的摩擦。作者最终放弃了该项目,但认为其核心思想——在代码中直接进行审查——仍然很有价值,并展望了未来通过Git改进代码审查的可能性。

阅读更多
开发

TigerBeetle数据库查询引擎的隐藏bug:巧妙的fuzzing却失效了

2025-06-06
TigerBeetle数据库查询引擎的隐藏bug:巧妙的fuzzing却失效了

TigerBeetle数据库团队使用Jepsen测试发现了其查询引擎中的一个bug,令人惊讶的是,这个组件之前已经过四个fuzzer的广泛测试。调查发现,fuzzer的测试用例生成策略中存在盲点,导致某些类型的查询组合无法被覆盖。这个问题源于fuzzer在初始化时预先注册查询,这种方式虽然简化了工作负载,但却意外地限制了输入空间的多样性。最终,通过改进fuzzer,使其生成更随机的输入并进行更精确的验证,成功复现并修复了该bug。这个案例提醒我们,即使是精心设计的fuzzing策略也可能存在盲点,需要结合其他测试方法,才能更全面地保障软件质量。

阅读更多
开发

TigerBeetle文档网站重构:告别Docusaurus,拥抱Zig

2025-04-10
TigerBeetle文档网站重构:告别Docusaurus,拥抱Zig

TigerBeetle团队重构了其文档网站,抛弃了基于Node.js的Docusaurus,转而使用Zig构建了一个轻量级、快速的静态网站。他们基于Zig构建系统和Pandoc,实现了高效的Markdown解析和HTML生成,并通过巧妙的设计,提升了用户阅读体验,减少了网站体积,同时还加入了有趣的彩蛋游戏。这一重构体现了TigerBeetle对技术极致追求和精益求精的精神。

阅读更多
开发 文档网站

数组枚举:一种提升数据处理效率的新型数据结构

2024-12-21
数组枚举:一种提升数据处理效率的新型数据结构

本文介绍了一种名为“数组枚举”(EoA)的数据结构,它与常用的“结构体数组”(SoA)类似,但将枚举类型作为数据结构的核心。EoA 通过将多个枚举值打包成一个数组,并使用单个标签标识整个数组的类型,从而减少了内存占用和分支预测开销,提升了数据处理效率,尤其适合 SIMD 优化。文章以数据库系统 TigerBeetle 为例,解释了 EoA 如何在批量处理中发挥作用,有效地分离控制平面和数据平面,从而实现更高的性能。

阅读更多
开发 EoA SIMD优化

从历史和第一性原理重新发现事务处理

2024-07-24
从历史和第一性原理重新发现事务处理

本文回顾了事务处理的演变历史,特别是Jim Gray提出的“DebitCredit”基准测试对行业的影响。文章指出,传统数据库在处理高并发事务时存在局限性,主要是因为行锁和网络往返时间导致的延迟。TigerBeetle数据库通过将“debit/credit”作为基本操作单元,并优化网络交互,实现了更高的交易处理性能,同时提升了安全性。

阅读更多