MvCC的可见性算法
时间: 2024-08-23 19:02:55 浏览: 90
MvCC(Multi-Version Concurrency Control,多版本并发控制)是一种数据库事务处理技术,主要用于分布式系统中的数据一致性管理。在MvCC模型下,每个事务看到的是数据库的一个快照,而不是另一个事务正在进行修改的那一时刻的数据。
"可见性算法"在这个上下文中,主要是指如何确定事务能看到哪些数据的旧版本以及哪些是最新的。核心机制包括:
1. **读已提交**(Read Committed)模式:事务只能看到已完成并提交的版本,即隔离级别决定了可见性。如果事务结束时,其他事务还未完成,该事务不会影响那些事务的结果。
2. **乐观锁**:假设大多数情况下的读取都是无冲突的,只有在写入时才去检查是否有其他事务修改了数据,如果有则回滚事务或重试操作。
3. **行级锁定**:按需获取最小粒度的锁定,只有那些被事务修改过的行才会被锁定,避免阻塞其他无关的事务。
4. **版本标签**:给每个数据分配一个版本标签,事务只会读取对应版本的数据,除非显式选择了更高的版本。
通过这样的算法,MvCC能够在保持高并发的同时,提供相对强一致性的保证。
阅读全文