MOT:Industrial-Strength OLTP Usi

2020-12-14  本文已影响0人  upup果

openGauss是华为的关系型数据库管理系统(RDBMS),主要采用基于磁盘的存储引擎。本文提出了一种新的GaussDB存储引擎,该引擎经过了主存和多核优化。

Indexing and Storage

非唯一索引.png

上图描述了一个MOT的T表的结构,它有三个行和两个索引。矩形表示数据行,索引指向指向行的哨兵(椭圆形)。哨兵用键插入唯一索引,用键+后缀插入非唯一索引。哨兵可以方便维护操作,无需接触索引数据结构就可替换行。此外,在哨兵中嵌入了各种标志和参考计数,以便于乐观插入。

乐观插入算法

乐观插入算法.png

上图是乐观插入算法的流程图。

Concurrency Control

并发控制.png

传统的OCC执行,事务不能访问本事务执行过程中更新的记录。MOT创建状态机,并对所有读取、更新、插入和删除的行保持一个访问集。该集合由指向原始行或哨兵的指针作为键值,因此一旦遇到它,就可以在访问集中找到它。键的值是事务中该行的私有副本和该行的状态。如果在更新(WR)、插入(INS)或删除(DEL)中发现一行,则声明相关值,即将该行的本地副本返回给用户。
上图是并发控制的执行过程。

上一篇 下一篇

猜你喜欢

热点阅读