一种数据库系统及数据库访问方法技术方案

技术编号:21628534 阅读:39 留言:0更新日期:2019-07-17 10:57
本发明专利技术实施例公开了一种数据库系统及数据库访问方法,该数据库系统包括:SQL引擎,用于接收第一事务,第一事务包括相对应的第一数据;切换单元,用于确定第一数据段的热度;第一数据段为在执行第一事务时第一数据所落入的数据库数据段,第一数据段的热度为第一数据段历史上单位时间内取消的事务数占所有操作的事务数;并发控制选择单元,当第一数据段的热度大于第一阈值时,选择第一并发控制单元;第一并发控制单元,用于确定是否存在第二事务,当不存在第二事务时,执行第一事务;其中,第一事务所读取数据为第二事务所写入数据,第二事务写入数据的时间晚于第一事务读取数据的时间。

A Database System and Database Access Method

【技术实现步骤摘要】
一种数据库系统及数据库访问方法
本专利技术涉及数据库
,尤其是涉及一种数据库系统及数据库访问方法。
技术介绍
数据库(Database)是按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库,是长期储存在计算机内、有组织的、可共享的数据集合。事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit),它是恢复和并发控制的基本单位,且具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性,为了保证数据库ACID的属性,在事务并发执行过程中,就需要通过并发控制机制来保证事务的正确执行。而并发控制主要就是用来解决多个事务同时操作同一数据时,怎样保证数据的一致性。但是,在多个事务同时操作同一数据的情况下,会使得系统的冲突率变高,就会导致大量的事务取消(abort),而且这其中的一部分abort是没有必要的,所以会导致系统中有大量的错误被abort的事务,进而影响系统性能。
技术实现思路
本专利技术实施例提供了一种数据库系统及数据库访问方法,目的是解决事务并发冲突高的情况下,大量的事务会错误取消(abort),导致系统吞吐量下降,整体可执行事务的个数/秒(transactionpersecond,tps)下降的问题。第一方面,本专利技术实施例提供了一种数据库系统,该数据库系统可以包括:结构化查询语言(structuredquerylanguage,SQL)引擎、自适应模块和事务管理模块;其中,自适应模块包括切换单元和并发控制选择单元;事务管理模块包括第一并发控制单元;SQL引擎,用于接收第一事务,第一事务包括相对应的第一数据;切换单元,用于确定第一数据段的热度;第一数据段为在执行第一事务时第一数据所落入的数据库数据段,第一数据段的热度为第一数据段历史上单位时间内取消的事务数占所有操作的事务数;并发控制选择单元,当第一数据段的热度大于第一阈值时,选择第一并发控制单元;第一并发控制单元,用于确定是否存在第二事务,当不存在第二事务时,执行第一事务;其中,第一事务所读取数据为第二事务所写入数据,第二事务写入数据的时间晚于第一事务读取数据的时间。本专利技术实施例提供了一种数据库系统,该数据库系统通过自适应模块中的切换单元对操作事务的数据的热度进行计算,并根据热度选择对应的并行控制单元,进而解决取消率高导致整体可执行事务的tps下降的问题,与此同时不影响低并发、低冲突的吞吐量。在一个示例中,第一并发控制单元,还用于:当存在第二事务,且不存在第三事务时,执行第一事务,其中,第一事务所读取数据为第三事务所写入数据,第二事务写入数据的时间早于第一事务读取数据的时间。当存在与第一事务反顺序依赖的第二事务,且存在与第一事务顺序依赖的第三事务时,采用第一并行控制单元执行第一事务。相比现有技术能,进一步减少abort。在一个示例中,第一并发控制单元,还用于:当存在第二事务和第三事务时,取消第一事务,其中,第一事务所读取数据为第三事务所写入数据,第二事务写入数据的时间早于第一事务读取数据的时间。当存在与第一事务反顺序依赖的第二事务,且存在与第一事务顺序依赖的第三事务时,采用第一并行控制单元取消第一事务。在一个示例中,事务管理模块还包括第二并发控制单元;并发控制选择单元还用于,当第一数据段的热度大于第二阈值时,选择第二并发控制单元;第二并发控制单元,采用乐观并发控制方法执行第一事务;其中,第二阈值小于或等于第一阈值。在一个示例中,第一事务还包括与第一事务对应的第二数据,第二数据段为在执行第一事务时第二数据所落入的数据库数据段,第一数据段与第二数据段不同;切换单元,具体用于:确定第二数据段的热度。当第一事务操作多个数据时,且该多个数据对应的数据段是相互独立的,可以通过多个数据段中的某一数据段的热度来选择对应的并发控制单元,操作第一事务。在一个示例中,第一事务还包括与第一事务对应的第三数据,第三数据段为在执行第一事务时第三数据所落入的数据库数据段;切换单元,具体用于:确定第一数据段和第三数据段整体的热度。选择各种并发控制,也可通过多个数据段的整体热度来进行选择。在一个示例中,切换单元,还用于:更新第一数据段的热度。切换单元在第一事务继续执行或abort之后,将第一事务的状态及操作的数据传入自适应模块,并将这些信息添加进对应的数据段结构中,为后续数据库系统操作第一事务,选择何种并发控制,提供第一事务的热度。在一个示例中,数据系统还包括自定义数据集模块:自定义数据集模块,用于确定第一数据是否落入预设第一数据集。在一个示例中,自定义数据集模块,还用于:当第一数据未落入预设第一数据集,且预设第一数据段的热度大于第一阈值时,确定第一数据是否落入预设第二数据集。第二方面,本专利技术实施例提供了一种数据库系统,该数据库系统可以包括:SQL引擎、自定义数据集模块和事务管理模块;其中,事务管理模块包括第一并发控制单元;SQL引擎,用于接收第一事务,第一事务包括第一数据;自定义数据集模块,用于确定第一数据是否落入预设第一数据集;当第一数据落入预设的第一数据集时,第一并发控制单元,用于确定是否存在第二事务,当不存在第二事务时,执行第一事务;其中,第一事务所读取数据为第二事务所写入数据,第二事务写入数据的时间晚于第一事务读取数据的时间。本专利技术实施例提供了一种数据库系统,该数据库系统通过在自定义数据集模块中自定义热数据或冷数据,以用户自定义的数据为选择各种并发控制的依据,进而解决取消率高导致整体可执行事务的tps下降的问题,与此同时不影响低并发、低冲突的吞吐量。在一个示例中,第一并发控制单元,还用于:当第一数据落入预设的第一数据集,且存在第二事务,不存在第三事务时,执行第一事务,其中,第一事务所读取数据为第三事务所写入数据,第二事务写入数据的时间早于第一事务读取数据的时间。在一个示例中,第一并发控制单元,还用于:当第一数据落入预设的第一数据集,且存在第二事务和第三事务时,取消第一事务,其中,第一事务所读取数据为第三事务所写入数据,第二事务写入数据的时间早于第一事务读取数据的时间。在一个示例中,事务管理模块还包括:第二并发控制单元;第二并发控制单元,用于当第一数据未落入预设的第一数据集,采用乐观并发控制方法执行第一事务;其中,第二阈值小于或等于第一阈值。第三方面,本专利技术实施例提供了一种数据库访问方法,该数据库访问方法可以包括:接收第一事务,第一事务包括第一数据;确定第一数据段的热度;第一数据段为在执行第一事务时第一数据所落入的数据库数据段,第一数据段的热度为第一数据段历史上单位时间内取消的事务数占所有操作的事务数;当第一数据段的热度大于第一阈值,确定是否存在第二事务,当不存在第二事务时,执行第一事务;其中,第一事务所读取数据为第二事务所写入数据,第二事务写入数据的时间晚于第一事务读取数据的时间。本专利技术实施例提供了一种数据库访问方法,该数据库方法通过第一数据段的热度,该第一数据段为在执行第一事务时第一数据所落入的数据库数据段,选择各种并发控制操作第一事务,进而解决取消率高导致整体可执行事务的tps下降的问题,与此同时不影响低并发、低冲突的吞吐量。在一个示例中,数据库访问方法还包括:当第一数据段的热度大于第一阈本文档来自技高网...

【技术保护点】
1.一种数据库系统,其特征在于,包括:结构化查询语言SQL引擎、自适应模块和事务管理模块;其中,所述自适应模块包括切换单元和并发控制选择单元;所述事务管理模块包括第一并发控制单元;所述SQL引擎,用于接收第一事务,所述第一事务包括相对应的第一数据;所述切换单元,用于确定所述第一数据段的热度;所述第一数据段为在执行第一事务时第一数据所落入的数据库数据段,所述第一数据段的热度为第一数据段历史上单位时间内取消的事务数占所有操作的事务数;所述并发控制选择单元,当第一数据段的热度大于第一阈值时,选择第一并发控制单元;所述第一并发控制单元,用于确定是否存在第二事务,当不存在第二事务时,执行所述第一事务;其中,所述第一事务所读取数据为所述第二事务所写入数据,所述第二事务写入所述数据的时间晚于所述第一事务读取所述数据的时间。

【技术特征摘要】
1.一种数据库系统,其特征在于,包括:结构化查询语言SQL引擎、自适应模块和事务管理模块;其中,所述自适应模块包括切换单元和并发控制选择单元;所述事务管理模块包括第一并发控制单元;所述SQL引擎,用于接收第一事务,所述第一事务包括相对应的第一数据;所述切换单元,用于确定所述第一数据段的热度;所述第一数据段为在执行第一事务时第一数据所落入的数据库数据段,所述第一数据段的热度为第一数据段历史上单位时间内取消的事务数占所有操作的事务数;所述并发控制选择单元,当第一数据段的热度大于第一阈值时,选择第一并发控制单元;所述第一并发控制单元,用于确定是否存在第二事务,当不存在第二事务时,执行所述第一事务;其中,所述第一事务所读取数据为所述第二事务所写入数据,所述第二事务写入所述数据的时间晚于所述第一事务读取所述数据的时间。2.根据权利要求1所述的系统,其特征在于,所述第一并发控制单元,还用于:当存在所述第二事务,且不存在第三事务时,执行所述第一事务,其中,所述第一事务所读取数据为所述第三事务所写入数据,所述第二事务写入所述数据的时间早于所述第一事务读取所述数据的时间。3.根据权利要求1所述的系统,其特征在于,所述第一并发控制单元,还用于:当存在所述第二事务和第三事务时,取消所述第一事务,其中,所述第一事务所读取数据为所述第三事务所写入数据,所述第二事务写入所述数据的时间早于所述第一事务读取所述数据的时间。4.根据权利要求1所述的系统,其特征在于,所述事务管理模块还包括第二并发控制单元;所述并发控制选择单元还用于,当所述第一数据段的热度大于所述第二阈值时,选择第二并发控制单元;所述第二并发控制单元,采用乐观并发控制方法执行第一事务;其中,所述第二阈值小于或等于所述第一阈值。5.根据权利要求1所述的系统,其特征在于,所述第一事务还包括与第一事务对应的第二数据,第二数据段为在执行第一事务时第二数据所落入的数据库数据段,所述第一数据段与所述第二数据段不同;所述切换单元,具体用于:确定所述第二数据段的热度。6.根据权利要求1所述的系统,其特征在于,所述第一事务还包括与所述第一事务对应的第三数据,第三数据段为在执行第一事务时第三数据所落入的数据库数据段;所述切换单元,具体用于:确定所述第一数据段和所述第三数据段整体的热度。7.根据权利要求1-6任一项所述的系统,其特征在于,切换单元,还用于:更新所述第一数据段的热度。8.根据权利要求1所述的系统,其特征在于,所述系统还包括自定义数据集模块:所述自定义数据集模块,用于确定所述第一数据是否落入预设第一数据集。9.根据权利要求8所述的系统,其特征在于,所述自定义数据集模块,还用于:当所述第一数据未落入所述预设第一数据集,且所述预设第一数据段的热度大于所述第一阈值时,确定所述第一数据是否落入预设第二数据集。10.一种数据库系统,其特征在于,包括:SQL引擎、自定义数据集模块和事务管理模块;其中,所述事务管理模块包括第一并发控制单元;SQL引擎,用于接收第一事务,所述第一事务包括第一数据;所述自定义数据集模块,用于确定所述第一数据是否落入预设第一数据集;当所述第一数据落入所述预设的第一数据集时,所述第一并发控制单元,用于确定是否存在第二事务,当不存在第二事务时,执行所述第一事务;其中,所述第一事务所读取数据为所述第二事务所写入数据,所述第二事务写入所述数据的时间晚于所述第一事务读取所述数据的时间。11.根据权利要求10所述的系统,其特征在于,所述第一并发控制单元,还用于:当所述第一数据落入所述预设的第一数据集,且存在所述第二事务,不存在第三事务时,执行所述第一事务,其中,所述第一事务所读取数据为所述第三事务所写入数据,所述第二事务写入所述数据的时间早于所述第一事务读取所述数据的时间。12.根据权利要求10所述的系统,其特征在于,所述第一并发控制单元,还用于:当所述第一数据落入所述预设的第一数据集,且存在所述第二事务和第三事务时,取消所述第一事务,其中,所述第一事务所读取数据为所述第三事务所写入数据,所述第二事务写入所述数据的时间早于所述第一事务读取所述数据的时间。13.根据权利要求10所述的系统,其特征在于,所述事务管理模块还包括:第二并发控制单元...

【专利技术属性】
技术研发人员:郭志建朱建峰智雅楠
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

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

1