CN114510494B - 日志回放方法、装置及存储介质 - Google Patents
日志回放方法、装置及存储介质 Download PDFInfo
- Publication number
- CN114510494B CN114510494B CN202210401805.1A CN202210401805A CN114510494B CN 114510494 B CN114510494 B CN 114510494B CN 202210401805 A CN202210401805 A CN 202210401805A CN 114510494 B CN114510494 B CN 114510494B
- Authority
- CN
- China
- Prior art keywords
- log
- application
- application log
- serial number
- reference information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/219—Managing data history or versioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例提供一种日志回放方法、装置及存储介质,涉及信息技术领域,该方法包括:在测试环境中基于引用信息以正向遍历方式对应用日志进行日志回放;其中,所述引用信息包括生产序列号与测试序列号及引用次数之间的映射关系,所述生产序列号为应用日志在生产环境中的序列号,所述测试序列号为应用日志在所述测试环境中的序列号,所述引用次数为应用日志被引用的累计次数;在日志回放过程中基于所述应用日志的引用情况更新所述引用次数,并基于更新后的引用次数删除所述引用信息。本申请实施例提供的方法,能够节省缓存的占用。
Description
技术领域
本申请实施例涉及信息技术领域,尤其涉及一种日志回放方法、装置及存储介质。
背景技术
流量回放指的是获取信息系统中生产环境下的应用日志,并将应用日志在测试环境下进行回放的技术,流量回放也可以称之为日志回放。需要说明的是,如果生产环境的应用日志之间存在关联关系,则在日志回放过程中也需要保持这些应用日志之间的关联关系。其中,应用日志之间的关联关系指的是一条应用日志被其他应用日志引用的关系。
在现有的技术方案中,在日志回放过程中,保持应用日志之间的关联关系需要通过特定的序列号来实现,例如,将应用日志在生产环境中的序列号与在测试环境中的序列号构建映射关系,这种映射关系会存储在数据库中。然而,这种日志回放方法会使得在数据库中会添加与每条应用日志对应的映射关系,在进行海量日志回放时,会添加海量的映射关系,由此会大量消耗缓存,进而给系统造成负担。
发明内容
本申请实施例提供了一种日志回放方法、装置及存储介质,可以在日志回放的过程中,节省缓存的占用。
第一方面,本申请实施例提供了一种日志回放方法,包括:
在测试环境中基于引用信息以正向遍历方式对应用日志进行日志回放;其中,所述引用信息包括生产序列号与测试序列号及引用次数之间的映射关系,所述生产序列号为应用日志在生产环境中的序列号,所述测试序列号为应用日志在所述测试环境中的序列号,所述引用次数为应用日志被引用的累计次数;
在日志回放过程中基于所述应用日志的引用情况更新所述引用次数,并基于更新后的引用次数删除所述引用信息。
本申请实施例中,基于应用日志的引用次数对引用信息进行删除,可以在日志回放的过程中,节省缓存的占用。
其中一种可能的实现方式中,所述引用信息包括被引用的应用日志的生产序列号与测试序列号及引用次数之间的映射关系,所述引用信息不包括未被引用的应用日志的生产序列号与测试序列号及引用次数之间的映射关系。
其中一种可能的实现方式中,所述在测试环境中基于引用信息以正向遍历方式对应用日志进行日志回放之前,所述方法还包括:
以逆向遍历方式基于当前应用日志的引用情况进行信息构建,得到与被引用的应用日志对应的引用信息;其中,所述与被引用的应用日志对应的引用信息不包括测试序列号。
其中一种可能的实现方式中,所述以逆向遍历方式基于当前应用日志的引用情况进行信息构建,得到与被引用的应用日志对应的引用信息包括:
在逆向遍历过程中,若当前应用日志引用了其他应用日志,且未存储与被引用的应用日志对应的引用信息,则构建与所述被引用的应用日志对应的引用信息;
若当前应用日志引用了其他应用日志,且已存储与被引用的应用日志对应的引用信息,则将与所述被引用的应用日志对应的引用信息中的引用次数加1。
其中一种可能的实现方式中,在逆向遍历过程中,所述被引用的应用日志的数目为一个或多个。
其中一种可能的实现方式中,所述方法还包括:
在日志回放过程中,基于预设规则在与当前应用日志对应的引用信息中添加测试序列号,用于构建所述当前应用日志的生产序列号与测试序列号之间的映射关系。
其中一种可能的实现方式中,所述在日志回放过程中基于所述应用日志的引用情况更新所述引用次数,并基于更新后的引用次数删除所述引用信息包括:
在日志回放过程中,若当前应用日志引用了其他应用日志,则将与被引用的应用日志对应的引用信息中的引用次数减1;
若与所述被引用的应用日志对应的引用信息中的引用次数为0,则删除与所述被引用的应用日志对应的引用信息。
其中一种可能的实现方式中,所述应用日志按照创建时间先后顺序进行排序。
第二方面,本申请实施例提供一种日志回放装置,包括:
回放模块,用于在测试环境中基于引用信息以正向遍历方式对应用日志进行日志回放;其中,所述引用信息包括生产序列号与测试序列号及引用次数之间的映射关系,所述生产序列号为应用日志在生产环境中的序列号,所述测试序列号为应用日志在所述测试环境中的序列号,所述引用次数为应用日志被引用的累计次数;
删除模块,用于在日志回放过程中基于所述应用日志的引用情况更新所述引用次数,并基于更新后的引用次数删除所述引用信息。
其中一种可能的实现方式中,所述引用信息包括被引用的应用日志的生产序列号与测试序列号及引用次数之间的映射关系,所述引用信息不包括未被引用的应用日志的生产序列号与测试序列号及引用次数之间的映射关系。
其中一种可能的实现方式中,所述日志回放装置还包括:
构建模块,用于以逆向遍历方式基于当前应用日志的引用情况进行信息构建,得到与被引用的应用日志对应的引用信息;其中,所述与被引用的应用日志对应的引用信息不包括测试序列号。
其中一种可能的实现方式中,所述构建模块还用于在逆向遍历过程中,若当前应用日志引用了其他应用日志,且未存储与被引用的应用日志对应的引用信息,则构建与所述被引用的应用日志对应的引用信息;
若当前应用日志引用了其他应用日志,且已存储与被引用的应用日志对应的引用信息,则将与所述被引用的应用日志对应的引用信息中的引用次数加1。
其中一种可能的实现方式中,在逆向遍历过程中,所述被引用的应用日志的数目为一个或多个。
其中一种可能的实现方式中,所述日志回放装置还包括:
添加模块,用于在日志回放过程中,基于预设规则在与当前应用日志对应的引用信息中添加测试序列号,用于构建所述当前应用日志的生产序列号与测试序列号之间的映射关系。
其中一种可能的实现方式中,所述删除模块还用于在日志回放过程中,若当前应用日志引用了其他应用日志,则将与被引用的应用日志对应的引用信息中的引用次数减1;
若与所述被引用的应用日志对应的引用信息中的引用次数为0,则删除与所述被引用的应用日志对应的引用信息。
其中一种可能的实现方式中,所述应用日志按照创建时间先后顺序进行排序。
第三方面,本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行如第一方面所述的方法。
第四方面,本申请实施例提供一种计算机程序,当上述计算机程序被计算机执行时,用于执行第一方面所述的方法。
在一种可能的设计中,第四方面中的程序可以全部或者部分存储在与处理器封装在一起的存储介质上,也可以部分或者全部存储在不与处理器封装在一起的存储器上。
附图说明
图1为本申请实施例提供的日志回放方法的流程示意图;
图2为本申请实施例提供的逆向遍历的流程示意图;
图3为本申请实施例提供的应用日志序列示意图;
图4为本申请实施例提供的正向遍历的流程示意图;
图5为本申请实施例提供的日志回放装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
流量回放指的是获取信息系统中生产环境下的应用日志,并将应用日志在测试环境下进行回放的技术,流量回放也可以称之为日志回放。需要说明的是,如果生产环境的应用日志之间存在关联关系,则在日志回放过程中也需要保持这些应用日志之间的关联关系。其中,应用日志之间的关联关系指的是一条应用日志被其他应用日志引用的关系。
在现有的技术方案中,在日志回放过程中,保持应用日志之间的关联关系需要通过特定的序列号来实现,例如,将应用日志在生产环境中的序列号与在测试环境中的序列号构建映射关系,这种映射关系会存储在数据库中。然而,这种日志回放方法会使得在数据库中会添加与每条应用日志对应的映射关系,在进行海量日志回放时,会添加海量的映射关系,由此会大量消耗缓存,进而给系统造成负担。
基于上述问题,本申请实施例提出了一种日志回放方法。
现结合图1-图4对本申请实施例提供的日志回放方法进行说明。可以理解的是,本申请实施例是以应用日志为例进行说明,但并不构成对本申请实施例的限定,在一些实施例中,也可以是其他类型的日志。
如图1所示为本申请实施例提供的日志回放方法一个实施例的流程示意图,具体包括以下步骤:
步骤101,对应用日志进行逆向遍历,在逆向遍历过程中基于应用日志的引用情况构建引用信息;其中,引用信息包括生产序列号与测试序列号及引用次数之间的映射关系。
具体地,首先可以将生产环境中的所有应用日志按照创建的时间先后顺序进行排序,由此可以得到按创建时间排序的应用日志序列。接着,可以对上述已排序的应用日志序列进行逆向遍历,在逆向遍历过程中构建引用信息。其中,引用信息包括被引用的应用日志在生产环境中的序列号与引用次数之间的映射关系,引用次数为被引用的应用日志被引用的累计次数。可以理解的是,由于引用信息仅包含被引用的应用日志在生产环境中的序列号与引用次数之间的映射关系,引用信息不包含未被引用的应用日志在生产环境中的序列号与引用次数之间的映射关系。也就是说,在数据库中仅对被引用的应用日志构建对应的引用信息,对未被引用的应用日志不构建对应的引用信息,由此可以节省缓存空间。
图2为逆向遍历的流程示意图,如图2所示,在对应用日志的逆向遍历过程中,每读取一条应用日志时,可以判断该应用日志是否引用其他应用日志,若该应用日志没有引用其他应用日志,则无需对该应用日志进行处理,若该应用日志不是逆向遍历的最后一条应用日志,则可以继续进行下一条应用日志的处理。若该应用日志引用了其他应用日志,则可以进一步查询数据库中是否存储了与被引用的应用日志对应的引用信息。为说明方便,本文将当前读取的应用日志称为“第一日志”,将被引用的应用日志称为“第二日志”。若数据库中已存储与第二日志对应的引用信息,则可以更新已存储的与第二日志对应的引用信息,例如,将与第二日志对应的引用信息中的引用次数加1。若数据库中未存储与第二日志对应的引用信息,则可以构建与该第二日志对应的引用信息。其中,与第二日志对应的引用信息中的引用次数的初始值可以为1。当把应用日志序列中的所有应用日志逆向遍历完之后,可以完成对引用信息的构建。
需要说明的是,在逆向遍历过程中,每个应用日志引用的其他应用日志可以是一个或多个。如果一个应用日志引用了多个其他应用日志,在被引用的多个应用日志中,每个被引用的应用日志可以按照上述处理方式构建或更新引用信息。
现结合图3对引用信息的构建和更新进行示例性说明。假设从生产环境中获取到包括序列号分别为0001、0002、0003及0004的4个应用日志。其中,该4个应用日志按照创建的时间先后顺序排列依次是0001、0002、0003及0004。当对该4个应用日志按照创建的时间先后顺序进行排序后,可以得到如图3所示的应用日志序列。其中,0004号应用日志引用了0001及0002号应用日志,0002号应用日志引用了0001号应用日志。接着,对上述已排序的应用日志序列进行逆向遍历,也就是说,可以从应用日志序列中的最后一个应用日志(例如,0004号应用日志)开始,直到第一个应用日志(例如,0001号应用日志)结束。当读取到0004号应用日志时,由于0004应用日志引用了0001及0002号应用日志,则可以在数据库中查询是否已存储与0001及0002号应用日志对应的引用信息。当未查询到与上述0001及0002号应用日志对应的引用信息后,可以构建与0001及0002号应用日志对应的引用信息。表1示例性的示出了与0001及0002号应用日志对应的引用信息。
表1
如表1所示,与0001号及0002号应用日志对应的引用信息可以包括生产序列号与测试序列号及引用次数之间的映射关系。其中,生产序列号为应用日志在生产环境中的序列号,例如,生产序列号为0001、0002。测试序列号为应用日志在测试环境中的序列号,也就是在日志回放过程中的序列号。需要说明的是,在上述信息构建过程中,由于还未真正开始回放,因此,引用信息中仅包含测试序列号字段,但不包含测试序列号的值。也就是说,在信息构建的过程中,还未建立生产序列号与测试序列号之间的映射关系。引用次数为应用日志被引用的累计次数,由于0001和0002号应用日志被首次引用,因此,0001和0002号应用日志的引用次数都为1。
接着,可以读取下一个应用日志,例如,0003号应用日志。由于0003号应用日志未引用其他应用日志,因此不作处理。然后,可以读取0002号应用日志。由于0002号应用日志引用了0001号应用日志,则可以在数据库中查询是否已存储与0001号应用日志对应的引用信息。由于在对0004号应用日志进行处理时已构建与0001号应用日志对应的引用信息,具体参见表1,此时,可以对表1中与0001号应用日志对应的引用信息进行更新。例如,由于0001号应用日志已被0004号应用日志引用过一次,此时再次被0002号应用日志引用,因此,0001号应用日志的引用次数加1,也就是说,0001号应用日志的引用次数变更为2,由此可以得到如表2所示的应用日志的引用信息。
表2
最后,读取0001号应用日志,由于0001号应用日志未引用其他应用日志,因此不作处理。至此,可以完成应用日志序列的逆向遍历。通过上述逆向遍历过程,可以保证在遍历完所有应用日志后进行回放,也就是说,仅遍历完部分应用日志是无法进行回放的。而通过正向遍历,可以在遍历完部分应用日志后进行回放,由此可能导致在回放过程中缺失部分关联的应用日志,导致回放不准确。可见,通过逆向遍历可以避免正向遍历导致的回放缺失的问题,从而可以保证回放的正确性。
步骤102,使用正向遍历方式对应用日志进行日志回放,在日志回放过程中基于应用日志的引用情况更新引用次数,并基于更新后的引用次数删除引用信息。
具体地,将生产环境的应用日志在测试环境中进行回放时,可以采用正向遍历的方式。例如,可以将步骤101中的按创建时间先后顺序排序的应用日志序列进行正向遍历。其中,正向遍历可以是从应用日志序列的第一个应用日志(例如,0001号应用日志)开始,直到最后一个应用日志(例如,0004号应用日志)结束。在日志回放过程中,可以对与被引用的应用日志对应的引用信息中的引用次数进行更新。并可以基于更新后的引用次数对被引用的应用日志的引用信息进行删除。
图4为正向遍历的流程示意图,如图4所示,在对应用日志通过正向遍历方式进行回放的过程中,每读取一条应用日志时,可以判断该应用日志是否引用其他应用日志。其中,上述判断当前应用日志是否引用其他应用日志的方式可以是读取当前应用日志的内容。示例性的,若当前应用日志的内容是<0002,回复前序应用日志0001“成功”>,则可以确定当前0002号应用日志引用了前序应用日志0001。若该应用日志未引用其他应用日志,则可以将该应用日志发送给测试环境进行回放,若该应用日志不为最后一条应用日志,则可以读取下一条应用日志;若该应用日志引用其他应用日志,则可以获取与被引用的应用日志对应的引用信息。以第一日志和第二日志为例,其中,第一日志为当前读取的应用日志,第二日志为被引用的应用日志。若第一日志引用了第二日志,则可以获取与第二日志对应的引用信息,并可以根据第一日志引用第二日志的情况更新与第二日志对应的引用信息。示例性的,由于第一日志引用了第二日志,因此与第二日志对应的引用信息中的引用次数可以减1。当更新与第二日志对应的引用信息后,可以进一步判断与第二日志对应的引用信息中的引用次数是否为0,若引用次数为0,则可以将与第二日志对应的引用信息进行删除,并可以将第一日志发送给测试环境进行回放,若第一日志不为最后一个应用日志,则可以读取下一个应用日志;若引用次数不为0,则可以直接将第一日志发送给测试环境进行回放,若第一日志不为最后一个应用日志,则可以读取下一个应用日志。当把应用日志序列中的所有应用日志正向遍历完之后,可以完成应用日志的回放。
在日志回放过程中,每当读取一条应用日志时,可以基于与该应用日志对应的引用信息中的引用次数将引用信息进行删除,由此可以节省缓存的占用,从而可以提高系统的存储效率。示例性的,当与任一应用日志对应的引用信息中的引用次数为0时,可以将与该应用日志对应的引用信息进行删除。
现以图3所示的应用日志序列为例对正向遍历进行示例性说明。如图3所示,应用日志序列包括按照创建时间先后顺序排序的4个应用日志,分别为0001、0002、0003及0004。当对应用日志序列进行正向遍历时,可以首先读取0001号应用日志,也就是应用日志序列中的第一条应用日志。为了能将生产环境中的应用日志在测试环境中回放,可以将生产环境中的应用日志的序列号(例如,0001)转变成测试环境中的应用日志的序列号,示例性的,可以根据测试环境序列号=生产环境序列号+1000的预设规则进行转换,也就是说,生产环境中的0001号应用日志对应测试环境中的1001号应用日志。可以理解的是,上述转换规则仅是示例性说明,并不构成对本申请实施例的限定,在一些实施例中,还可以是其他转换规则。假设0001号应用日志的内容为<0001,“成功”>,则经过序列号转换后,0001号应用日志的内容可以变成<1001,“成功”>。接着,可以查询与0001号应用日志对应的引用信息。由于在日志回放过程中,需要查询引用信息,且需要按照测试序列号进行回放,因此,当当前的应用日志的生产序列号转换成测试序列号后,可以将该测试序列号添加至与当前应用日志对应的引用信息中,由此可以在引用信息中构建生产序列号与测试序列号之间的映射关系。例如,将0001号(生产序列号)转换成1001号(测试序列号)后,可以在与0001号应用日志对应的引用信息中添加测试序列号。表3示例性的示出了与0001号应用日志对应的添加测试序列号后的引用信息。
表3
然后,可以进一步判断0001号应用日志中是否引用其他应用日志,由于0001号应用日志未引用其他应用日志,因此,可以将0001号应用日志发送至测试环境进行回放,并可以读取下一条应用日志(例如,0002号应用日志)。当读取到0002号应用日志后,可以将0002号应用日志在生产环境中的序列号转换成测试环境下的序列号,具体转换方式可以参考上述实施例中0001号应用日志的转换方式,在此不再赘述。示例性的,若0002号应用日志的内容为<0002,回复前序应用日志0001“成功”>,则转换后的应用日志内容可以为<1002,回复前序应用日志0001“成功”>。接着,查询与0002号应用日志对应的引用信息,并可以在与0002号应用日志对应的引用信息中添加测试环境序列号,由此可以在引用信息中构建生产环境序列号与测试环境序列号之间的映射关系。表4示例性的示出了与0002号应用日志对应的添加测试序列号后的引用信息。
表4
此外,由于0002号应用日志引用了0001号应用日志,因此,可以进一步查询获得与0001号应用日志对应的引用信息。通过与0001号应用日志对应的引用信息可以获知测试序列号1001,由此可以根据该测试序列号1001更新0002号应用日志的内容,例如,将0002号应用日志的内容更新为<1002,回复前序应用日志1001“成功”>。接着,可以根据当前应用日志的引用情况更新与被引用的应用日志对应的引用信息中的引用次数。例如,由于0002号应用日志引用了0001号应用日志,其中,0002号应用日志可以认为是当前应用日志,0001号应用日志可以认为是被引用的应用日志,因此,可以将与0001号应用日志对应的引用信息中的引用次数减1,也就是由2变为1。表5示例性的示出了与0001号应用日志对应的引用次数更新后的引用信息。
表5
然后,可以将0002号应用日志更新后的内容,例如<1002,回复前序应用日志1001“成功”>发送至测试环境进行回放,并可以读取下一条应用日志(例如,0003号应用日志)。当读取到0003号应用日志后,可以将0003号应用日志在生产环境中的序列号转换成测试环境下的序列号,具体转换方式可以参考上述实施例,在此不再赘述。示例性的,若0003号应用日志的内容为<0003,“成功”>,则转换后的应用日志内容可以为<1003,“成功”>。接着,由于未存储与0003号应用日志对应的引用信息,因此,可以无需对与0003号应用日志对应的引用信息进行处理。同时,由于0003号应用日志未引用其他应用日志,因此,也无需对与其他应用日志对应的引用信息进行处理,并可以将0003号应用日志发送至测试环境进行回放。
最后,读取0004号应用日志。先将0004号应用日志在生产环境中的序列号转换成测试环境下的序列号,具体转换方式可以参考上述实施例,在此不再赘述。示例性的,若0004号应用日志的内容为<0004,回复前序应用日志0002“成功”,回复前序应用日志0001“成功”>,则转换后的应用日志内容可以为<1004,回复前序应用日志0002“成功”,回复前序应用日志0001“成功”>。接着,由于未存储与0004号应用日志对应的引用信息,因此,可以无需对与0004号应用日志对应的引用信息进行处理。然后,由于0004号应用日志引用了0001和0002号应用日志,因此,可以在数据库中查询获得与0001和0002号应用日志对应的引用信息,由此可以根据与0001和0002号应用日志对应的引用信息中的测试序列号更新0004号应用日志的内容。示例性的,由于0001号应用日志的测试序列号为1001,0002号应用日志的测试序列号为1002,因此,0004号应用日志更新后的内容为<1004,回复前序应用日志1002“成功”,回复前序应用日志1001“成功”>。同时,还可以根据当前应用日志的引用情况更新与被引用的应用日志对应的引用信息中的引用次数。示例性的,由于0001号应用日志被0004号应用日志引用,也就是说,0004号应用日志可以认为是当前应用日志,0001号应用日志可以认为是被引用的应用日志,因此,与0001号应用日志对应的引用信息中的引用次数需要减1,也就是从1变为0,也就是说,0001号应用日志此后不再被引用,此时,可以将与0001号应用日志对应的引用信息进行删除,从而可以节省缓存空间。表6示例性的示出了与0001号应用日志对应的引用次数更新后的引用信息。
表6
同样地,由于0002号应用日志也被0004号应用日志引用,因此,与0002号应用日志对应的引用信息中的引用次数也需要减1,也就是从1变为0,也就是说,0002号应用日志以后也不再被引用,此时,可以将与0002号应用日志对应的引用信息进行删除,从而可以节省缓存空间。表7示例性的示出了与0002号应用日志对应的引用次数更新后的引用信息。
表7
然后,可以将0004号应用日志发送给测试环境进行回放,由于0004号应用日志是应用日志序列最后一个应用日志,至此,通过正向遍历已完成所有应用日志的回放。
图5为本申请日志回放装置一个实施例的结构示意图,如图5所示,上述日志回放装置50,可以包括:回放模块51及删除模块52;其中,
回放模块51,用于在测试环境中基于引用信息以正向遍历方式对应用日志进行日志回放;其中,所述引用信息包括生产序列号与测试序列号及引用次数之间的映射关系,所述生产序列号为应用日志在生产环境中的序列号,所述测试序列号为应用日志在所述测试环境中的序列号,所述引用次数为应用日志被引用的累计次数;
删除模块52,用于在日志回放过程中基于所述应用日志的引用情况更新所述引用次数,并基于更新后的引用次数删除所述引用信息。
其中一种可能的实现方式中,所述引用信息包括被引用的应用日志的生产序列号与测试序列号及引用次数之间的映射关系,所述引用信息不包括未被引用的应用日志的生产序列号与测试序列号及引用次数之间的映射关系。
其中一种可能的实现方式中,所述日志回放装置50还包括:
构建模块53,用于以逆向遍历方式基于当前应用日志的引用情况进行信息构建,得到与被引用的应用日志对应的引用信息;其中,所述与被引用的应用日志对应的引用信息不包括测试序列号。
其中一种可能的实现方式中,所述构建模块53还用于在逆向遍历过程中,若当前应用日志引用了其他应用日志,且未存储与被引用的应用日志对应的引用信息,则构建与所述被引用的应用日志对应的引用信息;
若当前应用日志引用了其他应用日志,且已存储与被引用的应用日志对应的引用信息,则将与所述被引用的应用日志对应的引用信息中的引用次数加1。
其中一种可能的实现方式中,在逆向遍历过程中,所述被引用的应用日志的数目为一个或多个。
其中一种可能的实现方式中,所述日志回放装置50还包括:
添加模块54,用于在日志回放过程中,基于预设规则在与当前应用日志对应的引用信息中添加测试序列号,用于构建所述当前应用日志的生产序列号与测试序列号之间的映射关系。
其中一种可能的实现方式中,所述删除模块52还用于在日志回放过程中,若当前应用日志引用了其他应用日志,则将与被引用的应用日志对应的引用信息中的引用次数减1;
若与所述被引用的应用日志对应的引用信息中的引用次数为0,则删除与所述被引用的应用日志对应的引用信息。
其中一种可能的实现方式中,所述应用日志按照创建时间先后顺序进行排序。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (9)
1.一种日志回放方法,其特征在于,所述方法包括:
在测试环境中基于引用信息以正向遍历方式对应用日志进行日志回放;其中,所述引用信息包括生产序列号与测试序列号及引用次数之间的映射关系,所述生产序列号为应用日志在生产环境中的序列号,所述测试序列号为应用日志在所述测试环境中的序列号,所述引用次数为应用日志被引用的累计次数;
在日志回放过程中,若当前应用日志引用了其他应用日志,则将与被引用的应用日志对应的引用信息中的引用次数减1;
若与所述被引用的应用日志对应的引用信息中的引用次数为0,则删除与所述被引用的应用日志对应的引用信息。
2.根据权利要求1所述的方法,其特征在于,所述引用信息包括被引用的应用日志的生产序列号与测试序列号及引用次数之间的映射关系,所述引用信息不包括未被引用的应用日志的生产序列号与测试序列号及引用次数之间的映射关系。
3.根据权利要求2所述的方法,其特征在于,所述在测试环境中基于引用信息以正向遍历方式对应用日志进行日志回放之前,所述方法还包括:
以逆向遍历方式基于当前应用日志的引用情况进行信息构建,得到与被引用的应用日志对应的引用信息;其中,所述与被引用的应用日志对应的引用信息不包括测试序列号。
4.根据权利要求3所述的方法,其特征在于,所述以逆向遍历方式基于当前应用日志的引用情况进行信息构建,得到与被引用的应用日志对应的引用信息包括:
在逆向遍历过程中,若当前应用日志引用了其他应用日志,且未存储与被引用的应用日志对应的引用信息,则构建与所述被引用的应用日志对应的引用信息;
若当前应用日志引用了其他应用日志,且已存储与被引用的应用日志对应的引用信息,则将与所述被引用的应用日志对应的引用信息中的引用次数加1。
5.根据权利要求4所述的方法,其特征在于,在逆向遍历过程中,所述被引用的应用日志的数目为一个或多个。
6.根据权利要求3-5任一项所述的方法,其特征在于,所述方法还包括:
在日志回放过程中,基于预设规则在与当前应用日志对应的引用信息中添加测试序列号,用于构建所述当前应用日志的生产序列号与测试序列号之间的映射关系。
7.根据权利要求1所述的方法,其特征在于,所述应用日志按照创建时间先后顺序进行排序。
8.一种日志回放装置,其特征在于,包括:一个或多个功能模块,所述一个或多个功能模块用于执行权利要求1-7任一所述的日志回放方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,当所述计算机程序在计算机上运行时,执行如权利要求1-7任一所述的日志回放方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210401805.1A CN114510494B (zh) | 2022-04-18 | 2022-04-18 | 日志回放方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210401805.1A CN114510494B (zh) | 2022-04-18 | 2022-04-18 | 日志回放方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114510494A CN114510494A (zh) | 2022-05-17 |
CN114510494B true CN114510494B (zh) | 2022-08-02 |
Family
ID=81555310
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210401805.1A Active CN114510494B (zh) | 2022-04-18 | 2022-04-18 | 日志回放方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114510494B (zh) |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6286011B1 (en) * | 1997-04-30 | 2001-09-04 | Bellsouth Corporation | System and method for recording transactions using a chronological list superimposed on an indexed list |
CN101304341B (zh) * | 2008-06-05 | 2010-09-15 | 西安交通大学 | 基于收发平衡的tcp网络流量回放测试方法 |
US8572048B2 (en) * | 2009-11-10 | 2013-10-29 | TIM LaBERGE | Supporting internal consistency checking with consistency coded journal file entries |
US8195619B2 (en) * | 2010-08-17 | 2012-06-05 | Symantec Corporation | Extent reference count update system and method |
CN108304309B (zh) * | 2018-02-24 | 2021-01-01 | 中国农业银行股份有限公司 | 一种自动化对比测试数据的方法及装置 |
CN111324665B (zh) * | 2020-01-23 | 2023-06-27 | 阿里巴巴集团控股有限公司 | 一种日志回放方法及装置 |
CN113778777A (zh) * | 2020-06-28 | 2021-12-10 | 北京沃东天骏信息技术有限公司 | 一种日志回放方法和装置 |
CN113868028A (zh) * | 2020-06-30 | 2021-12-31 | 华为技术有限公司 | 一种在数据节点上回放日志的方法、数据节点及系统 |
CN114281784A (zh) * | 2021-12-22 | 2022-04-05 | 中国农业银行股份有限公司 | 分布式核心系统的交易日志回放方法、装置、设备和介质 |
-
2022
- 2022-04-18 CN CN202210401805.1A patent/CN114510494B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN114510494A (zh) | 2022-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108089893B (zh) | 冗余资源的确定方法、装置、终端设备与存储介质 | |
US7895211B2 (en) | Method and system for reinserting a chain in a hash table | |
CN105320775A (zh) | 数据的存取方法和装置 | |
CN109033278B (zh) | 数据处理方法、装置、电子设备及计算机存储介质 | |
CN101571827A (zh) | 保存日志的方法和日志系统 | |
CN109977078B (zh) | 一种数据的处理方法、装置、计算机设备和存储介质 | |
CN113468199A (zh) | 索引更新方法及系统 | |
CN113468080B (zh) | 一种全闪元数据的缓存方法、系统及相关装置 | |
CN113377725B (zh) | 一种内核客户端的预读方法、系统及计算机可读存储介质 | |
CN114116612B (zh) | 一种基于b+树索引归档文件的存取方法 | |
CN114510494B (zh) | 日志回放方法、装置及存储介质 | |
EP3767486A1 (en) | Multi-record index structure for key-value stores | |
CN114840487A (zh) | 分布式文件系统的元数据管理方法和装置 | |
CN110196863B (zh) | 数据处理方法、装置、计算设备及存储介质 | |
CN107016548B (zh) | 客户系统、信息处理方法和读写方法及装置 | |
CN111752941B (zh) | 一种数据存储、访问方法、装置、服务器及存储介质 | |
CN111666302A (zh) | 用户排名的查询方法、装置、设备及存储介质 | |
CN115391355B (zh) | 数据处理方法、装置、设备及存储介质 | |
US8166043B2 (en) | Bit strings search apparatus, search method, and program | |
CN115495457B (zh) | 基于单机向量数据库的数据处理系统、设备及存储介质 | |
CN111723092A (zh) | 数据处理方法及装置 | |
CN113779286A (zh) | 管理图数据的方法及装置 | |
CN111562938B (zh) | 核查plc的配置信息的方法、装置和计算机设备 | |
CN112286948B (zh) | 时序数据库的数据存储方法、读取方法及装置 | |
JP2001028594A (ja) | データ複製方法およびデータ複製プログラムを記録した記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |