首页 / 专利库 / 资料储存系统 / 数据库管理系统 / 一种新型分布式NEWSQL数据库智能事务优化方法

一种新型分布式NEWSQL数据库智能事务优化方法

阅读:289发布:2020-05-13

专利汇可以提供一种新型分布式NEWSQL数据库智能事务优化方法专利检索,专利查询,专利分析的服务。并且本 发明 特别涉及一种新型分布式NEWSQL 数据库 智能事务优化方法。该新型分布式NEWSQL数据库智能事务优化方法,基于人工设置 开关 开启优化方案,并基于数据流Flow传递开关状态;当出现写读冲突事务时,先判断是否进行优化;若不优化,则启动原有SSI事务执行器,若优化则启动RC事务执行器,事务执行结束后,启动各自的事务提交器进行提交或中止。该新型分布式NEWSQL数据库智能事务优化方法,解决了在现有分布式NewSQL数据库中存在的事务写读过程中并发性低的问题,能够在不破坏数据库ACID特性的前提下显著提升数据库的 数据处理 效率,提升了写读冲突场景的并发性能,达到了事务降级的目的。,下面是一种新型分布式NEWSQL数据库智能事务优化方法专利的具体信息内容。

1.一种新型分布式NEWSQL数据库智能事务优化方法,其特征在于,包括以下步骤:
步骤1、基于人工设置开关开启优化方案,并基于数据流Flow传递开关状态;
步骤2、当出现写读冲突事务时,先判断是否进行优化;
若不优化,则启动原有SSI事务执行器,若优化则启动RC事务执行器,事务执行结束后,启动各自的事务提交器进行提交或中止;
步骤3、提交阶段;
网关节点统计各节点运行状态,当所有节点状态均为准备时,提交写事务,若有一个节点状态为中止,则不优化时,SSI事务提交器中止整个写事务,写事务结束后,读事务继续运行;而优化时,RC事务提交器中止整个读事务。
2.根据权利要求1所述的新型分布式NEWSQL数据库智能事务优化方法,其特征在于:所述步骤1中,具体包括以下步骤:
(1)在客户端输入已规定的开启优化方案的SQL语句;
(2)构建分布式逻辑计划,将客户端发送的事务请求拆分成树形结构
(3)将开关状态传递至leafTXN;
(4)通过banch request传入执行节点;
(5)执行节点获取被发送的banch request,并从中获取开关状态。
3.根据权利要求2所述的新型分布式NEWSQL数据库智能事务优化方法,其特征在于:所述步骤1中,系统支持自动识别和人工设置两种降级启动模式;系统启动后首先判断是否已经进行人工设置启动优化,是则直接进入RC事务执行器,否则进入自动识别模式,由系统根据现有事务执行方式判断是否需要优化。
4.根据权利要求3所述的新型分布式NEWSQL数据库智能事务优化方法,其特征在于:所述步骤1中,为满足复杂的现实场景,用户开启客户端后,可以通过人工设置自主选择优化的时间和方式,优化设置方式包括语句设置和会话设置两种;
所述语句设置可以使得用户开启的当前事务的隔离级别为RC隔离级别;
所述会话设置可以使得用户开启的当前会话的事务的隔离级别为RC隔离级别;
所述语句设置和会话设置的优先级依次递增,且在不主动设置优先级低的设置方式时,自动继承优先级高的设置结果;数据库管理系统通过读取客户端发送的用户优化语句,进行语法分析和词法分析分解SQL层语句,并生成语法分析树,事务执行器通过分析树结构判断是否释放降级开关以及释放哪种开关。
5.根据权利要求3所述的新型分布式NEWSQL数据库智能事务优化方法,其特征在于:所述步骤1中,在用户不进行自主设置的情况下,数据库管理系统处于自动识别模式,针对不同的事务组成情况和应对场景自动进行事务隔离级别的最优方案选择;用户通过在数据库中开启全局属性的自动识别模式开关,可以使得该用户的所有操作由系统自动识别是否需要进行优化;当产生写读冲突时,读事务在没有进行人工设置且开启自动识别模式的情况下,会根据事务情况和安全性需求设置隔离级别。
6.根据权利要求1所述的新型分布式NEWSQL数据库智能事务优化方法,其特征在于:所述步骤2中,自动判断是否进行优化,具体包括以下步骤:
(1)在客户端输入已规定开启自动识别模式的SQL语句;
(2)读事务发现自己读取的数据存在写意图,触发判断机制;
(3)判断是否设置人工设置,若有则直接进入RC事务执行器,否则判断是否设置自动识别模式;
如果设置自动识别模式,则读事务获得自动优化权限,开启优化方案,基于写意图获取数据旧版本,将获取的数据旧版本赋予读事务,读事务继续运行;
如果未设置自动识别模式,则读事务不进行优化,进入等待状态。
7.根据权利要求6所述的新型分布式NEWSQL数据库智能事务优化方法,其特征在于:所述步骤2中,优化后的事务执行器中读事务T2不会进入等待状态,而是通过写意图中存储的产生写意图的事务ID获取写事务的时间戳t1,通过搜索具有相同索引的已存在版本,寻找时间戳最靠近t1的数据,即最新的已提交版本,来减少等待时间,提高并发度;读事务的各子事务在执行节点上运行结束后,节点运行成功状态由工作变为准备,失败则变为中止,之后启动RC事务提交器。
8.根据权利要求6所述的新型分布式NEWSQL数据库智能事务优化方法,其特征在于:所述步骤2中,未设置自动识别模式时,等待写事务结束,写事务的各子事务在执行节点上运行结束后,节点运行成功状态由工作变为准备,失败则变为中止,之后启动SSI事务提交器。

