首页 理论教育并发控制算法分类分布式数据库技术

并发控制算法分类分布式数据库技术

【摘要】:有多种并发控制算法的分类方式。按照同步原语可以将并发控制算法分成两类:基于互斥存取共享数据的算法和将事务排序按规则执行的算法。图9.10并发控制算法的分类●在主本封锁中,将每个封锁单元的某个副本指定为主本,在访问该单元时主本必须封锁。这些算法可以分成基本TO、多版本TO和保守TO等。实际上,在某些基于封锁的算法中也使用时标,因为这样可以改进效率和并发性,我们称为混合算法。

有多种并发控制算法的分类方式(见图9.10)。有的按数据库的分布方式(全复制、部分复制等)来分类,也有的按照网络拓扑结构的方式来分类,但最常用的是按照同步原语来分类。按照同步原语可以将并发控制算法分成两类:基于互斥存取共享数据的算法和将事务排序按规则执行的算法。然而,原语又可以分成乐观的和悲观的两种,因此可以分成悲观算法和乐观算法。悲观算法又可以分成封锁算法、时标序(TO)算法和混合(hybrid)算法。乐观算法同样可以分成封锁算法或时标序(TO)算法。其分类如下图所示。

因为简单,所以封锁是最常用的方法。在基于封锁的方法中,事务的同步是利用对数据库的某部分和颗粒实施物理与逻辑封锁实现的。这部分(通常称为封锁颗粒)是一个重要参数,这里把它简化为封锁单元(lock unit)。封锁方法又可以进一步区分如下。

●在集中式封锁(centralized locking)中,网络中的一个节点可以设计为原本节点,放置整个数据库的封锁表,负责响应对事务的授权封锁。

图9.10 并发控制算法的分类(摘自参考文献[5])(www.chuimin.cn)

●在主本封锁(primary copy locking)中,将每个封锁单元的某个副本指定为主本,在访问该单元时主本必须封锁。例如,如果封锁单元x在节点1、2和3有副本,假设节点1上存放的是主本。所有希望存取x的事务在其存取x的一个副本前可以在节点1获得封锁。

在集中式封锁中,封锁管理器的责任由网络上的所有节点共享。此时,事务的执行涉及一个以上节点的调度器的参与者与协调者。每个本地调度负责封锁本节点的封锁单元。

时标序(TO)算法涉及事务执行序的组织,所以它们维护事务互一致性和内一致性。这种排序是通过未事务和存放在数据库中的数据项指定时标来实现的。这些算法可以分成基本TO、多版本TO和保守TO等。

实际上,在某些基于封锁的算法中也使用时标,因为这样可以改进效率和并发性,我们称为混合算法。