基于机器学习的并发控制方法及系统技术方案

技术编号:26762404 阅读:30 留言:0更新日期:2020-12-18 23:11
本发明专利技术提供了一种基于机器学习的并发控制方法及系统,包括:将待执行事务进行初始化,并标记状态为执行中;判定执行中的事务是否存在未执行操作,若存在则查询操作执行策略继续执行,判断是否进行提前校验并执行对应操作;若不存在则根据当前事务的提交策略进行事务校验并提交;对事务累积的读操作进行正确性验证;查询事务的提交策略,根据提交策略和本事务建立的事务依赖关系进行等待操作直到事务依赖关系满足预设条件,对事务的读操作的集合进行正确性校验。本发明专利技术允许事务根据机器学习的训练结果进行任意行为的数据库操作,充分匹配不同应用场景的特点,最大程度提升系统的灵活性。

【技术实现步骤摘要】
基于机器学习的并发控制方法及系统
本专利技术涉及并发控制
,具体地,涉及一种基于机器学习的并发控制方法及系统。
技术介绍
随着现在计算机科学技术的高速发展,企业需要处理的数据规模进一步扩大,对数据库的各项要求也日益严格,要求数据库提供高可用兼具高性能的稳定服务。并发控制便是数据库得以实现这些高要求需求的核心设计之一,并发控制是指多个事务在同时存取数据库的同一数据时不破坏事务的隔离性以及数据库的统一性。无论在单机多核还是分布式场景下,不同用户的请求会被数据库何时处理,如何对目标数据进行处理等等,都需要并法控制的参与。与此同时,并发控制并不仅仅是隔离性和统一性的保障,同时也是数据库高性能的保障。数据库的应用场景是复杂而多样的,如联机事务处理场景和联机分析处理场景,如高竞争场景和对应的低竞争场景。不同的应用场景往往具有不同的访问模式和隔离性要求等等。并发控制技术研究数十年直至今日,很多研究工作提出了具有不同的设计理念的,应用了不同核心技术的面对不同场景的并发控制设计。这些工作根据不同场景的隔离性统一性要求和场景特性,不断地优化数据库并发控制设计以提升其处理性能。从经典的两阶段锁和乐观并发控制开始,研究领域不断提出或优化不同的并发控制设计,如面向高竞争场景设计应用了静态分析技术的技术,采用了多版本时间戳技术的技术等等。然而当下主流商用数据库仍然主要采用最经典的两阶段锁或者乐观并发控制作为它们的并发控制技术,其原因主要在于这些技术往往是采用某种技术并针对某一种特定场景进行设计或优化的,而在数据库的真实应用场景下,一些影响性能的关键因素往往是无法预测而不断变化的,比如数据的访问热度分布和事务的处理规模等等。基于以上分析,现有的并发控制技术无法提供稳定的高性能支持,某一种并发控制技术的单独应用能保障数据库的性能需求。总之,数据库并发控制领域待解决的问题如下:1.并发控制算法的设计和其固定的目标场景往往耦合性极大,需要在特定的工作场景才能发挥其最大性能,灵活性低下。2.不同的并发控制设计受其核心设计技术局限,无法最大化事务处理并发程度,性能方面仍有提升空间。在学术界,现有数据库并发控制的相关工作,它们的设计全部局限在特定的应用场景或者特定一种(或有限多种)核心设计技术。由于事务执行需要收集大量的数据访问信息和环境信息,同时数据库的应用场景往往是复杂多变的,导致现有的相关工作会因为事务调度策略的局限性损失性能,并丧失一定的灵活性。目前,还没有一种并发控制或数据库系统的工作,尝试过摆脱有限场景和有限核心技术的束缚,即通过总结归纳不同事务执行策略并通过机器学习进行策略求解,以提高并发控制算法的灵活性和性能。因此,先前的工作对数据库并发控制面向复杂场景的研究并不全面,还有一定的空白。专利文献CN111309982A(申请号:202010148015.8)公开了一种机器学习数据索引结构的自适应结构调整方法及系统,包括:选取节点步骤:按照预设的节点编号顺序逐个选取机器学习数据索引结构中的节点;分析节点步骤:分析选取得的节点,根据节点中缓存数据量和误差范围大小执行对应的结构调整操作:若节点中缓存数据量或节点内机器学习模型的预测误差过大,则执行节点分裂步骤;若节点与其相邻节点中的缓存数据量及误差范围都过小,则两节点执行节点合并步骤;否则,则结束流程。
技术实现思路
针对现有技术中的缺陷,本专利技术的目的是提供一种基于机器学习的并发控制方法及系统。根据本专利技术提供的基于机器学习的并发控制方法,包括:初始设定步骤:将待执行事务进行初始化,并标记状态为执行中;操作执行步骤:判定执行中的事务是否存在未执行操作,若存在未执行操作,则查询操作执行策略,执行未完成的操作,判断是否进行提前校验并执行对应操作;若不存在未执行操作,则根据当前事务的提交策略进行事务校验,并进行提交操作;提前校验步骤:对事务累积的读操作进行正确性验证,验证的读写集包括上一次提前校验成功至本次校验的读操作的集合;事务校验步骤:查询事务的提交策略,根据提交策略和本事务建立的事务依赖关系进行等待操作直到事务依赖关系满足预设条件,对事务的读操作的集合进行正确性校验;通过结合机器学习策略与实际数据库事务执行环境,对事务状态进行并发控制。优选的,若待执行事务为失败后重新执行的事务,则获取待执行事务的校验失败数据集合后继续执行。优选的,若提前校验成功,则将校验成功的操作信息写入元数据并继续执行操作;若提前校验失败,则将事务回滚至上一次提前校验成功的状态,重新执行操作。优选的,若事务校验成功则进行写操作提交,维护操作数据及热度元数据的访问,标记事务状态为已提交;若事务校验失败,则回滚事务的执行内容,标记事务状态为重执行,并重新执行此校验失败事务。优选的,所述操作执行步骤包括:查询操作执行策略步骤:获取本操作的操作标识符、待访问数据和热度元数据信息,并输入到本操作的执行策略中;根据查询的操作执行策略,获得操作的执行方法,进行数据访问。优选的,执行中的事务操作包括:读操作:通过索引读取数据地址,根据查询操作执行策略步骤获得的操作执行方法获悉读取数据的已提交最新版本或者是未提交的事务暂存的最新版本,进行本地临时缓存,并记录所读取数据的元数据;写操作:对已经读取的数据进行更新,将写操作的更新记录在临时缓存中;插入操作:插入空数据并记录该空数据的元数据,将插入操作的更新记录在临时缓存中。优选的,所述提前校验步骤包括:对当前事务的读集合中的数据,选择出上一校验成功位置到当前的读操作集合,通过记录的元数据,验证所读写集合中的数据是否被修改;若待验证的读操作读取版本为已提交最新版本,则通过记录的数据地址直接读取数据的当前版本,并将数据的当前版本信息与记录的数据版本信息进行比较,同时检查是否有未提交事务暂存的更新版本;若当前版本信息与数据版本信息一致且无未提交事务暂存的更新版本,则判定数据为未被修改,此操作校验通过;否则,判定数据为被修改,此操作校验失败;若全部待校验读操作均校验通过,则此数据校验通过,将数据访问信息写入元数据,包括暂存校验成功区间的写操作数据以及读操作访问信息;否则数据校验不通过,事务回滚至上一校验成功位置,重新执行。优选的,所述元数据包括数据地址、版本信息和事务访问信息;所述数据地址用于在数据库中直接访问数据,减少重复索引数据的额外开销;所述版本信息是数据访问记录的版本号,用于校验数据是否被修改;所述事务访问信息包括不同未提交事物对该数据库数据的执行相对顺序及操作类型,其中写操作额外包含暂存的更新版本,用于并发事物之间的同步以及依赖关系构建。优选的,服务器接收客户端发送的事务后,对事务分配唯一标识符,该标识符用于并发事务之间的依赖关系构建,每个事务执行一次操作执行后记录本事务的执行进度,记录事务执行的操作标识符,用于不同事务之间的等待操作。根据本专利技术提供的基本文档来自技高网
...

