一种应用于分布式串行长事务的并发控制方法技术

技术编号:17541418 阅读:187 留言:0更新日期:2018-03-24 18:13
本发明专利技术涉及一种应用于分布式串行长事务的并发控制方法,其将每一数据版本的时间戳信息与数据分别存储,事务执行过程中,只读取时间戳存储区,并将之与最大时间戳序列比较,而不读取该版本的数据;同时,其将最大时间戳序列分布式存储,当将当前事务请求执行线程的时间戳与最大时间戳比较时,无需读取整个最大时间戳序列,仅需读取与当前时间戳ID相同的最大时间戳序列片段,提高了分布式事务的执行效率。

A concurrency control method for distributed serial long transactions

With the invention relates to a control method applied to distributed serial long transactions, the time stamp information and data of each version of the data are stored, during a transaction, only read timestamp storage area, and the maximum timestamp sequence comparison, without reading the version of the data; at the same time, the the maximum timestamp sequence of distributed storage, when the current transaction request timestamp and the maximum timestamp thread comparison, without reading the entire maximum timestamp sequence, only read with the maximum timestamp sequence current timestamp ID same, improves the execution efficiency of the distributed transaction.

【技术实现步骤摘要】
一种应用于分布式串行长事务的并发控制方法
本专利技术涉及计算机应用
,尤其涉及一种应用于分布式串行长事务的并发控制方法。
技术介绍
目前分布式事务处理广泛应用于金融、交通运输、保险、电子商务等领域中,其中串行长事务也称为长时间运行事务,是指那些耗费时间相当长的数据库事务,长事务运行通常需要一个小时、一天,甚至更长的时间。并发控制是事务处理的核心技术之一。并发控制是指数据库合理调度并发事务,避免并发事务之间的相互干扰造成数据产生不一致性。分布式事务并发控制策略主要有封锁和时间戳两种,其中时间戳策略是指每个事务在产生时,系统会赋予事务唯一的时间戳,越晚开始的事务获得的时间戳越大,当某事务与比其时间戳大的事务发生冲突时则会终止,因此基于时间戳的并发控制不会出现死锁。现有技术中提出了一种新的时间戳管理办法,引入最大时间戳向量TR=<t1,t2,t3,…,tn>,其中元素ti代表事务中每一个线程对应的最新的时间戳,即最大的时间戳,i代表不同的线程,并且TR中每一个时间戳ti都是唯一的。在事务处理过程中,将事务版本号、时间戳、修改标志位作为前缀单独存储在标头缓冲区(Header-buffer)中,将每个版本对应的数据存储于数据缓冲区(Data-buffer)中,在验证当前版本的数据是否发生改变时,只需访问标头缓冲区(Header-buffer)比较时间戳和版本号即可,若改变,则接下来访问当前版本号对应的数据,若未改变,则访问上一版本号对应的数据,而无需查询比较所有版本对应的所有数据。这样做大大减少事务处理查询的数据量,提高了效率,且不会影响查询的准确性。现有技术中提出的利用时间戳序列进行并发控制,且将时间戳与版本号等信息放在专门的存储区中单独管理的方法,不会出现死锁,并且能够有效地提高事务处理效率。但对于串行长事务处理问题,由于长事务产生的时间戳数据量同样是非常庞大,因此仅靠将时间戳单独管理的方法不能很好的解决长事务运行时间过长的问题,仍需进一步改进,以提高效率。因此,针对现有技术的不足,需要提供一种更有效的应用于分布式串行长事务的并发控制方法。
技术实现思路
本专利技术要解决的技术问题在于,针对现有技术中的缺陷,提供一种应用于分布式串行长事务处理的并发控制方法,该方法包括:步骤一:创建最大时间戳序列TR=<t1,t2,t3,…,tn>,其中元素ti代表事务执行过程中每一个线程i对应的最新的时间戳,由机器按照指令发生的时间顺序赋予;步骤二:利用分布式哈希算法(DHT)对最大时间戳序列中的时间戳ti进行分割,使时间戳数据均匀分布到各个节点上;步骤三:将当前执行请求对应的时间戳与分布在各个节点上的最大时间戳序列TR进行比较,根据比较结果更新数据版本。进一步的,所述步骤二中,利用分布式哈希算法(DHT)对最大时间戳序列中的时间戳ti进行分割,使时间戳数据均匀分布到各个节点上,具体包括:分布式系统中共有N台机器,每台机器的存储范围为M,利用哈希函数确定每一个哈希桶的ID,将最大时间戳数据依据对应的ID均匀分布到N台计算机中,其中使用的哈希函数为对i取余。进一步的,所述步骤三中,将当前执行请求对应的时间戳与分布在多台机器上的最大时间戳序列TR进行比较,根据比较结果更新数据版本,具体包括:旧的数据版本为Qold,当前的数据版本为Qcurrent,当前事务请求执行线程i的时间戳为ti(Qcurrent),当ti(Qcurrent)≤ti,(ti∈TR)时,则操作i回滚,数据版本保持Qold不变;当ti(Qcurrent)>ti,(ti∈TR)时,操作i继续执行,数据版本更新为Qcurrent,并且相应的,TR中的ti=ti(Qcurrent)。进一步的,使用远程直接数据存取技术(RDMA)技术在各节点间发送与接收数据和/或指令。进一步的,本专利技术还提供一种处理器,用于执行上述任一项所述的方法。本专利技术实施例提供的一种应用于分布式串行长事务处理的并发控制方法,将分布式哈希的思想应用于时间戳的管理中,将长事务产生的大量时间戳数据进一步分割,提高了分布式串行长事务的处理效率。附图说明图1是本专利技术实施例一分布式串行长事务处理的并发控制方法流程图;图2是本专利技术实施例一时间戳与其所指向的数据版本存储示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术的一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本专利技术保护的范围。实施例一如图1所示,本专利技术实施例提供的一种应用于分布式串行长事务处理的并发控制方法,该方法包括以下步骤:步骤一:创建最大时间戳序列TR=<t1,t2,t3,…,tn>。其中元素ti代表事务执行过程中每一个线程i对应的最新的时间戳,由机器按照指令发生的时间顺序赋予,对于分布式事务来说,每一个ti都是唯一的。步骤二:利用分布式哈希算法(DHT)对最大时间戳序列中的时间戳ti进行分割,使时间戳数据均匀分布到各个节点上,实现对时间戳的分布式存储。具体做法为:假设分布式系统中共有N台机器,每台机器的存储范围为M,利用哈希函数确定每一个哈希桶的ID,将最大时间戳数据依据对应的ID均匀分布到N台计算机中。本方案使用的哈希函数为对i取余。步骤三:将当前执行请求对应的时间戳与分布在各个节点上的最大时间戳序列TR进行比较。假设旧的数据版本为Qold,当前的数据版本为Qcurrent,当前事务请求执行线程i的时间戳为ti(Qcurrent),那么当ti(Qcurrent)≤ti,(ti∈TR)时,则操作i回滚,数据版本保持Qold不变;当ti(Qcurrent)>ti,(ti∈TR)时,操作i继续执行,数据版本更新为Qcurrent,并且相应的,TR中的ti=ti(Qcurrent)。在本专利技术实施例一中时,时间戳与其所指向的数据版本分别存储,如图2所示,在步骤三中读取当前事务请求执行线程i的时间戳ti(Qcurrent)时,仅访问存储时间戳的缓冲区,而不读取该时间戳对应的数据。本专利技术实施例一中,对最大时间戳向量进行分布式存储。在进行步骤三中,读取到当前事务请求执行线程i的时间戳ti(Qcurrent)后,首先依据哈希函数计算出ti(Qcurrent)对应的ID,再与分布式系统中每台机器的ID比较,接下来仅读取对应ID机器中存储的全部ti并与之比较,而不是读取整个长事务的所有ti,即全部的TR序列。本专利技术实施例一中,数据和指令在各节点间的发送与接收全部基于远程直接数据存取技术(RDMA:RemoteDirectMemoryAccess)技术。RDMA可以使一台计算机直接将数据通过网络传送到另一台计算机内存中,而不对操作系统造成任何影响。这项技术通过消除外部存储器复制和文本交换操作,因而能腾出总线空间和CPU周期用于改进应用系统性能,从而减少对带宽和处理器开销的需要,显著降低了时延,有利于本算法进一步缩短处理时间。本专利技术实施例一提出的应用于分布式串行长事务的并发本文档来自技高网
...
一种应用于分布式串行长事务的并发控制方法

