数据库隔离级别及MVCC (数据库隔离级别)

数据库隔离级别及MVCC (数据库隔离级别)

在之前达坦科技(DatenLord)的题为“Rust 语言无锁数据结构的内存管理”的文章当中,介绍了另外一项技术和这几个关键词是相关的,那就是无锁数据结构中的 “基于世代的内存管理方法”,英文是 epoch-based memory management,以下简称 epoch。epoch 维护了两个世代的内存状态,当最老世代的内存已经没有人继续访问的时候,那么对应的内存就会被回收释放,然后开启一个新的世代。这样做的目的其实也是为了让对新世代数据修改的操作和对老世代数据的读取操作能够并行,目的也是为了读写并发的优化。当然除了这些相似的地方,也有不同的地方,MVCC 可以同时存在许多个版本,epoch 同时存在的版本永远都是两个。这其实可以理解成为 epoch 的内存管理颗粒度更粗,所以当 contention 重的时候 epoch 有时会造成内存压力增大。

声明:本文来自用户分享和网络收集,仅供学习与参考,测试请备份。