一种数据库的流量回放方法和系统技术方案

技术编号:37530945 阅读:19 留言:0更新日期:2023-05-12 15:57
在数据库流量回放技术中,难以实现保障数据库流量回放的准确性的同时,提高回放的效率。本说明书实施例公开了一种数据库的流量回放方法和系统,所述方法包括:获取数据库的多个待回放事务的操作信息,操作信息包括事务操作内容和事务执行次序;基于操作信息,解析得到多个待回放事务之间的依赖关系;根据依赖关系,对数据库回放多个待回放事务,其中包括并发回放事务间不存在依赖关系的至少两个待回放事务。通过该方法可以实现在数据库流量回放技术中,基于待回放事务、事务执行次序、事务间依赖关系进行并发形式的数据库流量回放,可以在保障准确回放的同时还提高回放的效率。在保障准确回放的同时还提高回放的效率。在保障准确回放的同时还提高回放的效率。

【技术实现步骤摘要】
一种数据库的流量回放方法和系统


[0001]本说明书涉及数据库
,特别涉及一种数据库的流量回放方法和系统。

技术介绍

[0002]数据库流量回放是一种应用于数据库的流量回放技术,是指通过流量录制技术记录一段时间内数据库的请求流量(可以包括在线上环境中对数据库执行的操作、操作的响应数据等操作请求相关数据),并在该数据库迁移到其它系统/平台/设备时或者在开发/测试环境中等场景下,对数据库回放录制的请求流量。通过数据库流量回放,可以在前述的一些场景下在数据库中执行录制的操作,从而测试数据库是否能够正常运行,实现数据库的自动化测试等作用。数据库流量回放可通过多种方法实现,但都难以实现在保证准确回放的同时,还提高回放的效率。
[0003]因此,亟需一种数据库的流量回放方法和系统,以更准确和高效地实现数据库流量回放。

技术实现思路

[0004]本说明书实施例的一个方面提供一种数据库的流量回放方法,所述方法包括:获取数据库的多个待回放事务的操作信息,所述操作信息包括事务操作内容和事务执行次序;基于所述操作信息,解析得到所述多个待回放事务之间的依赖关系;根据所述依赖关系,对所述数据库回放所述多个待回放事务,其中包括并发回放事务间不存在所述依赖关系的至少两个所述待回放事务。
[0005]本说明书实施例的另一个方面提供一种数据库的流量回放系统,所述系统包括:事务信息获取模块,用于获取数据库的多个待回放事务的操作信息,所述操作信息包括事务操作内容和事务执行次序;解析模块,用于基于所述操作信息,解析得到所述多个待回放事务之间的依赖关系;回放模块,用于根据所述依赖关系,对所述数据库回放所述多个待回放事务,其中包括并发回放事务间不存在所述依赖关系的至少两个所述待回放事务。
[0006]本说明书实施例的另一个方面提供一种数据库的流量回放装置,包括至少一个存储介质和至少一个处理器,所述至少一个存储介质用于存储计算机指令;所述至少一个处理器用于执行所述计算机指令以实现本说明书实施例提供的数据库的流量回放方法。
附图说明
[0007]本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:图1是根据本说明书的一些实施例所示的数据库的流量回放系统的示例性应用场景图;图2是根据本说明书的一些实施例所示的数据库的流量回放方法的示例性流程
图;图3是根据本说明书的一些实施例所示的对数据库回放多个待回放事务的示例性示意图;图4是根据本说明书的一些实施例所示的数据库的流量回放系统的示例性模块图。
具体实施方式
[0008]为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
[0009]应当理解,本文使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
[0010]如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
[0011]本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
[0012]对于数据库流量回放,需要保证回放准确性,以使得实现准确和有效地测试数据库等回放目的。回放准确性可以理解为:在数据库运行无问题情况下,对数据库回放所录制请求流量得到的操作结果数据和所录制请求流量的原始操作结果数据(即该请求流量原本线上执行时,得到的操作结果数据)一致。另外,在需要保证回放准确性以外,还希望能够提升数据库流量回放的效率。在流量回放技术中,为了保证回放准确性,通常按照所录制请求流量中各个操作的执行时序,对数据库依次回放各个操作,而难以实现在保证回放准确性的同时,还可以进一步提升数据库流量回放的效率,例如对所录制请求流量中的多个操作进行并发回放,以提高处理设备的处理效率、资源利用率。
[0013]基于此,本说明书一些实施例提出了一种数据库的流量回放方法和系统,实现可以在保证回放准确性的同时,对多个操作进行并发回放来提升流量回放效率。
[0014]图1是根据本说明书的一些实施例所示的数据库的流量回放系统的示例性应用场景图。
[0015]场景100可以涉及与数据库流量回放相关的各种场景,例如对迁移后的数据库或线下/测试环境中的数据库进行流量回放,从而测试数据库是否能够正常运行,实现数据库的自动化测试等场景。
[0016]场景100可以包括测试环境的数据库110、处理设备120和线上环境的数据库130。
[0017]线上环境的数据库130可以是各种类型的数据库。线上环境的数据库130可以部署于处理设备上(例如处理设备120以外的其它处理设备)。
[0018]测试环境的数据库110可以是需要进行流量回放的各种类型的数据库,例如线上环境的数据库130迁移到其它系统/平台/设备时或者在开发/测试环境中等场景(可以统称为测试环境)下对应的数据库。测试环境的数据库110可以部署于处理设备120或者其它处理设备上。
[0019]处理设备(例如处理设备120或其它处理设备)可以包含一个或多个子处理设备。在一些实施例中,处理设备可以包括各类型的处理器、系统、平台等或以上任意组合。
[0020]处理设备120可以获取其它设备(例如其它存储设备、流量录制设备等)的数据,以及可以对数据进行计算和处理。
[0021]在一些实施例中,处理设备120可以从其他设备获取或者通过设备本身对线上环境的数据库130进行请求流量录制,得到针对线上环境的数据库130的录制的请求流量121,录制的请求流量121即可以作为待回放请求流量122,以及还可以对测试环境的数据库110回放待回放请求流量122。例如,对测试环境的数据库110回放待回放请求流量122可以包括:将待回放请求流量122中的b=b+1;a=a*b;c=2*c;d=d

1等各个操作在测试环境的数据库110中执行。在一些实施例中,具体地,待回放请求流量122可以包括多个待回放事务,处理设备120可以获取多个待回放事务的操作信息,所述操作信息可以包括各待回放事务的事务操作内容和事务执行次本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据库的流量回放方法,其特征在于,所述方法包括:获取数据库的多个待回放事务的操作信息,所述操作信息包括事务操作内容和事务执行次序;基于所述操作信息,解析得到所述多个待回放事务之间的依赖关系;根据所述依赖关系,对所述数据库回放所述多个待回放事务,其中包括并发回放事务间不存在所述依赖关系的至少两个所述待回放事务。2.根据权利要求1所述的方法,其特征在于,所述对所述数据库回放所述多个待回放事务还包括:将事务间存在所述依赖关系的至少两个所述待回放事务按照以下次序回放:依赖事务在与之相关的被依赖事务回放完成后进行回放。3.根据权利要求1所述的方法,其特征在于,两个所述待回放事务间存在所述依赖关系时表示:其中一个所述待回放事务的执行会对另一个所述待回放事务的执行产生影响。4.根据权利要求1所述的方法,其特征在于,还包括:获取与所述多个待回放事务相关的数据库操作日志;基于所述数据库操作日志得到所述事务执行次序。5.根据权利要求4所述的方法,其特征在于,所述基于所述数据库操作日志得到所述事务执行次序包括:基于所述数据库操作日志确定与所述多个待回放事务相关的操作执行记录信息,所述操作执行记录信息包括以下中的一种或多种:事务所包括操作的执行时间、事务所包括操作的操作标识、事务所包括操作的所针对数据的信息;基于所述操作执行记录信息,得到所述事务执行次序。6.根据权利要求...

【专利技术属性】
技术研发人员:张俊影吴英昊钱在晨
申请(专利权)人:北京奥星贝斯科技有限公司
类型:发明
国别省市:

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

1