Git 子模块别只会 add:版本钉住、递归更新与 CI 治理

Git 子模块治理示意图

当一个仓库需要复用另一个独立维护的仓库时,Git Submodule(子模块)可以保留清晰的边界:主仓库记录组件仓库的某个提交,而不是把组件源码复制进来。但子模块也很容易变成“目录里有代码、发布时却不是这份代码”的隐形风险。把提交钉住、更新流程和 CI 校验写清楚,才能让它适合长期维护。

Read More

用 Merkle Tree 做增量校验:根哈希、包含证明与工程边界

Merkle Tree 数据完整性校验

当文件很多、数据来自不可信节点,或客户端只想验证其中一条记录时,逐字节下载并重新计算全部内容既慢又昂贵。Merkle Tree(默克尔树)把大量叶子摘要压缩成一个根哈希,让系统能用短小的证明回答“这条数据属于这份集合吗”,也能快速定位哪一块发生了变化。

Read More

LSM-Tree 存储引擎怎么跑稳:WAL、MemTable 与 Compaction

LSM-Tree 存储引擎的数据流

很多键值数据库和写入密集型系统,都把“随机写”改造成“顺序写”。理解这条路径,才能解释为什么写入很快、为什么读放大会突然出现,以及磁盘空间为何会在压缩期间短暂上涨。LSM-Tree 不是一棵需要原地平衡的树,而是一组按阶段生成、再逐步合并的有序文件。

Read More