logo好方法网

事务处理方法、装置、计算机设备及存储介质


技术摘要:
本申请公开了一种事务处理方法、装置、计算机设备及存储介质,属于数据库技术领域。本申请通过响应于目标事务的执行请求,获取目标事务的逻辑执行生命周期,在对该逻辑执行生命周期校验通过之后,执行目标事务,在事务执行或者验证阶段中,根据目标事务的读集中的目标  全部
背景技术:
随着数据库技术的发展,为了能够适应大数据、云计算等业务场景,分布式数据库 系统逐渐变得普及。在分布式数据库系统中进行分布式事务处理时,可以采取去中心化的 事务处理技术。去中心化的事务处理技术是指,在数据库系统中不存在某一节点设备集中 对事务进行协调,而是在数据库系统中存在多个节点设备能够用于充当事务协调者的角 色,由于涉及到多个协调节点设备共同处理分布式事务,在对事务进行并发控制时,普遍依 赖于锁机制和时间戳排序机制,而由于目前主流的互联网应用场景中存在“读请求较多、写 请求较少”(简称为读多写少)的现象,上述两种机制在读多写少的场景下限制了整个分布 式数据库系统的事务吞吐量的提升,因此具有较差的事务处理性能。
技术实现要素:
本申请实施例提供了一种事务处理方法、装置、计算机设备及存储介质,能够提升 分布式数据库系统的事务吞吐量,提升分布式数据库系统的事务处理性能。该技术方案如 下: 一方面,提供了一种事务处理方法,该方法包括: 响应于目标事务的执行请求,获取所述目标事务的逻辑执行生命周期,所述逻辑 执行生命周期用于表示所述目标事务在事务处理过程中的逻辑时间戳区间; 响应于对所述逻辑执行生命周期校验通过,执行所述目标事务; 根据所述目标事务的读集中的目标数据项以及写集中的待写入数据项,调整所述 逻辑执行生命周期,所述目标数据项为符合所述目标事务的查询条件且相对于所述目标事 务可见的数据项; 响应于对调整后的逻辑执行生命周期校验通过,提交所述目标事务。 一方面,提供了一种事务处理装置,该装置包括: 获取模块,用于响应于目标事务的执行请求,获取所述目标事务的逻辑执行生命 周期,所述逻辑执行生命周期用于表示所述目标事务在事务处理过程中的逻辑时间戳区 间; 执行模块,用于响应于对所述逻辑执行生命周期校验通过,执行所述目标事务; 调整模块,用于根据所述目标事务的读集中的目标数据项以及写集中的待写入数 据项,调整所述逻辑执行生命周期,所述目标数据项为符合所述目标事务的查询条件且相 对于所述目标事务可见的数据项; 提交模块,用于响应于对调整后的逻辑执行生命周期校验通过,提交所述目标事 务。 5 CN 111597015 A 说 明 书 2/36 页 在一种可能实施方式中,若所述目标事务涉及针对数据项的读取操作,所述执行 模块包括: 确定单元,用于基于所述执行请求中的查询条件,确定所述查询条件所对应的至 少一个待判断数据项; 确定存储单元,用于从所述至少一个待判断数据项中,确定相对于所述目标事务 可见的目标数据项,将所述目标数据项存储到所述目标事务的读集中。 在一种可能实施方式中,所述确定存储单元用于: 响应于数据库系统处于顺序并发结果可串行化隔离级别,对所述至少一个待判断 数据项中任一待判断数据项,若产生所述待判断数据项的事务的逻辑提交时间戳小于所述 目标事务的事务快照时间戳,确定所述待判断数据项为候选数据项;将具有相同主键标识 的候选数据项中逻辑提交时间戳最大的候选数据项确定为目标数据项; 其中,在所述顺序并发结果可串行化隔离级别中任意两个并发事务的逻辑执行生 命周期用于确定所述两个并发事务的先后关系,所述逻辑提交时间戳用于表示事务的逻辑 提交时刻,所述事务快照时间戳用于表示事务的全局开始时刻。 在一种可能实施方式中,所述确定存储单元用于: 响应于数据库系统处于除了顺序并发结果可串行化隔离级别之外的可串行化隔 离级别,对所述至少一个待判断数据项中任一待判断数据项,若产生所述待判断数据项的 事务的全局提交时间戳小于所述目标事务的事务快照时间戳,确定所述待判断数据项为候 选数据项;将具有相同主键标识的候选数据项中全局提交时间戳最大的候选数据项确定为 目标数据项; 其中,在所述顺序并发结果可串行化隔离级别中任意两个并发事务的逻辑执行生 命周期用于确定所述两个并发事务的先后关系,所述全局提交时间戳用于表示事务的全局 提交时刻,所述事务快照时间戳用于表示事务的全局开始时刻。 在一种可能实施方式中,若所述目标事务涉及针对数据项的写入操作,所述执行 模块用于: 根据所述执行请求,生成待写入数据项,将所述待写入数据项存储到所述目标事 务的写集中。 在一种可能实施方式中,所述装置还包括: 回滚模块,用于响应于数据库系统处于线性可串行化、线性并发结果可串行化或 者顺序可串行化中任一隔离级别,若所述目标事务的写集中包括与所述目标数据项具有相 同主键标识的待写入数据项,回滚所述目标事务。 在一种可能实施方式中,所述调整模块用于: 将所述逻辑执行生命周期的时间戳下界调整至大于产生所述目标数据项的事务 的逻辑提交时间戳,所述逻辑提交时间戳用于表示事务的逻辑提交时刻; 将所述逻辑执行生命周期的时间戳上界调整至小于或等于产生第一数据项的事 务的逻辑提交时间戳,所述第一数据项为与所述目标数据项具有相同主键标识的下一数据 项。 在一种可能实施方式中,所述调整模块用于: 响应于所述目标数据项对应的待写事务不为空,将所述逻辑执行生命周期的时间 6 CN 111597015 A 说 明 书 3/36 页 戳上界调整至小于或等于所述待写事务的时间戳下界。 在一种可能实施方式中,所述调整模块用于: 将所述逻辑执行生命周期的时间戳下界调整至大于或等于各个待写入数据项的 最大读事务时间戳中的最大值,所述最大读事务时间戳用于表示读取过所述待写入数据项 的各事务的逻辑提交时间戳中的最大值。 在一种可能实施方式中,所述调整模块包括: 第一调整单元,用于对所述写集中任一待写入数据项的读事务列表中的任一读事 务,响应于所述读事务处于验证通过状态或提交完成状态,将所述逻辑执行生命周期的时 间戳下界调整至大于或等于所述读事务的时间戳上界; 第二调整单元,用于响应于所述读事务处于正在运行状态,在不同的可串行化隔 离级别下,对所述逻辑执行生命周期进行不同的调整。 在一种可能实施方式中,所述第二调整单元用于: 响应于数据库系统处于线性可串行化、线性并发结果可串行化或者顺序可串行化 中任一隔离级别,在等待所述读事务结束后继续处理所述目标事务,将所述逻辑执行生命 周期的时间戳下界调整至大于或等于所述读事务的时间戳上界; 响应于数据库系统处于线性点可串行化隔离级别,回滚所述目标事务; 响应于数据库系统处于顺序并发结果可串行化隔离级别,将所述逻辑执行生命周 期的时间戳下界调整至大于或等于所述读事务的时间戳下界,将所述读事务的时间戳上界 调整至小于或等于所述逻辑执行生命周期的时间戳下界。 在一种可能实施方式中,所述逻辑执行生命周期的校验过程包括: 响应于所述逻辑执行生命周期的时间戳下界小于或等于所述逻辑执行生命周期 的时间戳上界,确定对所述逻辑执行生命周期校验通过; 响应于所述逻辑执行生命周期的时间戳下界大于所述逻辑执行生命周期的时间 戳上界,确定对所述逻辑执行生命周期校验不通过。 一方面,提供了一种计算机设备,该计算机设备包括一个或多个处理器和一个或 多个存储器,该一个或多个存储器中存储有至少一条程序代码,该至少一条程序代码由该 一个或多个处理器加载并执行以实现如上述任一种可能实现方式的事务处理方法所执行 的操作。 一方面,提供了一种存储介质,该存储介质中存储有至少一条程序代码,该至少一 条程序代码由处理器加载并执行以实现如上述任一种可能实现方式的事务处理方法所执 行的操作。 本申请实施例提供的技术方案带来的有益效果至少包括: 通过响应于目标事务的执行请求,获取目标事务的逻辑执行生命周期,在对该逻 辑执行生命周期校验通过之后,执行目标事务,在事务执行或者验证阶段中,根据目标事务 的读集中的目标数据项以及写集中的待写入数据项,对逻辑执行生命周期进行调整,在对 调整后的逻辑执行生命周期校验通过之后,提交目标事务,这种基于逻辑执行生命周期来 处理事务的机制,无需依赖于锁机制,因此更加适用于读多写少的互联网应用场景,有利于 提升分布式数据库系统的事务吞吐量,能够提升整个分布式数据库系统的事务处理性能。 7 CN 111597015 A 说 明 书 4/36 页 附图说明 为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使 用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于 本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他 的附图。 图1是本申请实施例提供的一种事务处理方法的实施环境示意图; 图2是本申请实施例提供的一种事务执行顺序的原理性示意图; 图3是本申请实施例提供的一种事务执行顺序的原理性示意图; 图4是本申请实施例提供的一种数据项结构的原理性示意图; 图5是本申请实施例提供的一种事务处理方法的交互流程图; 图6是本申请实施例提供的一种事务处理方法的流程图; 图7是本申请实施例提供的一种事务处理方法的交互流程图; 图8是本申请实施例提供的一种事务处理装置的结构示意图; 图9是本申请实施例提供的一种计算机设备的结构示意图。
下载此资料需消耗2积分,
分享到:
收藏