说明书全文

一种新型分布式NEWSQL数据库智能事务优化方法

技术领域

[0001] 本发明涉及数据库事务技术领域,特别涉及一种新型分布式NEWSQL数据库智能事务优化方法。

背景技术

[0002] 事务(Transaction)是由一系列对系统中数据进行访问与更新的操作所组成的一个程序执行逻辑单元。事务具有四个特征,分别是原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability),简称为事务的ACID特性。
[0003] 其中,原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。一致性是指事务前后数据的完整性必须保持一致。事务的隔离性是指多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离。
[0004] 在数据库系统中,多个会话(session)可以访问同一个数据库的同一个表的同一行数据。这样,对于数据而言,就意味着在同一个时间段内,有多个会话可以对其施加操作(或读操作或写操作),读写操作施加的顺序不同会造成冲突事务,产生脏读等异常现象,分为读-写和写-写的问题。
[0005] 并发控制技术便是实现原子性、一致性和隔离性的重要技术之一。并发控制技术的本质是对并发的事务实现正确(保证数据的一致性、保证事务操作的原子性)、高效(用“可串行性/可恢复性/严格性”实现可并发,部分情况下牺牲一致性,或用低级别的隔离性容忍不一致以提高并发执行效率)的调度。
[0006] 多版本并发控制技术(multiversion concurrency control,MVCC)并不是一个可单独使用的事务并发控制技术,需要依赖于其他并发控制技术来实现,用以改善并发控制技术以提高并发度,常见的有基于时间戳的“多版本时间戳排序机制”,基于两阶段封协议的“多版本两阶段封锁协议”。
[0007] 多版本时间戳排序机制通过开始事务的时间戳值来排序事物的提交顺序以及本协议确定的规则来确保可串行化。但是,在现有隔离级别为SSI的状态下,出现写读事务冲突时,读事务会进入“pending”状态,这在很大程度上限制了并发程度,存在并发性低的问题。
[0008] 因为分布式多节点的特点,在分布式系统中,每个节点虽然可以知晓自己的操作时成功或者失败,却无法知道其他节点的操作的成功或失败。当一个事务跨越多个节点时,为了保持事务的ACID特性,需要引入一个作为协调者的组件来统一掌控所有节点(称作参与者)的操作结果并最终指示这些节点是否要把操作结果进行真正的提交(比如将更新后的数据写入磁盘等等)。二阶段提交(Two-phase Commit)的算法思路可以概括为:参与者将操作成败通知协调者,再由协调者根据所有参与者的反馈情报决定各参与者是否要提交操作还是中止操作。
[0009] 为了解决在现有分布式NewSQL数据库中存在的事务写读过程中存在的并发性低的问题,本发明提出了一种新型分布式NEWSQL数据库智能事务优化方法。

发明内容