【技术保护点】
1.一种基于机器学习的并发控制方法,其特征在于,包括:/n初始设定步骤:将待执行事务进行初始化,并标记状态为执行中;/n操作执行步骤:判定执行中的事务是否存在未执行操作,若存在未执行操作,则查询操作执行策略,执行未完成的操作,判断是否进行提前校验并执行对应操作;若不存在未执行操作,则根据当前事务的提交策略进行事务校验,并进行提交操作;/n提前校验步骤:对事务累积的读操作进行正确性验证,验证的读写集包括上一次提前校验成功至本次校验的读操作的集合;/n事务校验步骤:查询事务的提交策略,根据提交策略和本事务建立的事务依赖关系进行等待操作直到事务依赖关系满足预设条件,对事务的读操作的集合进行正确性校验;/n通过结合机器学习策略与实际数据库事务执行环境,对事务状态进行并发控制。/n

【技术特征摘要】
1.一种基于机器学习的并发控制方法,其特征在于,包括:
初始设定步骤:将待执行事务进行初始化,并标记状态为执行中;
操作执行步骤:判定执行中的事务是否存在未执行操作,若存在未执行操作,则查询操作执行策略,执行未完成的操作,判断是否进行提前校验并执行对应操作;若不存在未执行操作,则根据当前事务的提交策略进行事务校验,并进行提交操作;
提前校验步骤:对事务累积的读操作进行正确性验证,验证的读写集包括上一次提前校验成功至本次校验的读操作的集合;
事务校验步骤:查询事务的提交策略,根据提交策略和本事务建立的事务依赖关系进行等待操作直到事务依赖关系满足预设条件,对事务的读操作的集合进行正确性校验;
通过结合机器学习策略与实际数据库事务执行环境,对事务状态进行并发控制。


