CN117827383A - 一种数据库事务的处理方法及装置 - Google Patents

一种数据库事务的处理方法及装置 Download PDF

Info

Publication number
CN117827383A
CN117827383A CN202311761356.2A CN202311761356A CN117827383A CN 117827383 A CN117827383 A CN 117827383A CN 202311761356 A CN202311761356 A CN 202311761356A CN 117827383 A CN117827383 A CN 117827383A
Authority
CN
China
Prior art keywords
transaction
abnormal
executing
restarted
abnormal transaction
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.)
Pending
Application number
CN202311761356.2A
Other languages
English (en)
Inventor
张琛
张嘉杰
余浩然
李子旺
高绍坤
赵延博
李剑荣
黎华冠
张曦东
林晓穗
陈筱
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Peoples Insurance Company of China
Original Assignee
Peoples Insurance Company of China
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Peoples Insurance Company of China filed Critical Peoples Insurance Company of China
Priority to CN202311761356.2A priority Critical patent/CN117827383A/zh
Publication of CN117827383A publication Critical patent/CN117827383A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Retry When Errors Occur (AREA)

Abstract

本说明书一个或多个实施例公开了一种数据库事务的处理方法及装置,该方法包括:获取目标数据库中正在执行的事务对应的事务执行信息;基于所述事务执行信息是否满足预先设置的异常事务识别条件,识别所述正在执行的事务是否为异常事务;在识别所述正在执行的事务是异常事务时,终止执行所述异常事务。从而,可以进行自动识别,而且避免主观排查的失误,提升异常事务的识别速度以及准确性。同时,可以尽可能降低异常事务对业务系统的不良影响,保障业务系统运行稳定性。

Description

