gpt4 book ai didi

concurrency - MVCC & B-Tree & 并发

转载 作者:行者123 更新时间:2023-12-02 01:23:18 25 4
gpt4 key购买 nike

我目前正在阅读 dbms 书籍,据我所知,Mvcc(多版本并发控制)用于高并发读写事务。
但是“搜索结构的并发控制”一章提到了 B 树的不同锁定概念(锁耦合、链接技术等)。

Mvcc 不是应用于 dbms 中 B-Tree 的内部和叶节点吗?
B-Tree 并发和 MVCC 是完全不同的东西吗?如果是,那么 Mvvc 在 dbms 中是如何实现的?

最佳答案

MVCC 可以通过多种方式实现。唯一的要求是以某种方式可以使用较旧的行版本。

例如,SQL Server 将它们存储在服务器重新启动时重置的临时数据库中。

Postgres 将行版本作为隐藏行直接存储在 b 树中。它向树添加了一个隐藏的键列。当从树中读取时,只会暴露逻辑上应该看到的版本。

RavenDB 的 Voron 将 b 树页面作为不可变数据进行管理。写入创建全新的树。因此,MVCC 被实现为从正确的不可变树中读取。

数据库很少会长时间锁定物理结构。让数据库客户端停止数据库内部结构的进程并不是一个好主意。内部结构通常被非常短暂地锁定。逻辑行锁是分开处理的。

如果让我猜 concurrency control on search structures指的是物理线程安全。这通常不涉及 MVCC,因为不需要管理多个版本。普通的内存锁足以进行短暂的访问。

关于concurrency - MVCC & B-Tree & 并发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38677780/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com