GaussDB的并发控制机制

83 阅读1分钟

GaussDB的并发控制机制

GaussDB采用多版本并发控制和两阶段锁(2PL)相结合的机制,这种方式可以显著提升事务并发处理效率,即:多版本并发控制提升读的并发性,两阶段锁解决写-写冲突。其中,2PL将加锁、解锁分为两个完全不相交的阶段。加锁阶段时,只加锁,不释放锁;解锁阶段时,只释放锁,不加锁。

另外,这种设计的优点在于,事务的读操作无需等待其他事务的写操作,同样,事务的写操作也无需等待其他事务的读操作。

GaussDB并发控制机制遵循以下基本原则:

1)当事务对数据项进行写操作时,系统会生成该数据项的一个新版本。当事务对数据项进行读操作时,读取的是事务开始时该数据项的最新版本。

2)读操作不加锁,避免了读操作间的阻塞,写操作采用严格两阶段锁机制,满足读已提交、可重复读的隔离级别,也可以避免幻读。这种机制称为快照隔离(snapshot isolation),就是为每个事务的读准备一个快照(一个时间戳的版本),这个快照一旦建立就不会再被修改,从而达到了事务间隔离的作用。