当前位置: 首页 > news >正文

从dolt到Prolly-Tree

从dolt到Prolly-Tree

起因是看到了一个 repo: https://github.com/dolthub/dolt

非常有意思的一个特点是: 能够像使用git一样, 对数据库做版本管理/Diff

单就版本管理倒不是什么新鲜的事情, 一个让我很好奇的地方是: 是怎么做到快速的 Diff 呢?

Merkle Tree

https://yeasy.gitbook.io/blockchain_guide/05_crypto/merkle_trie

Prolly Tree (by Gemini)

Prolly Tree

Prolly Tree

Prolly Tree(Probabilistic B-Tree 的缩写)是一种混合数据结构,它完美结合了 ​B-Tree​(适合数据库的高效有序读写与自平衡)和 ​Merkle Tree(基于内容寻址、支持快速校验)的特性。

想要理解它为什么能做到快速 Diff,需要对比来看:

  1. 为什么传统的 B-Tree 做不到快速 Diff?
    B-Tree 的节点分裂和树的最终形态高度依赖于​数据的插入顺序。即使两个数据库包含完全一模一样的数据,只要写入顺序不同,它们底层的 B-Tree 结构就会截然不同。如果两棵树形状不一样,Diff 时就只能做全量扫描,效率极低。
  2. 为什么单纯的 Merkle Tree 也不够?
    传统的 Merkle Tree 虽然能通过哈希快速比对,但在应对数据库高频的随机插入和删除时,很难像 B-Tree 那样维持动态的自平衡和高效的区间查询。

Prolly Tree:

  • 概率性分块 (Probabilistic Chunking) ​:
    Prolly Tree 放弃了 B-Tree 那种“节点写满就分裂”的固定规则,而是对写入的数据应用​滚动哈希(Rolling Hash) 。当某条数据的哈希值满足特定概率条件(例如二进制末尾连续出现 N 个 0)时,就在这里强行划定一个节点边界(Chunk Boundary)。

  • 历史无关性 / 结构确定性 (History Independence) ​:
    因为节点的边界完全是由数据内容本身计算出来的,与插入的时间和顺序毫无关系。这就带来了一个极为震撼的特性:​只要两个数据库里的数据集合相同,无论它们是怎么一步步修改成现在的样子的,最终生成的 Prolly Tree 结构和所有节点的哈希值都完全一模一样

  • O(差异量) 的极速 Diff
    由于具备了“历史无关性”,Diff 操作变得极其简单。比较两个版本的数据库时,只需要自顶向下比对树的哈希值:

    1. 根节点哈希相同?说明数据完全一致,Diff 瞬间结束。
    2. 根节点不同?继续比对子节点,​只顺着哈希值不同的分支往下找
    3. 那些没有被修改的数据块,它们的哈希和物理结构在两个版本间是完全共享的(Structural Sharing),直接跳过。

这就使得数据库的 Diff 速度只与被修改的数据量成正比,哪怕在 TB 级别的数据量下,只要只改了几行数据,也能在毫秒级内完成比对!

可视化学习(by Claude Code)

Repo: https://github.com/Disdjj/prolly-tree-learn

在线查看: https://disdjj.github.io/prolly-tree-learn/

http://www.jsqmd.com/news/399031/

相关文章:

  • 题解:AcWing 895 最长上升子序列
  • html5的原生模板标签template
  • 题解:AcWing 896 最长上升子序列 II
  • 税务
  • TKG-Thinker:通过智能体强化学习实现时序知识图谱的动态推理
  • 当方向盘遇上数学魔法:MPC主动转向控制实战手记
  • 毕业论文神器!口碑爆棚的降AIGC平台 —— 千笔·降AI率助手
  • 考虑阶梯式碳机制与电制氢的综合能源系统热电优化探索
  • 实测才敢推!8个一键生成论文工具:本科生毕业论文+开题报告写作全测评
  • 用过才敢说!千笔·专业论文写作工具,本科生论文救星!
  • 赶deadline必备!千笔ai写作,全网爆红的AI论文平台
  • 基于深度学习的夜间红外小目标检测系统演示与介绍(YOLOv12/v11/v8/v5模型+Pyqt5界面+训练代码+数据集)
  • 新手也能上手!学生热捧的降AI率网站 —— 千笔·专业降AIGC智能体
  • 建议收藏|10个AI论文工具深度测评:专科生毕业论文+科研写作必备神器!
  • 互联网大厂Java面试实录:Spring Boot与微服务在电商场景中的应用
  • 深入浅出CopyOnWriteArrayList
  • 文章图库
  • 题解:AcWing 1016 最大上升子序列和
  • 少走弯路:降AIGC软件,专科生首选千笔AI VS Checkjie
  • 为什么我建议你建立内容资产而不是流量资产?
  • 2026/2/21 总结
  • 国产激光品牌深度测评:技术实力与市场表现全解读
  • Ora: ORA-28040-数据库不接受您的客户端的验证协议
  • 【系统分析师】9.6 安全管理措施
  • 06实战处理AI音乐技术详解第一阶段:频谱破坏·卓伊凡
  • 海康机器人3D 机器人引导 —— 空间基础篇一
  • 顶配纸尿裤推荐:2026年高端新生儿纸尿裤权威选购指南 - 速递信息
  • 从此告别拖延,AI论文写作软件 千笔AI VS 知文AI,专科生专属神器!
  • 摆脱论文困扰! 千笔AI VS 灵感ai,更贴合MBA的降AIGC工具
  • 2026冲刺用!AI论文平台 千笔AI VS PaperRed,专科生写作新选择!