2.根据权利要求1所述的基于机器学习的并发控制方法,其特征在于,若待执行事务为失败后重新执行的事务,则获取待执行事务的校验失败数据集合后继续执行。


3.根据权利要求1所述的基于机器学习的并发控制方法,其特征在于,若提前校验成功,则将校验成功的操作信息写入元数据并继续执行操作;若提前校验失败,则将事务回滚至上一次提前校验成功的状态,重新执行操作。


4.根据权利要求1所述的基于机器学习的并发控制方法,其特征在于,若事务校验成功则进行写操作提交,维护操作数据及热度元数据的访问,标记事务状态为已提交;若事务校验失败,则回滚事务的执行内容,标记事务状态为重执行,并重新执行此校验失败事务。


5.根据权利要求1所述的基于机器学习的并发控制方法,其特征在于,所述操作执行步骤包括:
查询操作执行策略步骤:获取本操作的操作标识符、待访问数据和热度元数据信息,并输入到本操作的执行策略中;
根据查询的操作执行策略,获得操作的执行方法,进行数据访问。


6.根据权利要求1所述的基于机器学习的并发控制方法,其特征在于,执行中的事务操作包括:
读操作:通过索引读取数据地址,根据查询操作执行策略步骤获得的操作执行方法获悉读取数据的已提交最新版本或者是未提交的事务暂存的最新版本,进行本地临时缓存,并记录所读取数据的元数据;
写操作:对已经读取的数据进行更新,将写操作的更新记录在临时缓存中;
插入操作:插入空数据并记录该空数据的元数据,将插入操作的更新记录在临时缓存中。


7.根据权利要求1所述的基于机...

【专利技术属性】
技术研发人员:王肇国王嘉琛臧斌宇陈海波
申请(专利权)人:上海交通大学
类型:发明
国别省市:上海;31

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

1