[0010] 本发明为了弥补现有技术缺陷,提供了一种简单高效的新型分布式NEWSQL数据库智能事务优化方法。
[0011] 本发明是通过如下技术方案实现的:
[0012] 一种新型分布式NEWSQL数据库智能事务优化方法,其特征在于:包括以下步骤:
[0013] 步骤1、基于人工设置开关开启优化方案,并基于数据流Flow传递开关状态;
[0014] 步骤2、当出现写读冲突事务时,先判断是否进行优化;
[0015] 若不优化,则启动原有SSI(Serializable Snapshot Isolation,快照隔离的可串行化)事务执行器,若优化则启动RC(Read Committed,读已提交)事务执行器,事务执行结束后,启动各自的事务提交器进行提交(commit)或中止(abort);
[0016] 步骤3、提交Commit阶段;
[0017] 网关节点统计各节点运行状态,当所有节点状态均为准备“prepared”时,提交写事务,若有一个节点状态为中止“aborted”,不优化时,SSI事务提交器中止整个写事务,写事务结束后,读事务继续运行;而优化时,RC事务提交器则中止整个读事务。
[0018] 所述步骤1中,具体包括以下步骤:
[0019] (1)在客户端输入已规定的开启优化方案的SQL语句;
[0020] (2)构建分布式逻辑计划,将客户端发送的事务请求拆分成树形结构
[0021] (3)将开关状态传递至leafTXN;
[0022] (4)通过banch request传入执行节点;
[0023] (5)执行节点获取被发送的banch request,并从中获取开关状态。
[0024] 所述步骤1中,系统支持自动识别和人工设置两种降级启动模式;系统启动后首先判断是否已经进行人工设置启动优化,是则直接进入RC事务执行器,否则进入自动识别模式,由系统根据现有事务执行方式判断是否需要优化。
[0025] 所述步骤1中,为满足复杂的现实场景,用户开启客户端后,可以通过人工设置自主选择优化的时间和方式,优化设置方式包括语句设置和会话设置两种;
[0026] 所述语句设置可以使得用户开启的当前事务的隔离级别为RC隔离级别;
[0027] 所述会话设置可以使得用户开启的当前会话的事务的隔离级别为RC隔离级别;
[0028] 所述语句设置和会话设置的优先级依次递增,且在不主动设置优先级低的设置方式时,自动继承优先级高的设置结果;数据库管理系统通过读取客户端发送的用户优化语句,进行语法分析和词法分析分解SQL层语句,并生成语法分析树,事务执行器通过分析树结构判断是否释放降级开关以及释放哪种开关。
[0029] 所述步骤1中,在用户不进行自主设置的情况下,数据库管理系统处于自动识别模式,针对不同的事务组成情况和应对场景自动进行事务隔离级别的最优方案选择;用户通过在数据库中开启全局属性的自动识别模式开关,可以使得该用户的所有操作由系统自动识别是否需要进行优化;当产生写读冲突时,读事务在没有进行人工设置且开启自动识别模式的情况下,会根据事务情况和安全性需求设置隔离级别。
[0030] 所述步骤2中,自动判断是否进行优化,具体包括以下步骤:
[0031] (1)在客户端输入已规定开启自动识别(auto)模式的SQL语句;
[0032] (2)读事务发现自己读取的数据存在写意图(write intent),触发判断机制;
[0033] (3)判断是否设置人工设置,若有则直接进入RC事务执行器,否则判断是否设置自动识别(auto)模式;
[0034] 如果设置自动识别(auto)模式,则读事务获得自动优化权限,开启优化方案,基于写意图(write intent)获取数据旧版本,将获取的数据旧版本赋予读事务,读事务继续运行;
[0035] 如果未设置自动识别(auto)模式,则读事务不进行优化,进入等待“pending”状态。
[0036] 所述步骤2中,优化后的事务执行器中读事务T2不会进入等待“pending”状态,而是通过写意图(write intent)中存储的产生写意图的事务ID(txnID)获取写事务的时间戳(timestamp)t1,通过搜索具有相同索引index的已存在版本,寻找时间戳(timestamp)最靠近t1的数据,即最新的已提交版本,来减少等待时间,提高并发度;读事务的各子事务在执行节点上运行结束后,节点运行成功状态由工作“working”变为准备“prepared”,失败则变为中止“aborted”,之后启动RC事务提交器。
[0037] 所述步骤2中,未设置自动识别(auto)模式时,等待写事务结束,写事务的各子事务在执行节点上运行结束后,节点运行成功状态由工作“working”变为准备“prepared”,失败则变为中止“aborted”,之后启动SSI事务提交器。
[0038] 本发明的有益效果是:该新型分布式NEWSQL数据库智能事务优化方法,解决了在现有分布式NewSQL数据库中存在的事务写读过程中并发性低的问题,能够在不破坏数据库ACID特性的前提下显著提升数据库的数据处理效率,提升了写读冲突场景的并发性能,达到了事务降级的目的。附图说明
[0039] 附图1为写读事务冲突示意图。
[0040] 附图2为本发明新型分布式NEWSQL数据库智能事务优化方法示意图。

