引言
在上一篇博客前面的SILO关键类的简述中,确,对MOT的并发技术做了了解,并与磁盘引擎的MVCC控制技术进行了逐项比对。
一、MOT框架回顾
open gauss引入的MOT存储引擎,是一种事务性行存储引擎,针对多核和大内存服务器进行优化。MOT完全支持ACID,并提供严格的持久性和高可用性支持。 它以内存为主要介质存储数据,并支持持久化和分布式事务。内存引擎的特点是提供极致的性能和低时延,适合对性能要求非常高的场景,例如银行风控、实时推荐等。 stOOrz—MOT(1)–概述
二、MASSTREE小结
在这一部分,学习了mass tree的论文,对open gauss源码中实现mass tree的关键类,成员函数进行了原理分析,并在源码文件上做了一部分注释,遗憾的是,没能够详细深入学习这一部分。
[参考论文] (https://pdos.csail.mit.edu/papers/masstree:eurosys12.pdf) stOOrz–MOT(2)-MASSTREE stOOrz–MOT(3)-MASSTREE stOOrz–MOT(4)-MASSTREE
三、SILO小结
Silo来自计算机顶级会议SOSP13上的一篇文章——《Speedy Transactions in Multicore In-Memory Databases》。它提出了一种能在现代众核服务器上实现了卓越的性能和可扩展性的设计方法——SILO。
这是本次学习最遗憾的一部分,并应该像之前的MVCC一样,进行详细地分析,原计划是对他的主要应用流程,关键数据类,关键实现函数逐一分析,并且对比已经学习过的MVCC。但是由于个人学习能力有限,时间安排不充分,这个部分只进行了简单的学习。 stOOrz–MOT(4)-SILO
四、总结
我学习了opengauss的MOT部分源码,我的目标是弄清楚MOT大致原理,MASSTREE索引结构,深刻理解SILO设计算法,并且与之对比MVCC。MOT是一个基于内存的事务引擎,它使用了一种称为SILO的并发控制协议,以及一种称为MASSTREE的多版本B+树索引结构。SILO是一种优化的时间戳排序协议,它可以在不使用锁或原子操作的情况下实现高效的事务处理。MASSTREE是一种支持范围查询和动态分裂合并的多版本B+树索引结构,它可以在多核环境下提供高性能和可扩展性。MVCC是一种多版本并发控制协议,它通过为每个数据项维护多个版本来避免读写冲突,但是它也带来了额外的开销和复杂性。 通过学习这些内容,我收获到了知识,SILO的设计思想,MASSTREE的设计思想。我了解了MOT如何利用这些技术来实现高效、可靠、可扩展的事务处理。我也对比了SILO和MVCC的优缺点,认识到了不同的并发控制协议适用于不同的场景和需求。 我还需要改进我的学习进度规划,要深入学习SILO。我觉得SILO是一个非常有创意和前沿的算法,它解决了很多传统并发控制协议面临的挑战和问题。我想要更加清楚地理解SILO的细节和原理,以及它在MOT中的具体实现和优化。我打算阅读更多关于SILO的论文和文档,以及查看更多关于SILO的源码和注释。