一种数据库事务的处理方法及装置
技术领域
本文件涉及计算机技术领域,尤其涉及一种数据库事务的处理方法及装置。
背景技术
在数据库中,事务,也称为数据库事务,是访问和更新数据库的程序执行单元。从形态的角度来说,事务是一个数据库操作命令序列,包含一个或多个数据库操作命令,这些操作命令会作为一个整体向数据库系统(Database System)提交或撤销操作请求,以实现对这些操作命令的全部执行或全部不执行。
实际场景中,如果用户提交的事务包含性能消耗较高的操作命令和/或长时间运行的操作命令,那么,这样的事务比较容易出现异常。异常事务会导致数据库系统进入不稳定状况,进而引起访问数据库系统的业务系统崩溃而中断业务。
目前,对于异常事务,可通过人工排查的方式进行识别。但采用人工排查来识别异常事务耗时较长,且易受人员主观影响而导致识别准确性不高。
发明内容
本说明书一个或多个实施例的目的是提供一种数据库事务的处理方法及装置,以快速准确识别异常事务,保证业务系统的稳定可靠运行。
为解决上述技术问题,本说明书一个或多个实施例是这样实现的:
第一方面,提出了一种数据库事务的处理方法,包括:
获取目标数据库中正在执行的事务对应的事务执行信息;
基于所述事务执行信息是否满足预先设置的异常事务识别条件,识别所述正在执行的事务是否为异常事务;
在识别所述正在执行的事务是异常事务时,终止执行所述异常事务。
第二方面,提出了一种数据库事务的处理装置,包括:
获取模块,用于获取目标数据库中正在执行的事务对应的事务执行信息;
识别模块,用于基于所述事务执行信息是否满足预先设置的异常事务识别条件,识别所述正在执行的事务是否为异常事务;
处理模块,用于在识别所述正在执行的事务是异常事务时,终止执行所述异常事务。
第三方面,提出了一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行:获取目标数据库中正在执行的事务对应的事务执行信息;基于所述事务执行信息是否满足预先设置的异常事务识别条件,识别所述正在执行的事务是否为异常事务;在识别所述正在执行的事务是异常事务时,终止执行所述异常事务
第四方面,提出了一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行:获取目标数据库中正在执行的事务对应的事务执行信息;基于所述事务执行信息是否满足预先设置的异常事务识别条件,识别所述正在执行的事务是否为异常事务;在识别所述正在执行的事务是异常事务时,终止执行所述异常事务
由以上说明书一个或多个实施例提供的技术方案可见,通过对正在执行的事务对应的事务执行信息进行分析,基于所述事务执行信息是否满足预先设置的异常事务识别条件,识别所述正在执行的事务是否为异常事务,从而,可以进行自动识别,而且避免主观排查的失误,提升异常事务的识别速度以及准确性。同时,在判定该正在执行的事务是异常事务时,及时终止该异常事务,可以尽可能降低异常事务对业务系统的不良影响,保障业务系统运行稳定性。
附图说明
为了更清楚地说明本说明书一个或多个实施例或现有技术中的技术方案,下面将对一个或多个实施例或现有技术描述中所需要使用的附图做简单介绍,显而易见地,以下描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本说明书实施例提供的一种数据库事务的处理方法的步骤示意图。
图2是本说明书实施例提供的一种数据库事务的处理流程示意图。
图3是本说明书实施例提供的一种数据库事务的处理装置的结构示意图。
图4是本说明书的一个实施例提供的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述,显然,所描述的一个或多个实施例只是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的一个或多个实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本文件的保护范围。
在业务系统运行中,用户提交的事务,难免在执行时发生异常,这类导致事务在执行时发生异常的事务可视为异常事务。异常事务可能会由于占用系统资源或者影响系统正常运行等原因,而导致业务系统运行不稳定。而速度准确排查到异常事务,可有效降低业务系统运行不稳定的情况。鉴于此,本申请提出了一种针对数据库事务的处理方案,通过对正在执行的事务对应的事务执行信息进行分析,基于所述事务执行信息是否满足预先设置的异常事务识别条件,识别所述正在执行的事务是否为异常事务,从而,可以进行自动识别,而且避免主观排查的失误,提升异常事务的识别速度以及准确性。同时,在判定该正在执行的事务是异常事务时,及时终止该异常事务,可以尽可能降低异常事务对业务系统的不良影响,保障业务系统运行稳定性。
下面通过具体的实施例对本申请所涉及的数据库事务的处理方案进行详述。
实施例一
参照图1所示,为本说明书实施例提供的一种数据库事务的处理方法的步骤示意图,应理解,该方法的执行主体可以是数据库事务的处理装置。该处理装置可以是软件模块,或硬件设备。以软件模块为例,该处理装置可以与执行事务的业务系统连接,或是集成在业务系统中。
如图1所示,该数据库事务的处理方法可以包括以下步骤:
步骤102:获取目标数据库中正在执行的事务对应的事务执行信息。
本说明书中,主要针对数据库中事务进行处理,尤其针对正在执行的事务进行识别处理。考虑到业务系统可以对接有多个不同的数据库,那么,每个数据库可以对接一个处理装置,或者,多个数据库对接一个处理装置,或者,一个数据库对接多个处理装置,用以处理用户提交的多个数据库事务。
尤其当用户提交多个事务时,这些事务可以通过对接的一个或多个处理装置进行处理。针对正在执行的事务,可以通过数据查看的方式,实时掌握这些正在执行的事务的运行情况。
一种可实现的方式,可以基于既有的数据实时查看技术,对正在执行的事务进行查看,获取正在执行的事务的事务执行信息。该事务执行信息可以反映当前正在执行的事务的基础概况以及运行情况。在本申请中,所述事务执行信息至少包括:用于表征事务执行顺利程度的事务状态信息,以及用于表征当前业务系统中正在执行的事务使用资源量的资源占用信息。
在获取正在执行的事务的事务执行信息之后,可以根据事务执行信息包含的事务标识,为每个正在执行的事务建立事务执行信息与事务标识的对应关系。然后将这些对应关系作为事务执行信息进行存储,形成事务执行信息库。该事务执行信息库具体可以存储在数据库本地或是业务系统本地或是云端;鉴于正在执行的事务的即时性,优选可以存储在业务系统本地,方便快速存储、查询、更新。
一种可实现的方案,在从事务执行信息库中获取到一个正在执行的事务的事务执行信息后,为了加快后续的识别速度,提升识别效果,在对事务进行异常识别之前,可以对事务执行信息进行预处理。在本申请中,预处理的方式可以包括:基于黑名单的筛选、基于白名单的筛选以及基于黑名单和白名单结合的筛选等。
基于黑名单的筛选:
本申请可以预先根据历史异常事务或其它异常事务库,整理得到异常事务,并基于这些异常事务的事务标识建立事务黑名单。其中事务标识可以是事务名称或者事务携带的关键字符等。
在对事务执行信息进行预处理时,可以从事务执行信息中提取出事务标识,并将事务标识与事务黑名单中事务标识进行比对,如果从事务执行信息中提取出的事务标识在事务黑名单中,则确定该事务为异常事务。无需进入步骤104,直接进入步骤106。反之,如果从事务执行信息中提取出的事务标识不在事务黑名单中,则不能确定该正在执行的事务是否异常,需要进入步骤104进一步识别判断。
基于白名单的筛选:
事务白名单的建立与上述事务黑名单的方式类似。在对事务执行信息进行预处理时,可以将从事务执行信息中提取出事务标识,并将事务标识与事务白名单中事务标识进行比对,如果从事务执行信息中提取出的事务标识在事务白名单中,则确定该事务为正常事务,可以不做处理。如果从事务执行信息中提取出的事务标识不在事务白名单中,则不能确定该正在执行的事务是否异常,需要进入步骤104进一步识别判断。
基于黑名单和白名单结合的筛选:
对于同时设置有黑名单和白名单的情况,可以先将从事务执行信息中提取出的事务标识与事务白名单中事务标识进行比对,如果从事务执行信息中提取出的事务标识在事务白名单中,则确定该事务为正常事务,可以不做处理。如果从事务执行信息中提取出的事务标识不在事务白名单中,则可以进一步将事务标识与事务黑名单中事务标识进行比对,如果在黑名单中,则确定该事务为异常事务,无需进入步骤104,直接进入步骤106。如果不在黑名单中,则不能确定该正在执行的事务是否异常,需要进入步骤104进一步识别判断。或者,可以先将从事务执行信息中提取出的事务标识与事务黑名单中事务标识进行比对,如果从事务执行信息中提取出的事务标识在事务黑名单中,则确定该事务为异常事务,无需进入步骤104,直接进入步骤106。如果从事务执行信息中提取出的事务标识不在事务黑名单中,在可以进一步将事务标识与事务白名单中事务标识进行比对,如果在白名单中,则可以不做处理。如果不在白名单中,则不能确定该正在执行的事务是否异常,需要进入步骤104进一步识别判断。
由此,可以通过设置黑名单的方式对事务进行初筛,提升异常事务的识别效率。
步骤104:基于所述事务执行信息是否满足预先设置的异常事务识别条件,识别所述正在执行的事务是否为异常事务。
在本申请中,可以预先设置异常事务识别条件,以基于事务执行信息来识别正在执行的事务是否为异常事务。其中,异常事务识别条件可以是基于事务状态信息及其对应的状态上限确定的第一异常事务识别条件,也可以是基于事务状态信息及其对应的状态上限,以及资源占用信息及其对应的占用上限共同确定的第二条件。
所述事务执行信息至少包括:用于表征事务执行顺利程度的事务状态信息,以及用于表征当前业务系统中正在执行的事务使用资源量的资源占用信息;其中,事务状态信息可以包括:事务运行频次、事务运行时间等;资源占用信息可以包括:CPU占用率、内存占用率等,此外,还可以包含未提交逻辑日志占据整个逻辑日志比例等与服务资源占用相关的其它信息。
一种可实现的方案,步骤104在基于所述事务执行信息是否满足预先设置的异常事务识别条件,识别所述正在执行的事务是否为异常事务时,可以基于第一异常事务识别条件:判断所述事务状态信息中任一状态指标的取值,是否大于该状态指标对应的设定阈值;如果任一状态指标的取值均大于该状态指标对应的设定阈值,则识别所述正在执行的事务为异常事务,执行步骤106;否则,则识别正在执行的事务为正常事务,不做处理。
另一种可实现的方案,步骤104在基于所述事务执行信息是否满足预先设置的异常事务识别条件,识别所述正在执行的事务是否为异常事务时,可以基于第二异常事务识别条件:判断所述事务状态信息中任一状态指标的取值,是否大于该状态指标对应的设定阈值;如果任一状态指标的取值均大于该状态指标对应的设定阈值,则识别所述正在执行的事务为异常事务,执行步骤106;否则,判断所述资源占用信息中至少一项占用指标的取值,是否大于该占用指标对应的设定阈值;如果至少一项占用指标的取值大于该占用指标对应的设定阈值,则识别所述正在执行的事务为异常事务,执行步骤106;如果所有占用指标的取值均不大于该占用指标对应的设定阈值,则识别正在执行的事务为正常事务,不做处理。
再一种可实现的方案,基于使用第二异常事务识别条件的识别结果,如果所述资源占用信息中占用指标的取值均不大于相应占用指标对应的设定阈值,则还可以从所述事务执行信息中提取事务特征,输入预先设置的异常事务预测模型,得到针对所述正在执行的事务的预测结果;在预测结果为异常时,将所述正在执行的事务重新送回事务执行队列。其中,异常事务预测模型可以根据历史异常事务样本进行反复训练得到。
进一步,在识别所述正在执行的事务为异常事务之后,还可以基于所述异常事务中包含异常指标的数目和/或类型,确定该异常事务的处理级别;其中,所述异常指标是指取值大于相应设定阈值的状态指标或占用指标。
一种可实现的方式,如果所述异常事务中包含异常指标的数目不小于第一阈值,则确定该异常事务的处理级别为高优先级别;如果所述异常事务中包含异常指标的数目大于第一阈值且不小于第二阈值,则确定该异常事务的处理级别为优先级别;如果所述异常事务中包含异常指标的数目小于第二阈值,则确定该异常事务的处理级别为普通级别;其中,所述第一阈值、第二阈值均为大于1的正整数。
另一种可实现的方式,如果所述异常事务中包含异常指标的类型只包含关键指标类型,则确定该异常事务的处理级别为高优先级别;如果所述异常事务中包含异常指标的类型包含关键指标类型和非关键指标类型,则确定该异常事务的处理级别为优先级别;如果所述异常事务中包含异常指标的类型只包含非关键指标类型,则确定该异常事务的处理级别为普通级别。
再一种可实现的方式,可以基于异常事务中包含异常指标的数目和类型共同确定,该异常事务是高优先级别、优先级别还是普通级别,具体确定方式不限定。
步骤106:在识别所述正在执行的事务是异常事务时,终止执行所述异常事务。
在识别到正在执行的事务是异常事务后,可以终止执行该异常事务,以避免该异常事务对业务系统的干扰,保证业务系统稳定运行。
可选地,在终止执行所述异常事务之前,还可以备份所述异常事务,并送入待重启队列等待时机进行重启。需要说明的是,这里的待重启队列可以视为重启线程执行的循环控制流,与正在执行队列所在的执行线程执行的循环控制流并行执行。
考虑到异常事务有可能是由于事务操作语言本身引发的异常,也可能是事务本身没有问题,而是在运行环境不适的情况下引发的异常。所以,针对异常事务,在进行备份终止后,一方面,可以将这些事务中由于事务本身引发异常的异常事务发送给开发端进行修复改进。另一方面,可以通过重启线程针对异常事务备份库中由于非事务自身问题而引发异常的异常事务进行重启,保证事务可以及时执行,维护业务系统的稳定。
具体地,在重启线程侧,可以在从所述待重启队列中确定待重启的异常事务;获取当前业务系统的内存使用状态,并基于所述内存使用状态判断当前业务系统是否处于低负载运行状态;如果处于低负载运行状态,则获取所述待重启的异常事务并重启。其中,在判断当前业务系统是否处理低负载运行状态时,可以根据当前业务系统的负载总数是否小于负载阈值,来判定当前业务系统是否处于低负载运行状态。或者,也可以基于当前业务系统的剩余资源总量是否大于余额阈值,来判定当前业务系统是否有足够的能力重启该异常事务。从而,在保证当前业务运行稳态的情况下,又可以及时重启异常事务,提升业务系统稳定性。
进一步,当执行重启侧线程,从待重启队列中确定待重启的异常事务时,可以基于异常事务的处理级别,从待重启队列中选取合适的异常事务进行重启。针对所述待重启队列中不同处理级别的异常事务,从待重启队列中选择处理级别最高的异常事务作为待重启的异常事务;和/或,针对所述待重启队列中相同级别的异常事务,从待重启队列中选择最先送入重启队列的异常事务作为待重启的异常事务。
在本申请中,异常事务的处理级别按照异常指标的数目和/或类型划分为:高优先级别、优先级别以及普通级别;那么,在获取所述待重启的异常事务并重启时,可以从获取到的所述待重启的异常事务中确定处理级别;如果所述待重启的异常事务的处理级别为高优先级别,则终止正在执行的事务和/或正在重启的异常事务,并拒绝执行新事务,直至所述待重启的异常事务执行完毕;如果所述待重启的异常事务的处理级别为优先级别,则将正在执行的事务和/或正在重启的异常事务,按照资源占用由高到低的顺序逐个终止,直至所述待重启的异常事务执行完毕;如果所述待重启的异常事务的处理级别为普通级别,则不对正在执行的事务和/或正在重启的异常事务进行终止干预。
换言之,如果此时获取到的待重启的异常事务的处理级别为高优先级别,则说明该异常事务需要及时处理,为避免影响该异常事务的重启,可以将执行线程中正在执行的事务以及重启线程中正在重启的事务均终止,并关闭用户的新事务的接入,将所有资源都供本次异常事务的重启服务,直至该异常事务重启执行完毕。从而,保证高优先级别的异常事务可以及时稳定的再次执行。如果此时获取到的待重启的异常事务的处理级别为优先级别,则说明该异常事务并不需要全部资源来服务,所以,可以将所有正在执行的事务及正在重启的异常事务按照资源占用高低的顺序,逐个进行终止,例如,先终止占用最高的事务,如果可以供当前异常事务的重启,则不需要进一步终止排序中下一个事务,否则,需要进一步终止下一个事务。如此,按照这样的方式为该优先级别的异常事务提供重启服务所需资源。如果此时获取到的待重启的异常事务的处理级别为普通级别,则不需要对当前执行的事务及正在重启的异常事务进行终止干预。
通过对正在执行的事务对应的事务执行信息进行分析,基于所述事务执行信息是否满足预先设置的异常事务识别条件,识别所述正在执行的事务是否为异常事务,从而,可以进行自动识别,而且避免主观排查的失误,提升异常事务的识别速度以及准确性。同时,在判定该正在执行的事务是异常事务时,及时终止该异常事务,可以尽可能降低异常事务对业务系统的不良影响,保障业务系统运行稳定性。
下面通过具体的实例对上述方案进行描述。以数据库A中事务处理为例,可以包括以下几个部分:确定事务队列、识别异常事务以及重启异常事务。其中,确定事务队列、识别异常事务运行在执行线程的循环控制流1,重启异常事务运行在重启线程的循环控制流2。
参照图2所示,针对数据库A中的事务,可以通过对数据库A中事务日志进行监控的方式,从事务日志中获取相应事务的事务执行信息,该事务执行信息可以包括:事务状态信息和资源占用信息。在获取到事务执行信息之后,可以对事务执行信息进行存储,建立得到事务执行信息库。
在识别异常事务时,可以获取事务执行信息,首先,通过事先设置的白名单,预判该正在执行的事务是否在白名单内,如果在白名单内,则不干预该事务的执行;如果不在白名单内,则通过事先设置的黑名单,预判该正在执行的事务是否在黑名单内,如果在黑名单内,则将该事务进行备份,并终止。如果不在黑名单内,则基于该事务的事务状态信息中的事务运行频次,判定是否超过运行频次阈值,如果超过了,则确定该事务异常,送入进行备份并终止。如果事务运行频次未超过运行频次阈值,则进一步判定该事务的事务运行时间,是否超过运行时间阈值,如果超过,则确定该事务异常,送入进行备份并终止。如果未超过运行时间阈值,则获取资源占用信息中的CPU占用率、内存占用率以及未提交逻辑日志占据整个逻辑日志比例等与服务资源占用相关的其它信息。如果这些占用指标中至少一项超过各自对应的设定阈值,则确定该事务异常,送入进行备份并终止。否则,确定该事务正常,不做干预,事务继续执行。其实,在识别到异常事务后,备份事务之前,还可以根据异常事务中异常指标的数目和类型,为异常事务确定处理级别。
其实,在识别异常事务时,还可以增加异常事务识别模型作为识别条件,详见上述描述,在此实例中并不做说明。
在重启异常事务时,可以根据异常事务的处理级别以及送入事务备份库中的时间先后顺序,从中选取当前要重启处理的异常事务。在选定异常事务后,可以根据当前业务系统的运行状态,判断是否有能力对该异常事务进行重启。如果处理低负载运行状态,则可以将该异常事务重启。在重启时,需要根据该异常事务的处理级别,判定是否对当前正在执行的事务和正在重启的异常事务进行全部终止或选择性终止,以保证重启所需资源。在重启结束后,将事务备份库中的已重启完成的异常事务的备份删除。如果重启后,该异常事务仍无法执行,则可以在该重启队列中循环预设次数,仍无法重启完成后,送入执行线程的执行队列等待执行。
可见,在该业务系统运行中,使用一个循环控制流监控数据库层面事务状态,事务异常时采取终止措施,使用另一个循环控制流持续监控服务器状态,寻找机会恢复事务,实现有效、自动的事务闭环管理,无需人工干预。两个循环控制流相互通信、协调工作,维护业务系统能够稳定运行。
实施例二
参照图3所示,为本说明书实施例提供的数据库事务的处理装置,该装置300可以包括:
获取模块301,用于获取目标数据库中正在执行的事务对应的事务执行信息;
识别模块302,用于基于所述事务执行信息是否满足预先设置的异常事务识别条件,识别所述正在执行的事务是否为异常事务;
处理模块303,用于在识别所述正在执行的事务是异常事务时,终止执行所述异常事务。
可选地,作为一个实施例,所述处理模块303在终止执行所述异常事务之前,还用于备份所述异常事务,并送入待重启队列等待时机进行重启。
在本说明书实施例的一种具体实现方式中,所述装置还包括:重启模块;
所述重启模块,用于从所述待重启队列中确定待重启的异常事务;获取当前业务系统的内存使用状态,并基于所述内存使用状态判断当前业务系统是否处于低负载运行状态;如果处于低负载运行状态,则获取所述待重启的异常事务并重启。
在本说明书实施例的一种具体实现方式中,所述事务执行信息至少包括:用于表征事务执行顺利程度的事务状态信息,以及用于表征当前业务系统中正在执行的事务使用资源量的资源占用信息;
所述识别模块302在基于所述事务执行信息是否满足预先设置的异常事务识别条件,识别所述正在执行的事务是否为异常事务时,具体用于判断所述事务状态信息中任一状态指标的取值,是否大于该状态指标对应的设定阈值;如果任一状态指标的取值均大于该状态指标对应的设定阈值,则识别所述正在执行的事务为异常事务;否则,判断所述资源占用信息中至少一项占用指标的取值,是否大于该占用指标对应的设定阈值;如果至少一项占用指标的取值大于该占用指标对应的设定阈值,则识别所述正在执行的事务为异常事务。
在本说明书实施例的一种具体实现方式中,所述识别模块302在所述资源占用信息中占用指标的取值均不大于相应占用指标对应的设定阈值时,还用于从所述事务执行信息中提取事务特征,输入预先设置的异常事务预测模型,得到针对所述正在执行的事务的预测结果;在预测结果为异常时,将所述正在执行的事务重新送回事务执行队列。
在本说明书实施例的一种具体实现方式中,所述识别模块302在在识别所述正在执行的事务为异常事务之后,还用于基于所述异常事务中包含异常指标的数目和/或类型,确定该异常事务的处理级别;其中,所述异常指标是指取值大于相应设定阈值的状态指标或占用指标。
在本说明书实施例的一种具体实现方式中,所述重启模块在从待重启队列中确定待重启的异常事务时,具体用于针对所述待重启队列中不同处理级别的异常事务,从待重启队列中选择处理级别最高的异常事务作为待重启的异常事务;和/或,针对所述待重启队列中相同级别的异常事务,从待重启队列中选择最先送入重启队列的异常事务作为待重启的异常事务。
在本说明书实施例的再一种具体实现方式中,异常事务的处理级别按照异常指标数目和/或类型划分为:高优先级别、优先级别以及普通级别;所述重启模块在获取所述待重启的异常事务并重启时,具体用于从获取到的所述待重启的异常事务中确定处理级别;如果所述待重启的异常事务的处理级别为高优先级别,则终止正在执行的事务和/或正在重启的异常事务,并拒绝执行新事务,直至所述待重启的异常事务执行完毕;如果所述待重启的异常事务的处理级别为优先级别,则将正在执行的事务和/或正在重启的异常事务,按照资源占用由高到低的顺序逐个终止,直至所述待重启的异常事务执行完毕;如果所述待重启的异常事务的处理级别为普通级别,则不对正在执行的事务和/或正在重启的异常事务进行终止干预。
本申请技术方案,通过对正在执行的事务对应的事务执行信息进行分析,基于所述事务执行信息是否满足预先设置的异常事务识别条件,识别所述正在执行的事务是否为异常事务,从而,可以进行自动识别,而且避免主观排查的失误,提升异常事务的识别速度以及准确性。同时,在判定该正在执行的事务是异常事务时,及时终止该异常事务,可以尽可能降低异常事务对业务系统的不良影响,保障业务系统运行稳定性。
其实,本申请方案还提供一种数据库事务处理系统,包括图3所示的数据库事务处理装置,以及数据库以及现有的其它装置结构。该数据库事务处理系统可以实现与图3所示数据库事务处理装置类似的功能,并达到与图3所示数据库事务处理装置类似的效果,在此不作赘述。
实施例三
图4是本说明书的一个实施例电子设备的结构示意图。请参考图4,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成数据库事务的处理装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
获取目标数据库中正在执行的事务对应的事务执行信息;
基于所述事务执行信息是否满足预先设置的异常事务识别条件,识别所述正在执行的事务是否为异常事务;
在识别所述正在执行的事务是异常事务时,终止执行所述异常事务。
上述如本说明书图1或2所示实施例揭示的装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本说明书一个或多个实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本说明书一个或多个实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该电子设备还可执行图1或2的方法,并实现相应装置在图1或2所示实施例的功能,本说明书实施例在此不再赘述。
当然,除了软件实现方式之外,本说明书实施例的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
实施例四
本说明书实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图1或2所示实施例的方法,并具体用于执行以下方法:
获取目标数据库中正在执行的事务对应的事务执行信息;
基于所述事务执行信息是否满足预先设置的异常事务识别条件,识别所述正在执行的事务是否为异常事务;
在识别所述正在执行的事务是异常事务时,终止执行所述异常事务。
总之,以上所述仅为本说明书的较佳实施例而已,并非用于限定本说明书的保护范围。凡在本说明书的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本说明书的保护范围之内。
上述一个或多个实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

