一种分布式数据库的特性检测方法及装置制造方法及图纸

技术编号:31088534 阅读:29 留言:0更新日期:2021-12-01 12:47
本申请公开了一种分布式数据库的特性检测方法及装置,用于检测数据库的ACID特性,所述方法包括:针对分布式数据库的指定特性,在数据库上创建分布式表,并对分布式表并发执行指定特性对应的数据操作;指定特性为目标特性集合或持久性;目标特性集合包括原子性、一致性、隔离性;目标特性集合对应的数据操作为更新操作、删除操作、插入操作中的任意一个;持久性对应的数据操作为插入操作;若指定特性为目标特性集合,基于执行数据操作时与初始的分布式表上的数据在指定指标上的一致性,确定数据库在指定特性上是否存在问题;若指定特性为持久性,基于执行数据操作后的结果与日志记录的一致性,确定数据库在持久性上是否存在问题。确定数据库在持久性上是否存在问题。确定数据库在持久性上是否存在问题。

【技术实现步骤摘要】
一种分布式数据库的特性检测方法及装置


[0001]本申请涉及特性检测
,特别涉及一种分布式数据库的特性检测方法及装置。

技术介绍

[0002]分布式数据库涉及多台机器以及多个分库,为了保证多个分库上的事务、数据能协调一致,需要有效地保证分布式数据库的ACID,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)以及持久性(Durability),因此对分布式数据库的这四项特性的准确检测非常重要。
[0003]现有的检测方法,主要是由用户直接使用应用代码来进行验证。但由于应用本身具有较高的复杂性,应用代码也容易存在逻辑问题,当检测过程中怀疑检测出分布式数据库违背原子性、一致性、隔离性以及持久性中的一项或多项的情况时,无法及时确定是由于应用代码存在逻辑问题所造成的,还是分布式数据库存在的问题。因此现有的检测结果不够可靠,并且检测的效率也相对较低。

技术实现思路