【技术保护点】
一种应用于分布式串行长事务处理的并发控制方法,该方法包括:步骤一:创建最大时间戳序列TR=<t1,t2,t3,…,tn>,其中元素ti代表事务执行过程中每一个线程i对应的最新的时间戳,由机器按照指令发生的时间顺序赋予;步骤二:利用分布式哈希算法对最大时间戳序列中的时间戳ti进行分割,使时间戳数据均匀分布到各个节点上;步骤三:将当前执行请求对应的时间戳与分布在各个节点上的最大时间戳序列TR进行比较,根据比较结果更新数据版本。

【技术特征摘要】
1.一种应用于分布式串行长事务处理的并发控制方法,该方法包括:步骤一:创建最大时间戳序列TR=&lt;t1,t2,t3,…,tn&gt;,其中元素ti代表事务执行过程中每一个线程i对应的最新的时间戳,由机器按照指令发生的时间顺序赋予;步骤二:利用分布式哈希算法对最大时间戳序列中的时间戳ti进行分割,使时间戳数据均匀分布到各个节点上;步骤三:将当前执行请求对应的时间戳与分布在各个节点上的最大时间戳序列TR进行比较,根据比较结果更新数据版本。2.根据权利要求1所述的方法,其特征在于:所述步骤二中,利用分布式哈希算法对最大时间戳序列中的时间戳ti进行分割,使时间戳数据均匀分布到各个节点上,具体包括:分布式系统中共有N台机器,每台机器的存储范围为M,利用哈希函数确定每一个哈希桶的ID,将最大时间戳数据依据对应的ID均匀分布到...

【专利技术属性】
技术研发人员:王宏志赵志强王刚
申请(专利权)人:哈工大大数据哈尔滨智能科技有限公司
类型:发明
国别省市:黑龙江,23

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

1