Claims (10)

1.一种数据库事务的处理方法,其特征在于,包括:
获取目标数据库中正在执行的事务对应的事务执行信息;
基于所述事务执行信息是否满足预先设置的异常事务识别条件,识别所述正在执行的事务是否为异常事务;
在识别所述正在执行的事务是异常事务时,终止执行所述异常事务。
2.如权利要求1所述的方法,其特征在于,在终止执行所述异常事务之前,所述方法还包括:
备份所述异常事务,并送入待重启队列等待时机进行重启。
3.如权利要求2所述的方法,其特征在于,所述方法还包括:
从所述待重启队列中确定待重启的异常事务;
获取当前业务系统的内存使用状态,并基于所述内存使用状态判断当前业务系统是否处于低负载运行状态;
如果处于低负载运行状态,则获取所述待重启的异常事务并重启。
4.如权利要求1-3任一项所述的方法,其特征在于,所述事务执行信息至少包括:用于表征事务执行顺利程度的事务状态信息,以及用于表征当前业务系统中正在执行的事务使用资源量的资源占用信息;
基于所述事务执行信息是否满足预先设置的异常事务识别条件,识别所述正在执行的事务是否为异常事务,具体包括:
判断所述事务状态信息中任一状态指标的取值,是否大于该状态指标对应的设定阈值;
如果任一状态指标的取值均大于该状态指标对应的设定阈值,则识别所述正在执行的事务为异常事务;
否则,判断所述资源占用信息中至少一项占用指标的取值,是否大于该占用指标对应的设定阈值;
如果至少一项占用指标的取值大于该占用指标对应的设定阈值,则识别所述正在执行的事务为异常事务。
5.如权利要求4所述的方法,其特征在于,如果所述资源占用信息中占用指标的取值均不大于相应占用指标对应的设定阈值,则所述方法还包括:
从所述事务执行信息中提取事务特征,输入预先设置的异常事务预测模型,得到针对所述正在执行的事务的预测结果;
在预测结果为异常时,将所述正在执行的事务重新送回事务执行队列。
6.如权利要求5所述的方法,其特征在于,在识别所述正在执行的事务为异常事务之后,所述方法还包括:
基于所述异常事务中包含异常指标的数目和/或类型,确定该异常事务的处理级别;
其中,所述异常指标是指取值大于相应设定阈值的状态指标或占用指标。
7.如权利要求6所述的方法,其特征在于,从待重启队列中确定待重启的异常事务,具体包括:
针对所述待重启队列中不同处理级别的异常事务,从待重启队列中选择处理级别最高的异常事务作为待重启的异常事务;和/或,
针对所述待重启队列中相同级别的异常事务,从待重启队列中选择最先送入重启队列的异常事务作为待重启的异常事务。
8.如权利要求6所述的方法,其特征在于,异常事务的处理级别按照异常指标数目和/或类型划分为:高优先级别、优先级别以及普通级别;获取所述待重启的异常事务并重启,具体包括:
从获取到的所述待重启的异常事务中确定处理级别;
如果所述待重启的异常事务的处理级别为高优先级别,则终止正在执行的事务和/或正在重启的异常事务,并拒绝执行新事务,直至所述待重启的异常事务执行完毕;
如果所述待重启的异常事务的处理级别为优先级别,则将正在执行的事务和/或正在重启的异常事务,按照资源占用由高到低的顺序逐个终止,直至所述待重启的异常事务执行完毕;
如果所述待重启的异常事务的处理级别为普通级别,则不对正在执行的事务和/或正在重启的异常事务进行终止干预。
9.一种数据库事务的处理装置,其特征在于,包括:
获取模块,用于获取目标数据库中正在执行的事务对应的事务执行信息;
识别模块,用于基于所述事务执行信息是否满足预先设置的异常事务识别条件,识别所述正在执行的事务是否为异常事务;
处理模块,用于在识别所述正在执行的事务是异常事务时,终止执行所述异常事务。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行:
获取目标数据库中正在执行的事务对应的事务执行信息;
基于所述事务执行信息是否满足预先设置的异常事务识别条件,识别所述正在执行的事务是否为异常事务;
在识别所述正在执行的事务是异常事务时,终止执行所述异常事务。
CN202311761356.2A 2023-12-20 2023-12-20 一种数据库事务的处理方法及装置 Pending CN117827383A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311761356.2A CN117827383A (zh) 2023-12-20 2023-12-20 一种数据库事务的处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311761356.2A CN117827383A (zh) 2023-12-20 2023-12-20 一种数据库事务的处理方法及装置