[0004]基于上述现有技术的不足,本申请提供了一种分布式数据库的特性检测方法及装置,以解决现有的检测方法过于繁琐,且本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种分布式数据库的特性检测方法,其特征在于,包括:针对所述分布式数据库的指定特性,在所述分布式数据库上创建分布式表,并对所述分布式表并发执行所述指定特性对应的数据操作;其中,所述指定特性为目标特性集合或持久性;所述目标特性集合包括原子性、一致性、隔离性;所述目标特性集合对应的数据操作为更新操作、删除操作以及插入操作中的任意一个;所述持久性对应的数据操作为插入操作;若所述指定特性为所述目标特性集合,则基于执行所述数据操作过程中获取到的所述分布式表上的数据的信息与初始的所述分布式表上的数据的信息在指定指标上的一致性,确定所述分布式数据库在所述指定特性上是否存在问题;若所述指定特性为所述持久性,则基于执行所述数据操作后的结果与日志记录的一致性,确定所述分布式数据库在所述持久性上是否存在问题。2.根据权利要求1所述的方法,其特征在于,所述指定特性为所述目标特性集合,且所述数据操作为更新操作,所述针对所述分布式数据库的指定特性,在所述分布式数据库上创建分布式表,并对所述分布式表并发执行所述指定特性对应的数据操作,包括:在所述分布式数据库上创建以账号为散列分片键的第一分布式表;其中,所述第一分布式表中存储有多个账号,每个所述账号下存储有一条记录,且每条所述记录中的初始金额相同;针对所述第一分布式表,采用并发的方式执行多个所述更新操作;其中,一个所述更新操作被执行时先随机从一个所述账户扣除随机金额后,随机在另一个所述账户中增加所述随机金额;其中,所述基于执行所述数据操作过程中获取到的所述分布式表上的数据的信息与初始的所述分布式表上的数据的信息在指定指标上的一致性,确定所述分布式数据库在所述指定特性上是否存在问题,包括:在并发执行多个所述更新操作的过程中,连续多次获取所述第一分布式表上的数据的信息,得到多个第一输出结果;其中,所述第一输出结果包含获取数据时的时间戳以及当时所述第一分布式表上记录的总金额;从各个所述第一输出结果中筛选出包含的总金额不等于初始所述第一分布式表上记录的总金额的第一目标输出结果;若存在包含的时间戳为连续的多个所述第一目标输出结果,则确定所述分布式数据库的原子性存在问题;若只存在一个所述第一目标输出结果,或者存在包含的时间戳为不连续的多个所述第一目标输出结果,则确定所述分布数据库的一致性或隔离性存在问题。3.根据权利要求1所述的方法,其特征在于,所述指定特性为所述目标特性集合,且所述数据操作为删除操作,所述针对所述分布式数据库的指定特性,在所述分布式数据库上创建分布式表,并对所述分布式表并发执行所述指定特性对应的数据操作,包括:在所述分布式数据库上创建第一源表和第一目标表;其中,所述第一源表和所述第一目标表为均设置有账户字段,但分片键不同的两个分布式表;所述第一源表的账户字段下存储有多条记录,且设置有唯一索引;所述第一目标表的账户字段未设置唯一索引,且未存储有记录;
针对所述第一源表和所述第一目标表,采用并发的方式执行多个所述删除操作;其中,所述删除操作被执行时,随机读取所述第一源表中的一条记录,并在将所述记录插入所述第一目标表后,将所述记录从所述第一源表中删除;其中,所述基于执行所述数据操作过程中获取到的所述分布式表上的数据的信息与初始的所述分布式表上的数据的信息在指定指标上的一致性,确定所述分布式数据库在所述指定特性上是否存在问题,包括:在并发执行多个所述删除操作的过程中,连续多次获取所述第一源表和所述第一目标表上的数据的信息,得到多个第二输出结果;其中,所述第二输出结果获取数据时的时间戳,以及当时所述第一源表和所述第一目标表上的记录的数量总和;从所述第二输出结果中筛选出包含的所述数量总和不等于初始数量总和的第二目标输出结果;其中,所述初始记录数量总和指代初始的所述第一源表和所述第一目标表上的记录的数量总和;若存在包含的时间戳为连续的多个所述第二目标输出结果,则确定所述分布式数据库的原子性存在问题;若只存在一个所述第二目标输出结果,或者存在包含的时间戳为不连续的多个所述第二目标输出结果,则确定所述分布数据库的一致性或隔离性存在问题。4.根据权利要求1所述的方法,其特征在于,所述指定特性为所述目标特性集合,且所述数据操作为第一插入操作,所述针对所述分布式数据库的指定特性,在所述分布式数据库上创建分布式表,并对所述分布式表并发执行所述指定特性对应的数据操作,包括:在所述分布式数据库上创建第二源表和第二目标表;其中,所述第二源表和所述第二目标表为设置有相同字段的两个分布式表;所述第二源表设置有ID字段,每个ID对应一条记录;所述第二源表和所述第二目标表的分片键均为ID,且随机分片,但所述第二目标表的ID字段不设置唯一索引;针对所述第二源表和所述第二目标表,采用并发的方式执行多个所述第一插入操作;其中,所述第一插入操作被执行时,将所述第二源表上的所有记录对应的ID增加1后,将所述第二源表上的所有记录插入所述第二目标表中的对应ID下;其中,所述基于执行所述数据操作过程中获取到的所述分布式表上的数据的信息与初始的所述分布式表上的数据的信息在指定指标上的一致性,确定所述分布式数据库在所述指定特性上是否存在问题,包括:在并发执行多个所述第一插入操作的过程中,连续多次获取第二目标表上的数据的信息,得到多个第三输出结果;其中,所述第三输出结果包含在执行所述第一插入操作后所述第二目标表中的各个ID下的记录的数量;若存在任意一个所述第三输出结果中包含的所述第二目标表中的各个ID下的记录的数量不一致,则确定所述分布式数据库在原子性、一致性、隔离性中的一项或多项上存在问题。5.根据权利要求1所述的方法,其特征在于,所述指定特性为所述持久性,且所述数据操作为第二插入操作,所述针对所述分布式数据库的指定特性,在所述分布式数据库上创建分布式表,并对所述分布式表并发执行所述指定特性对应的数据操作,包括:在所述分布式数据库上创建第三分布式表;其中,所述第二分布式表以自增列为主键,
以线程号为分片键;通过多个线程,采用并发的方式向所述第三分布式表插入记录,并在所述第三分布式表中记录各个所述线程插入记录的次数的累计值;其中...

【专利技术属性】
技术研发人员:贺耀东王远李述萍雷苏娇
申请(专利权)人:中国建设银行股份有限公司
类型:发明
国别省市:

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

1