【发布时间】:2016-03-02 08:37:23
【问题描述】:
我试图弄清楚如何使用锁将项目插入 B+ 树,但并不真正理解其背后的理论。
所以对于搜索,我的观点是我在根节点上加了一个锁,然后决定我应该去哪个子节点锁定它,此时我可以释放父节点并继续这个操作直到我到达叶节点。
但是插入要复杂得多,因为我不能让任何其他线程干扰插入。我的想法是在通往叶节点的路径上的每个节点上加一个锁,但是放置这么多锁非常昂贵,然后我的问题是当叶节点因为太大而分裂时会发生什么?
有谁知道如何使用锁正确地将一个项目插入到 B+ 树中?
【问题讨论】:
标签: database multithreading b-tree