Publications (1)

Publication Number Publication Date
CN117827383A true CN117827383A (zh) 2024-04-05

Family

ID=90522207

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311761356.2A Pending CN117827383A (zh) 2023-12-20 2023-12-20 一种数据库事务的处理方法及装置

Country Status (1)

Country Link
CN (1) CN117827383A (zh)

Similar Documents

Publication Publication Date Title
CN108846749B (zh) 一种基于区块链技术的分片化的交易执行系统及方法
US10826980B2 (en) Command process load balancing system
CN106469018B (zh) 分布式存储系统的负载监控方法及设备
CN107402863B (zh) 一种用于通过日志系统处理业务系统的日志的方法与设备
CN110751515A (zh) 一种基于用户消费行为的决策方法和装置、电子设备及存储介质
CN112306383B (zh) 执行作业的方法、计算节点、管理节点及计算设备
CN110737717A (zh) 一种数据库迁移方法及装置
CN111124791A (zh) 一种系统测试方法及装置
CN109345081B (zh) 一种数据采集方法、装置及电子设备
CN111752715A (zh) 大量请求量下的系统优化方法、装置、设备及存储介质
CN115190010B (zh) 基于软件服务依赖关系的分布推荐方法和装置
CN117827383A (zh) 一种数据库事务的处理方法及装置
CN116010450A (zh) 资源分配的方法、装置、电子设备和计算机可读介质
CN108021464B (zh) 一种应用程序响应数据的兜底处理的方法以及装置
CN115018383A (zh) 任务分配方法、装置、设备及存储介质
CN114968552A (zh) 缓存分配方法、装置、设备、存储介质和程序产品
US10303882B2 (en) Implementing locale management on PaaS: locale replacement risk analysis
CN112559294A (zh) 一种应用页面资源消耗的确定方法和装置
WO2020140623A1 (zh) 电子装置、元数据处理方法和计算机可读存储介质
CN112182788A (zh) 基于虚拟仿真试验平台的资源配置方法
CN112540842A (zh) 动态调整系统资源的方法及装置
CN111800446A (zh) 调度处理方法、装置、设备和存储介质
CN113741810B (zh) 一种数据迁移方法及装置
CN109344043A (zh) 一种性能分析方法及相关装置
CN116431327B (zh) 一种任务限流处理方法及堡垒机

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