CN112100188A - 基于机器学习的并发控制方法及系统 - Google Patents
基于机器学习的并发控制方法及系统 Download PDFInfo
- Publication number
- CN112100188A CN112100188A CN202010905883.6A CN202010905883A CN112100188A CN 112100188 A CN112100188 A CN 112100188A CN 202010905883 A CN202010905883 A CN 202010905883A CN 112100188 A CN112100188 A CN 112100188A
- Authority
- CN
- China
- Prior art keywords
- transaction
- data
- read
- execution
- strategy
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000010801 machine learning Methods 0.000 title claims abstract description 38
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000012795 verification Methods 0.000 claims abstract description 48
- 238000003860 storage Methods 0.000 claims description 4
- 238000005096 rolling process Methods 0.000 claims description 3
- 238000010276 construction Methods 0.000 claims description 2
- 238000003780 insertion Methods 0.000 claims description 2
- 230000037431 insertion Effects 0.000 claims description 2
- 230000006399 behavior Effects 0.000 abstract description 3
- 238000012549 training Methods 0.000 abstract description 2
- 238000012545 processing Methods 0.000 description 20
- 238000005516 engineering process Methods 0.000 description 15
- 238000013461 design Methods 0.000 description 12
- 238000002955 isolation Methods 0.000 description 10
- 238000013500 data storage Methods 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 238000013486 operation strategy Methods 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种基于机器学习的并发控制方法及系统,包括:将待执行事务进行初始化,并标记状态为执行中;判定执行中的事务是否存在未执行操作,若存在则查询操作执行策略继续执行,判断是否进行提前校验并执行对应操作;若不存在则根据当前事务的提交策略进行事务校验并提交;对事务累积的读操作进行正确性验证;查询事务的提交策略,根据提交策略和本事务建立的事务依赖关系进行等待操作直到事务依赖关系满足预设条件,对事务的读操作的集合进行正确性校验。本发明允许事务根据机器学习的训练结果进行任意行为的数据库操作,充分匹配不同应用场景的特点,最大程度提升系统的灵活性。
Description
技术领域
本发明涉及并发控制技术领域,具体地,涉及一种基于机器学习的并发控制方法及系统。
背景技术
随着现在计算机科学技术的高速发展,企业需要处理的数据规模进一步扩大,对数据库的各项要求也日益严格,要求数据库提供高可用兼具高性能的稳定服务。并发控制便是数据库得以实现这些高要求需求的核心设计之一,并发控制是指多个事务在同时存取数据库的同一数据时不破坏事务的隔离性以及数据库的统一性。无论在单机多核还是分布式场景下,不同用户的请求会被数据库何时处理,如何对目标数据进行处理等等,都需要并法控制的参与。与此同时,并发控制并不仅仅是隔离性和统一性的保障,同时也是数据库高性能的保障。
数据库的应用场景是复杂而多样的,如联机事务处理场景和联机分析处理场景,如高竞争场景和对应的低竞争场景。不同的应用场景往往具有不同的访问模式和隔离性要求等等。并发控制技术研究数十年直至今日,很多研究工作提出了具有不同的设计理念的,应用了不同核心技术的面对不同场景的并发控制设计。这些工作根据不同场景的隔离性统一性要求和场景特性,不断地优化数据库并发控制设计以提升其处理性能。从经典的两阶段锁和乐观并发控制开始,研究领域不断提出或优化不同的并发控制设计,如面向高竞争场景设计应用了静态分析技术的技术,采用了多版本时间戳技术的技术等等。然而当下主流商用数据库仍然主要采用最经典的两阶段锁或者乐观并发控制作为它们的并发控制技术,其原因主要在于这些技术往往是采用某种技术并针对某一种特定场景进行设计或优化的,而在数据库的真实应用场景下,一些影响性能的关键因素往往是无法预测而不断变化的,比如数据的访问热度分布和事务的处理规模等等。基于以上分析,现有的并发控制技术无法提供稳定的高性能支持,某一种并发控制技术的单独应用能保障数据库的性能需求。
总之,数据库并发控制领域待解决的问题如下:
1.并发控制算法的设计和其固定的目标场景往往耦合性极大,需要在特定的工作场景才能发挥其最大性能,灵活性低下。
2.不同的并发控制设计受其核心设计技术局限,无法最大化事务处理并发程度,性能方面仍有提升空间。
在学术界,现有数据库并发控制的相关工作,它们的设计全部局限在特定的应用场景或者特定一种(或有限多种)核心设计技术。由于事务执行需要收集大量的数据访问信息和环境信息,同时数据库的应用场景往往是复杂多变的,导致现有的相关工作会因为事务调度策略的局限性损失性能,并丧失一定的灵活性。
目前,还没有一种并发控制或数据库系统的工作,尝试过摆脱有限场景和有限核心技术的束缚,即通过总结归纳不同事务执行策略并通过机器学习进行策略求解,以提高并发控制算法的灵活性和性能。因此,先前的工作对数据库并发控制面向复杂场景的研究并不全面,还有一定的空白。
专利文献CN111309982A(申请号:202010148015.8)公开了一种机器学习数据索引结构的自适应结构调整方法及系统,包括:选取节点步骤:按照预设的节点编号顺序逐个选取机器学习数据索引结构中的节点;分析节点步骤:分析选取得的节点,根据节点中缓存数据量和误差范围大小执行对应的结构调整操作:若节点中缓存数据量或节点内机器学习模型的预测误差过大,则执行节点分裂步骤;若节点与其相邻节点中的缓存数据量及误差范围都过小,则两节点执行节点合并步骤;否则,则结束流程。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种基于机器学习的并发控制方法及系统。
根据本发明提供的基于机器学习的并发控制方法,包括:
初始设定步骤:将待执行事务进行初始化,并标记状态为执行中;
操作执行步骤:判定执行中的事务是否存在未执行操作,若存在未执行操作,则查询操作执行策略,执行未完成的操作,判断是否进行提前校验并执行对应操作;若不存在未执行操作,则根据当前事务的提交策略进行事务校验,并进行提交操作;
提前校验步骤:对事务累积的读操作进行正确性验证,验证的读写集包括上一次提前校验成功至本次校验的读操作的集合;
事务校验步骤:查询事务的提交策略,根据提交策略和本事务建立的事务依赖关系进行等待操作直到事务依赖关系满足预设条件,对事务的读操作的集合进行正确性校验;
通过结合机器学习策略与实际数据库事务执行环境,对事务状态进行并发控制。
优选的,若待执行事务为失败后重新执行的事务,则获取待执行事务的校验失败数据集合后继续执行。
优选的,若提前校验成功,则将校验成功的操作信息写入元数据并继续执行操作;若提前校验失败,则将事务回滚至上一次提前校验成功的状态,重新执行操作。
优选的,若事务校验成功则进行写操作提交,维护操作数据及热度元数据的访问,标记事务状态为已提交;若事务校验失败,则回滚事务的执行内容,标记事务状态为重执行,并重新执行此校验失败事务。
优选的,所述操作执行步骤包括:
查询操作执行策略步骤:获取本操作的操作标识符、待访问数据和热度元数据信息,并输入到本操作的执行策略中;
根据查询的操作执行策略,获得操作的执行方法,进行数据访问。
优选的,执行中的事务操作包括:
读操作:通过索引读取数据地址,根据查询操作执行策略步骤获得的操作执行方法获悉读取数据的已提交最新版本或者是未提交的事务暂存的最新版本,进行本地临时缓存,并记录所读取数据的元数据;
写操作:对已经读取的数据进行更新,将写操作的更新记录在临时缓存中;
插入操作:插入空数据并记录该空数据的元数据,将插入操作的更新记录在临时缓存中。
优选的,所述提前校验步骤包括:
对当前事务的读集合中的数据,选择出上一校验成功位置到当前的读操作集合,通过记录的元数据,验证所读写集合中的数据是否被修改;
若待验证的读操作读取版本为已提交最新版本,则通过记录的数据地址直接读取数据的当前版本,并将数据的当前版本信息与记录的数据版本信息进行比较,同时检查是否有未提交事务暂存的更新版本;若当前版本信息与数据版本信息一致且无未提交事务暂存的更新版本,则判定数据为未被修改,此操作校验通过;否则,判定数据为被修改,此操作校验失败;
若全部待校验读操作均校验通过,则此数据校验通过,将数据访问信息写入元数据,包括暂存校验成功区间的写操作数据以及读操作访问信息;否则数据校验不通过,事务回滚至上一校验成功位置,重新执行。
优选的,所述元数据包括数据地址、版本信息和事务访问信息;
所述数据地址用于在数据库中直接访问数据,减少重复索引数据的额外开销;
所述版本信息是数据访问记录的版本号,用于校验数据是否被修改;
所述事务访问信息包括不同未提交事物对该数据库数据的执行相对顺序及操作类型,其中写操作额外包含暂存的更新版本,用于并发事物之间的同步以及依赖关系构建。
优选的,服务器接收客户端发送的事务后,对事务分配唯一标识符,该标识符用于并发事务之间的依赖关系构建,每个事务执行一次操作执行后记录本事务的执行进度,记录事务执行的操作标识符,用于不同事务之间的等待操作。
根据本发明提供的基于机器学习的并发控制系统,包括:
初始设定模块:将待执行事务进行初始化,并标记状态为执行中;
操作执行模块:判定执行中的事务是否存在未执行操作,若存在未执行操作,则查询操作执行策略,执行未完成的操作,判断是否进行提前校验并执行对应操作;若不存在未执行操作,则根据当前事务的提交策略进行事务校验,并进行提交操作;
提前校验模块:对事务累积的读操作进行正确性验证,验证的读写集包括上一次提前校验成功至本次校验的读操作的集合;
事务校验模块:查询事务的提交策略,根据提交策略和本事务建立的事务依赖关系进行等待操作直到事务依赖关系满足预设条件,对事务的读操作的集合进行正确性校验;
通过结合机器学习策略与实际数据库事务执行环境,对事务状态进行并发控制。
与现有技术相比,本发明具有如下的有益效果:
1、本发明允许事务根据机器学习的训练结果进行任意行为的数据库操作,充分匹配不同应用场景的特点,最大程度提升系统的灵活性;
2、本发明允许事务间进行乱序的操作行为,依赖提前校验和事务校验保障正确性,最大程度拓展事务间的并行程度,提升性能;
3、本发明使用多版本数据存储,允许事务读取不同版本的数据,只读事务可以利用这一特性避免对读写事务的阻塞;
4、本发明对事务访问数据以及校验失败数据进行元数据维护,作为策略推理的输入,提升系统对不同应用场景的适应能力。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明的实施流程图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
实施例:
如图1,根据本发明提供的一种基于机器学习的并发控制方法,客户端发起请求时,会将需要执行的事务发送给存储有所需数据的服务器。根据该并发控制方法,服务器在接收客户端发送的事务后,会为事务分配一个唯一的标识符,用于事务执行阶段的事务依赖维护以及事务校验,会为不同类型事务的不同操作分配一个唯一的标识符,用于标识事务的执行进度。该并发控制方法会确保一系列事务的最终执行结果满足可串行化隔离级别。其特征在于,一个正在执行的事务(当前事务)会依次执行以下步骤:
步骤1.初始步骤:查询该事务是否是“重执行”事务,若是失败事务重新执行,则执行排序步骤2;若不是失败事务重新执行,则执行操作执行步骤3。
步骤2.重执行步骤:获取失败事务的校验失败数据集合,并记录在本地,随后执行操作执行步骤3。
步骤3.操作执行步骤:设置当前事务状态为“执行中”,判断是否已经执行完所有事务操作。如果仍有事务操作没有执行完,则记录事务执行进度,随后进行操作策略查询步骤4;若所有事务操作已经执行完,则执行提交策略查询步骤9。
步骤4.操作策略查询步骤:事务在数据库中搜索到即将进行操作的数据地址,将该操作的操作标识符以及数据的热度元数据信息作为机器学习模型的推理输入,机器学习模型将本次操作的执行策略交付给事务,具体而言包括等待策略以及操作的执行方法,随后执行操作等待步骤5。
步骤5.操作等待步骤:根据操作策略查询步骤4获得的操作执行策略其中的等待策略,结合事务当前维护的依赖关系,对本事务所依赖的事务进行进度查询,等待直至所有依赖事务的进度均满足等待策略的要求。随后根据本次操作的操作类型进行不同步骤,具体地,读操作执行读操作步骤6,写操作执行写操作步骤7。
步骤6.读数据步骤:通过索引读取数据地址,根据执行策略获得读数据操作的目标版本,具体地,读取数据的已提交最新版本或者是未提交的事务暂存的最新版本,进行本地临时缓存,并记录所读取数据的元数据,随后执行提前校验步骤8。
步骤7.写数据步骤:若本事务操作是写操作,表示是对已经读取的数据进行更新,将写操作的更新记录在临时缓存中,随后执行提前校验步骤8。
步骤8.提前校验步骤:对事务执行的区间进行正确性验证,具体地,区间内容为包括上一次提前校验成功至本次提前校验的读写集合,校验方法为检查区间中读集合中所有读操作的数据版本以及数据访问信息是否满足可串行化关系。具体地,若待验证的读操作读取版本为已提交最新版本,则通过记录的数据地址直接读取数据的当前版本,并将数据的当前版本信息与记录的数据版本信息进行比较,同时检查是否有未提交事务暂存的更新版本,若当前版本信息与数据版本信息一致且无未提交事务暂存的更新版本,则数据为未被修改,此操作校验通过,否则,判定数据为被修改,此操作校验失败。若全部待校验读操作均校验通过,则此数据校验通过,将数据访问信息写入元数据,包括暂存校验成功区间的写操作数据以及读操作访问信息,继续进行事务的执行,即操作执行步骤3;否则数据校验不通过,则事务回滚至上一次提前校验成功位置,重新进行事务的执行,即操作执行步骤3。
步骤9.提交策略查询步骤:事务将该事务的类型信息作为机器学习模型的推理输入,机器学习模型将本事务的提交策略交付给事务,具体而言包括事务提交前的等待策略,随后执行事务提交等待步骤10。
步骤10.事务提交等待步骤:根据提交策略查询步骤9获得的事务提交前等待策略,结合事务当前维护的依赖关系,对本事务所依赖的事务进行进度查询,等待直至所有依赖事务的进度均满足等待策略的要求。随后执行事务校验步骤11。
步骤11.事务校验步骤:对事务的读集合进行正确性校验,具体地,要求数据的版本信息和提交顺序需要满足事务的依赖关系,以保证可串行化隔离级别。根据校验的结果,若校验通过则执行事务提交步骤12;若校验失败则执行事务回滚步骤13。
步骤12.事务提交步骤:通过读写集中记录的元数据中的数据地址,将所有记录在临时缓存中的数据更新提交入数据库中,维护操作数据的访问及热度元数据,标记事务状态为“已提交”,执行结束步骤14。
步骤13.事务回滚步骤:记录校验失败数据集合,回滚事务的执行内容,维护操作数据的访问及热度元数据,标记事务状态为“重执行”,重新执行校验失败事务,执行结束步骤14。
步骤14.结束步骤:结束事务执行。
具体地,采用多版本数据存储持久化数据。事务根据数据的键(Key)索引到对应的数据,再使用时间戳作为版本号。数据的读取存在两种方式,一是根据时间戳版本号读取已提交的最新版本,而是根据事务访问信息读取最新的未提交事务的暂存版本。所使用的数据存储应保证在事务从创建到销毁的生命周期内,且该地址可以同时服务于上述两种数据读取方式,事务可以通过所记录的数据地址,直接访问数据。
具体地,数据元数据包络数据的地址,版本信息,事务访问信息以及数据热度信息。数据地址用于在数据存储中直接访问数据,减少重复索引数据的开销。数据版本信息服务于正确性校验,确认事务的执行是否合法。事务访问信息用于读操作读取未提交事务的暂存版本以及事务间依赖关系的构建。数据热度信息为该数据被访问的频繁程度,用于提供更高精度的策略推理。
具体地,所述的操作等待步骤5和所述的事务提交等待步骤10描述的事务依赖关系,指事务根据读写的版本信息以及访问顺序建立起的关系,具体地,读操作事务会依赖自己所读版本的写事务,写操作事务会依赖自己写操作时至同数据上一个写操作之间所有的读操作所属事务。
具体地,所述的操作等待步骤5和所述的事务提交等待步骤10描述的事务进度查询,其事务进度的维护来源于操作执行步骤3的进度维护操作。具体地,事务会记录本事务正在执行的操作标识符,其他事务通过这一信息了解到其他事务的执行进度。
具体地,所述的写数据步骤7,如果写操作是插入操作,需要先在数据库存储中插入合法的空数据,并记录相应的空数据相关元数据,用于校验阶段保障事务执行的正确性。
具体地,所述的提前校验步骤8和事务校验步骤11中描述的正确性校验,在本实施方法中指可串行化隔离级别的校验,需要说明的是,该发明保护范围不局限于可串行化隔离级别,其他数据库隔离级别或者自定义的隔离级别也是合理的。
具体地,所述的提前校验步骤8和事务校验步骤11中描述的对读操作的校验,因为当前事务已经记录过所需读取数据的元数据,可以根据记录的数据地址直接访问数据。
本发明在数据库进行事务处理时,通过推理事务处理策略进行事务处理操作的决策,提高了事务处理的性能和灵活性;通过事务校验和重新执行保障事务执行的正确性;通过记录事务处理的环境信息提高训练事务处理策略的精度。本发明可以充分利用机器学习的自动化学习能力,最大程度构建高并发度的事务执行,极大地提升数据库的事务处理性能;可以充分利用不同事务处理操作组合,保证高灵活性以适应不同的应用场景;利用离线学习降低对数据库性能的开销,避免了不必要的性能开销。
本发明提供的基于机器学习的并发控制系统,可以通过基于机器学习的并发控制方法的步骤流程实现。本领域技术人员可以将机器学习的并发控制方法理解为所述机器学习的并发控制系统的优选例。
本发明在数据库事务处理的基础上,通过推理事务处理策略进行事务处理操作的决策,提高了事务处理的性能和灵活性;通过事务校验和重新执行保障事务执行的正确性;通过记录事务处理的环境信息提高训练事务处理策略的精度。与现有技术相比,本发明可以充分利用机器学习的自动化学习能力,最大程度构建高并发度的事务执行,极大地提升数据库的事务处理性能;可以充分利用不同事务处理操作组合,保证高灵活性以适应不同的应用场景;利用离线学习降低对数据库性能的开销,避免了不必要的性能开销。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
Claims (10)
1.一种基于机器学习的并发控制方法,其特征在于,包括:
初始设定步骤:将待执行事务进行初始化,并标记状态为执行中;
操作执行步骤:判定执行中的事务是否存在未执行操作,若存在未执行操作,则查询操作执行策略,执行未完成的操作,判断是否进行提前校验并执行对应操作;若不存在未执行操作,则根据当前事务的提交策略进行事务校验,并进行提交操作;
提前校验步骤:对事务累积的读操作进行正确性验证,验证的读写集包括上一次提前校验成功至本次校验的读操作的集合;
事务校验步骤:查询事务的提交策略,根据提交策略和本事务建立的事务依赖关系进行等待操作直到事务依赖关系满足预设条件,对事务的读操作的集合进行正确性校验;
通过结合机器学习策略与实际数据库事务执行环境,对事务状态进行并发控制。
2.根据权利要求1所述的基于机器学习的并发控制方法,其特征在于,若待执行事务为失败后重新执行的事务,则获取待执行事务的校验失败数据集合后继续执行。
3.根据权利要求1所述的基于机器学习的并发控制方法,其特征在于,若提前校验成功,则将校验成功的操作信息写入元数据并继续执行操作;若提前校验失败,则将事务回滚至上一次提前校验成功的状态,重新执行操作。
4.根据权利要求1所述的基于机器学习的并发控制方法,其特征在于,若事务校验成功则进行写操作提交,维护操作数据及热度元数据的访问,标记事务状态为已提交;若事务校验失败,则回滚事务的执行内容,标记事务状态为重执行,并重新执行此校验失败事务。
5.根据权利要求1所述的基于机器学习的并发控制方法,其特征在于,所述操作执行步骤包括:
查询操作执行策略步骤:获取本操作的操作标识符、待访问数据和热度元数据信息,并输入到本操作的执行策略中;
根据查询的操作执行策略,获得操作的执行方法,进行数据访问。
6.根据权利要求1所述的基于机器学习的并发控制方法,其特征在于,执行中的事务操作包括:
读操作:通过索引读取数据地址,根据查询操作执行策略步骤获得的操作执行方法获悉读取数据的已提交最新版本或者是未提交的事务暂存的最新版本,进行本地临时缓存,并记录所读取数据的元数据;
写操作:对已经读取的数据进行更新,将写操作的更新记录在临时缓存中;
插入操作:插入空数据并记录该空数据的元数据,将插入操作的更新记录在临时缓存中。
7.根据权利要求1所述的基于机器学习的并发控制方法,其特征在于,所述提前校验步骤包括:
对当前事务的读集合中的数据,选择出上一校验成功位置到当前的读操作集合,通过记录的元数据,验证所读写集合中的数据是否被修改;
若待验证的读操作读取版本为已提交最新版本,则通过记录的数据地址直接读取数据的当前版本,并将数据的当前版本信息与记录的数据版本信息进行比较,同时检查是否有未提交事务暂存的更新版本;若当前版本信息与数据版本信息一致且无未提交事务暂存的更新版本,则判定数据为未被修改,此操作校验通过;否则,判定数据为被修改,此操作校验失败;
若全部待校验读操作均校验通过,则此数据校验通过,将数据访问信息写入元数据,包括暂存校验成功区间的写操作数据以及读操作访问信息;否则数据校验不通过,事务回滚至上一校验成功位置,重新执行。
8.根据权利要求1所述的基于机器学习的并发控制方法,其特征在于,所述元数据包括数据地址、版本信息和事务访问信息;
所述数据地址用于在数据库中直接访问数据,减少重复索引数据的额外开销;
所述版本信息是数据访问记录的版本号,用于校验数据是否被修改;
所述事务访问信息包括不同未提交事物对该数据库数据的执行相对顺序及操作类型,其中写操作额外包含暂存的更新版本,用于并发事物之间的同步以及依赖关系构建。
9.根据权利要求1所述的基于机器学习的并发控制方法,其特征在于,服务器接收客户端发送的事务后,对事务分配唯一标识符,该标识符用于并发事务之间的依赖关系构建,每个事务执行一次操作执行后记录本事务的执行进度,记录事务执行的操作标识符,用于不同事务之间的等待操作。
10.一种基于机器学习的并发控制系统,其特征在于,包括:
初始设定模块:将待执行事务进行初始化,并标记状态为执行中;
操作执行模块:判定执行中的事务是否存在未执行操作,若存在未执行操作,则查询操作执行策略,执行未完成的操作,判断是否进行提前校验并执行对应操作;若不存在未执行操作,则根据当前事务的提交策略进行事务校验,并进行提交操作;
提前校验模块:对事务累积的读操作进行正确性验证,验证的读写集包括上一次提前校验成功至本次校验的读操作的集合;
事务校验模块:查询事务的提交策略,根据提交策略和本事务建立的事务依赖关系进行等待操作直到事务依赖关系满足预设条件,对事务的读操作的集合进行正确性校验;
通过结合机器学习策略与实际数据库事务执行环境,对事务状态进行并发控制。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010905883.6A CN112100188B (zh) | 2020-09-01 | 2020-09-01 | 基于机器学习的并发控制方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010905883.6A CN112100188B (zh) | 2020-09-01 | 2020-09-01 | 基于机器学习的并发控制方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112100188A true CN112100188A (zh) | 2020-12-18 |
CN112100188B CN112100188B (zh) | 2024-05-28 |
Family
ID=73757433
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010905883.6A Active CN112100188B (zh) | 2020-09-01 | 2020-09-01 | 基于机器学习的并发控制方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112100188B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022156647A1 (zh) * | 2021-01-25 | 2022-07-28 | 华为技术有限公司 | 一种数据库管理方法及装置 |
CN116489090A (zh) * | 2023-06-16 | 2023-07-25 | 北京百度网讯科技有限公司 | 流量控制方法、装置、系统、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110153566A1 (en) * | 2009-12-18 | 2011-06-23 | Microsoft Corporation | Optimistic serializable snapshot isolation |
US20190087600A1 (en) * | 2015-07-07 | 2019-03-21 | Private Machines Inc. | Secure data management system and method |
CN109819023A (zh) * | 2018-12-29 | 2019-05-28 | 杭州励飞软件技术有限公司 | 分布式事务处理方法及相关产品 |
CN110019443A (zh) * | 2017-09-08 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 非关系型数据库事务处理方法、装置及电子设备 |
CN110515707A (zh) * | 2019-08-22 | 2019-11-29 | 上海交通大学 | 基于预先事务处理的确定性并发控制方法及系统 |
-
2020
- 2020-09-01 CN CN202010905883.6A patent/CN112100188B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110153566A1 (en) * | 2009-12-18 | 2011-06-23 | Microsoft Corporation | Optimistic serializable snapshot isolation |
US20190087600A1 (en) * | 2015-07-07 | 2019-03-21 | Private Machines Inc. | Secure data management system and method |
CN110019443A (zh) * | 2017-09-08 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 非关系型数据库事务处理方法、装置及电子设备 |
CN109819023A (zh) * | 2018-12-29 | 2019-05-28 | 杭州励飞软件技术有限公司 | 分布式事务处理方法及相关产品 |
CN110515707A (zh) * | 2019-08-22 | 2019-11-29 | 上海交通大学 | 基于预先事务处理的确定性并发控制方法及系统 |
Non-Patent Citations (1)
Title |
---|
童记超;林基明;陈鹤;张向利;班文娇: "分布式数据库事务分类策略研究", 计算机工程, vol. 43, no. 1 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022156647A1 (zh) * | 2021-01-25 | 2022-07-28 | 华为技术有限公司 | 一种数据库管理方法及装置 |
CN116489090A (zh) * | 2023-06-16 | 2023-07-25 | 北京百度网讯科技有限公司 | 流量控制方法、装置、系统、电子设备及存储介质 |
CN116489090B (zh) * | 2023-06-16 | 2023-10-24 | 北京百度网讯科技有限公司 | 流量控制方法、装置、系统、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112100188B (zh) | 2024-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230129099A1 (en) | Adaptive query routing in a replicated database environment | |
CN111338766B (zh) | 事务处理方法、装置、计算机设备及存储介质 | |
CN101495976B (zh) | 用于直接更新软件事务存储器的方法和系统 | |
US8874515B2 (en) | Low level object version tracking using non-volatile memory write generations | |
EP3111325B1 (en) | Automatically retrying transactions with split procedure execution | |
US7873683B2 (en) | File system having transaction record coalescing | |
US11386065B2 (en) | Database concurrency control through hash-bucket latching | |
US20140344311A1 (en) | Systems and methods for asynchronous schema changes | |
US10642792B2 (en) | Distributed transaction conflict resolution | |
EP3396560B1 (en) | Database operating method and device | |
JPH0887511A (ja) | B木インデクスの管理方法およびシステム | |
CN112100188B (zh) | 基于机器学习的并发控制方法及系统 | |
EP3396542B1 (en) | Database operating method and device | |
US8600962B2 (en) | Transaction processing device, transaction processing method, and transaction processing program | |
CN115145697A (zh) | 数据库事务的处理方法、装置及电子设备 | |
CN115237444A (zh) | 基于版本号的并发控制方法、装置、设备及存储介质 | |
Meir et al. | Lockless transaction isolation in hyperledger fabric | |
CN110515707B (zh) | 基于预先事务处理的确定性并发控制方法及系统 | |
CN115495495A (zh) | 事务处理方法、分布式数据库系统、集群及介质 | |
CN110955672B (zh) | 面向乐观并发控制的多版本支持方法及系统 | |
CN114846458A (zh) | 分布式可串行化并发控制方案 | |
US20230069165A1 (en) | Byzantine fault tolerant pre-preprocessing for state machine replication | |
US20230153327A1 (en) | Loading data in a target database system using different synchronization programs | |
TWI805544B (zh) | 資料庫操作方法及裝置 | |
CN116745756A (zh) | 快速跳跃列表清除 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |