一种基于公式的时间戳动态调整并发控制方法技术

技术编号:10979578 阅读:156 留言:0更新日期:2015-01-30 16:19
本发明专利技术公属于数据库技术领域,具体提出了一种基于公式的时间戳动态调整并发控制方法。通过本发明专利技术提出的并发控制方法,可以实现在大型通用数据库中事务管理的事务ACID特性,即原子性,一致性,隔离性和持久性。取代了传统的基于锁的并发控制方法,避免了死锁;也取代了传统的多数据版本的并发控制方法,避免了大量中间结果的存储,提高了事务的并发度和执行效率。

【技术实现步骤摘要】
【专利摘要】本专利技术公属于数据库
,具体提出了。通过本专利技术提出的并发控制方法,可以实现在大型通用数据库中事务管理的事务ACID特性,即原子性,一致性,隔离性和持久性。取代了传统的基于锁的并发控制方法,避免了死锁;也取代了传统的多数据版本的并发控制方法,避免了大量中间结果的存储,提高了事务的并发度和执行效率。【专利说明】—种基于公式的时间戳动态调整并发控制方法
本专利技术涉及数据库
,尤其涉及具有并发控制的数据库管理系统。
技术介绍
为了提高数据库系统的吞吐率,数据库允许多个用户同时存取数据。但这样就会产生多个用户程序并发存取同一数据的情况,若对并发操作不加控制就可能会存取和存储不正确的数据,所以数据库管理系统必须提供并发控制。并发控制的好坏是衡量一个数据库管理系统性能的重要标志之一。 并发控制是以事务(transact1n)为单位进行的,事务是数据库的逻辑工作单位,它是用户定义的一组操作序列。一个事务可以是一组SQL语句、一条SQL语句或整个程序。并发控制应该保证事务具有4种属性:原子性、一致性、隔离性和持久性,即ACID特性。事务的原子性保证事务包含的一组更新操作是原子不可分的,也就是说这些操作是一个整体,对数据库而言全做或者全不做,不能部分的完成。一致性要求事务执行完成后,将数据库从一个一致状态转变到另一个一致状态。它是一种以一致性规则为基础的逻辑属性。隔离性意味着一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。系统提供的持久性保证要求一旦事务提交,那么对数据库所做的修改将是持久的,无论发生何种机器和系统故障都不应该对其有任何影响。 并发控制协议通常分成悲观并发控制,乐观并发控制两种类型。悲观并发控制采用锁的机制,通过锁定阻止用户以影响其它用户的方式修改数据。如果用户执行的操作导致应用了某个锁,则直到这个锁的所有者释放该锁,其它用户才能执行与该锁冲突的操作。乐观并发控制采用检查的办法,在事务提交阶段进行检查,回滚具有冲突的事务。 目前大型通用数据库普遍采用悲观并发控制,具体是两阶段锁的协议。两段封锁协议规定:①在对任何数据进行读、写操作之前,事务首先要获得对该数据的封锁,而且②在释放一个封锁之后,事务不再获得任何其他封锁。所谓“两段”锁的含义是,事务分为两个阶段,第一阶段是获得封锁,也称为扩展阶段,第二阶段是释放封锁,也称为收缩阶段。也有少数数据库支持乐观并发控制,具体是多数据版本的协议。即通过记录同一数据不同的版本来保存不同事务的更新。在提交检查通过后,对数据库进行相应更新。 现有技术的问题或不足: 1.基于锁的并发控制方法,会造成死锁,虽然可以通过死锁的监测方法,回滚造成死锁的相关事务,但这降低了整个系统的效率。 2.基于锁的并发控制方法难以应用在通过不共享的方式(share nothing)的分布式数据库系统中,尤其是死锁的监测更需要大量的交互,造成大量的系统开销。 3.基于多数据版本的并发控制方法,消耗大量的存储空间来存储多版本的数据,虽然可以通过各种优化的方法,提高存储的效率,但无法改变存储多版本数据需要大量存储空间的问题本质。 4.基于多数据版本的并发控制方法,需要按照时间戳的静态顺序,提交事务。造成了额外的等待时间,降低了整个系统得效率。
技术实现思路
针对现有技术存在的上述问题,本专利技术旨在提供一种不会死锁,且无需大量储存空间的具有并发控制方法。 具体技术方案如下: ,包括: 时间戳生成模块,用以对每个到达的事务操作生成唯一的时间戳; 时间戳计算模块,分别设置于复数个所述分布节点上,并连接所述时间戳生成模块,用以计算并储存对应预定的所述数据记录的还未提交的所述事务操作的最大时间戳; 排序模块,分别设置于复数个所述分布节点上,用于根据所述时间戳的先后顺序形成对应预定的所述数据记录的所述事务操作公式的序列; 分析模块,用以记录所述序列中,事务操作公式、事务需读取其他事务操作公式一一对应关系的第一记录、以及事务操作公式需被其他事务读取的一一对应关系的第二记录; 提交模块,分别连接每个所述节点的所述排序模块、每个所述节点的所述分析模块,用以按照所述时间戳的动态调整的预置策略提交事务。 优选的,所述预置策略为,将按照时间戳的先后顺序处于当前位置的所述未提交的事务操作设置为等待提交状态,直到所述分析模块中不存在对应处于当前位置的所述未提交的事务操作的所述第一记录时,进行提交,并将被提交的所述事务操作于所述序列中删除。 优选的,所述预置策略为,将请求提交的事务提交,并将被提交的所述事务操作保留于所述序列中,直到所述第一调整模块中不存在对应被提交的所述事务操作的所述第一记录时,将被提交的所述事务操作于所述序列中删除。 优选的,还包括: 回滚模块,分别连接每个所述节点的所述排序模块及所述分析模块,用以对对应节点的未提交事务操作进行回滚操作,以及对对应需要回滚的所述事务操作的第二记录中的所述事务进行回滚操作。 优选的,还包括节点计算模块,用以计算并保存每个事务操作对应的节点集合。 优选的,每个所述节点还包括清除模块,所述清除模块连接所述提交模块和所述回滚模块,所述清除模块用以于所述第一记录对应的被读取的所述事务操作提交后清除对应的所述第一记录,以及用以于所述第二记录对应的读取其他事务操作的所述事务操作回滚后清除对应的所述第二记录。 优选的,每个所述节点还包括第一储存单元,所述第一储存单元连接所述分析模块、所述提交模块、所述回滚模块和所述清除模块。所述第一储存单元用以储存所述事务操作对应的公式,以及所述公式对应的基本操作; 所述分析模块将所述事务操作对应的所述公式储存于所述第一储存单元中,所述提交模块和所述回滚模块读取第一储存单元中储存的所出公式对应的所述基本操作,执行相应的所述基本操作;以及 所述清除模块对所述第一储存单元中储存的所述公式于提交或回滚后执行删除。 优选的,所述第一记录及所述第二记录储存于所述第一储存单元中。 上述技术方案的有益效果是: 本专利技术采用基于公式的并发控制方法(Formula Protocol forConcurrency, FPC),并采用动态调整时间戳的技术,目的是支持各个节点通过不共享的方式(share nothing)组成的分布式数据库系统中大量用户针对海量数据的并发事务操作,并且整个系统的吞吐率随节点数目的提高而线性增长。 由于摒弃了基于锁的机制,所以不会造成死锁的现象,也避免了由于处理锁所带来的系统开销。适合通过不共享的方式(share nothing)的分布式数据库系统。 由于存储公式,而不是实际的数据,节约了大量的中间结果,从而从本质上解决了大量存储空间的问题。对于互换式更新(commutative updates),比如增量式更新(incremental updates),可以直接采用增量(increment/decrement)操作,而不是更新操作,减少了冲突几率。 由于采用了动态调整的技术,改变了只能依照时间戳顺序提交的静态顺序同时保证了可串行化,提高了系统得吞本文档来自技高网
...

【技术保护点】
一种基于公式的时间戳动态调整并发控制方法,包括复数个分布节点,其特征在于,包括::时间戳生成模块,用以对每个到达的事务操作生成唯一的时间戳;时间戳计算模块,分别设置于复数个所述分布节点上,并连接所述时间戳生成模块,用以计算并储存对应预定的所述数据记录的还未提交的所述事务操作的最大时间戳;排序模块,分别设置于复数个所述分布节点上,用于根据所述时间戳的先后顺序形成对应预定的所述数据记录的所述事务操作公式的序列;分析模块,用以记录所述序列中,事务操作公式、事务需读取其他事务操作公式一一对应关系的第一记录、以及事务操作公式需被其他事务读取的一一对应关系的第二记录;提交模块,分别连接每个所述节点的所述排序模块、每个所述节点的所述分析模块,用以按照所述时间戳的动态调整的预置策略提交事务。

【技术特征摘要】

【专利技术属性】
技术研发人员:袁立言迟岩
申请(专利权)人:上海实方软件有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1