具体实施方式

[0041] 为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合实施例,对本发明进行详细的说明。应当说明的是,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0042] 时间戳(Timestamp),用于标识数据、操作或事务的执行时间。
[0043] KV存储是指将MVCC多版本控制的数据最终转化成KV格式的数据进行存储。每条数据都由键(key)和值(value)两部分组成,key由时间戳(timestamp)和值的查找索引(index)组成。通过数据的索引(index)做为前缀可以遍历所有具有该索引,即该值的历史版本(数据旧版本)。
[0044] 当写事务对一条数据进行写操作时,会产生一条写意图(Write intent),其由被写数据的key和产生写意图的事务ID(txnID)两部分组成。当产生写意图的事务结束后,写意图并不被立刻消除,而是新事物对该数据进行新的操作时发现该写意图存在且该写意图对应txn已经结束,则消除该条写意图。
[0045] 从附图1中可以看出写读事务冲突的形成过程。客户端发起对数据a的写事务T1时,会通过构建写意图来标识对该条数据进行了写操作。发起对数据a的读事务T2,T2事务会先判断数据a是否存在写意图,不存在则直接读取数据a,存在则通过写意图存储的产生写意图的事务ID寻找事务,当该事务没有结束(提交commit或中止abort)时,事务T1和T2会成为冲突事务。
[0046] 该新型分布式NEWSQL数据库智能事务优化方法,包括以下步骤:
[0047] 步骤1、基于人工设置开关开启优化方案,并基于数据流Flow传递开关状态;
[0048] 步骤2、当出现写读冲突事务时,先判断是否进行优化;
[0049] 若不优化,则启动原有SSI(Serializable Snapshot Isolation,快照隔离的可串行化)事务执行器,若优化则启动RC(Read Committed,读已提交)事务执行器,事务执行结束后,启动各自的事务提交器进行提交(commit)或中止(abort);
[0050] 步骤3、提交Commit阶段;
[0051] 网关节点统计各节点运行状态,当所有节点状态均为准备“prepared”时,提交写事务,若有一个节点状态为中止“aborted”,不优化时,SSI事务提交器中止整个写事务,写事务结束后,读事务继续运行;而优化时,RC事务提交器则中止整个读事务。
[0052] 所述步骤1中,具体包括以下步骤:
[0053] (1)在客户端输入已规定的开启优化方案的SQL语句;
[0054] (2)构建分布式逻辑计划,将客户端发送的事务请求拆分成树形结构;
[0055] (3)将开关状态传递至leafTXN;
[0056] (4)通过banch request传入执行节点;
[0057] (5)执行节点获取被发送的banch request,并从中获取开关状态。
[0058] 所述步骤1中,系统支持自动识别和人工设置两种降级启动模式;系统启动后首先判断是否已经进行人工设置启动优化,是则直接进入RC事务执行器,否则进入自动识别模式,由系统根据现有事务执行方式判断是否需要优化。
[0059] 所述步骤1中,为满足复杂的现实场景,用户开启客户端后,可以通过人工设置自主选择优化的时间和方式,优化设置方式包括语句设置和会话设置两种;
[0060] 所述语句设置可以使得用户开启的当前事务的隔离级别为RC隔离级别;
[0061] 所述会话设置可以使得用户开启的当前会话的事务的隔离级别为RC隔离级别;
[0062] 所述语句设置和会话设置的优先级依次递增,且在不主动设置优先级低的设置方式时,自动继承优先级高的设置结果;数据库管理系统通过读取客户端发送的用户优化语句,进行语法分析和词法分析分解SQL层语句,并生成语法分析树,事务执行器通过分析树结构判断是否释放降级开关以及释放哪种开关。
[0063] 所述步骤1中,在用户不进行自主设置的情况下,数据库管理系统处于自动识别模式,针对不同的事务组成情况和应对场景自动进行事务隔离级别的最优方案选择;用户通过在数据库中开启全局属性的自动识别模式开关,可以使得该用户的所有操作由系统自动识别是否需要进行优化;当产生写读冲突时,读事务在没有进行人工设置且开启自动识别模式的情况下,会根据事务情况和安全性需求设置隔离级别。
[0064] 所述步骤2中,自动判断是否进行优化,具体包括以下步骤:
[0065] (1)在客户端输入已规定开启自动识别(auto)模式的SQL语句;
[0066] (2)读事务发现自己读取的数据存在写意图(write intent),触发判断机制;
[0067] (3)判断是否设置人工设置,若有则直接进入RC事务执行器,否则判断是否设置自动识别(auto)模式;
[0068] 如果设置自动识别(auto)模式,则读事务获得自动优化权限,开启优化方案,基于写意图(write intent)获取数据旧版本,将获取的数据旧版本赋予读事务,读事务继续运行;
[0069] 如果未设置自动识别(auto)模式,则读事务不进行优化,进入等待“pending”状态。
[0070] 所述步骤2中,优化后的事务执行器中读事务T2不会进入等待“pending”状态,而是通过写意图(write intent)中存储的产生写意图的事务ID(txnID)获取写事务的时间戳(timestamp)t1,通过搜索具有相同索引index的已存在版本,寻找时间戳(timestamp)最靠近t1的数据,即最新的已提交版本,来减少等待时间,提高并发度;读事务的各子事务在执行节点上运行结束后,节点运行成功状态由工作“working”变为准备“prepared”,失败则变为中止“aborted”,之后启动RC事务提交器。
[0071] 所述步骤2中,未设置自动识别(auto)模式时,等待写事务结束,写事务的各子事务在执行节点上运行结束后,节点运行成功状态由工作“working”变为准备“prepared”,失败则变为中止“aborted”,之后启动SSI事务提交器。
[0072] 实施例1
[0073] 该新型分布式NEWSQL数据库智能事务优化方法,在已设计的50多个场景中的通过率达到了100%。在此,将对其中最简单而经典的场景进行表述,事务场景如下表所示:
[0074] 表x.1读-写场景
[0075] 事务1 事务2(降级)W(X)-Update  
  R(X)
Commit  
  R(X)
[0076] 这是一个经典的写-读场景,在该场景下,事务1对X进行了写操作,事务2进行了读操作,在事务降级的情况下,事务2将能立即读出事务1更新前的旧版本数据,当事务1提交后,事务2将能读出新版本。而在事务降级前,事务2的第一次读操作将被堵塞至事务提交后,这会大大降低数据库的数据处理效率。
[0077] 本事务降级方案还通过了OLTP测试与TPCC测试,测试结果如下表所示:
[0078] 表x.2 OLTP测试结果
[0079]til read write total tps qps
RC 471184 0 538496 559.84(33656) 8957.42(538496)
SSI 387002 0 442288 459.82(27643) 7357.11(442288)
[0080] 根据测试结果,可以看出,通过事务降级的tps(每秒的事务操作数)明显高于SSI事务执行器,效率提升了17.86%。
[0081] 表x.3 TPCC测试结果
[0082]   elapsed tpmC efc avg(ms) p50(ms) p90(ms) p95(ms) p99(ms) pMaxSSI 279.2s 125.9 97.9% 114.3 75.5 176.2 352.3 805.3 838.9RC 286.3s 131.8 102.5% 103.2 71.3 167.8 419.4 671.1 704.6
[0083] 根据测试结果,可以看出,RC事务执行器的tps(1/AVG)高于SSI事务执行器,提升了9.7%。
[0084] 综上所述,该新型分布式NEWSQL数据库智能事务优化方法,能在不破坏数据库的ACID特性的前提下显著提升数据库的数据处理效率,完美达到了事务降级的目的。
[0085] 与现有技术相比,该新型分布式NEWSQL数据库智能事务优化方法,具有以下特点:
[0086] 首先,针对数据库中可以进行并发处理的写读操作场景,通过降低隔离级别,解决写读事务之间的冲突,实现写读事务的并发操作,而对于不能够降级并发的场景则仍保持与原数据库相同的处理机制。在保证数据库的ACID特性不被破坏的前提条件下,提升了写读冲突场景的并发性能。
[0087] 第二,不仅能使数据库自行判断事务优化的可能性,从而达到自动调整事务的隔离等级的效果,又允许用户在终端主动设置隔离等级,以满足用户的操作需求。
[0088] 第三,同时还保障了数据库的容灾性,能支持数据库当数据由于如硬件损坏,人为操作不当,突然断电等突发事件而产生的数据损坏甚至销毁时,进行数据回溯,将数据恢复到突发事件以前的状态,从而保证了数据库数据的安全。
[0089] 以上所述的实施例,只是本发明具体实施方式的一种,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