CN116225726A - 一种数据库集群的死锁信息收集方法、存储介质及设备 - Google Patents
一种数据库集群的死锁信息收集方法、存储介质及设备 Download PDFInfo
- Publication number
- CN116225726A CN116225726A CN202310014399.8A CN202310014399A CN116225726A CN 116225726 A CN116225726 A CN 116225726A CN 202310014399 A CN202310014399 A CN 202310014399A CN 116225726 A CN116225726 A CN 116225726A
- Authority
- CN
- China
- Prior art keywords
- lock
- deadlock
- database cluster
- information
- information collection
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/524—Deadlock detection or avoidance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- 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
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种数据库集群的死锁信息收集方法、存储介质及设备,该死锁信息收集方法包括:获取锁信息收集信号;控制数据库集群进入锁信息收集状态;获取数据库集群的各个节点对应的锁的相关信息;对相关信息进行加工;将加工结果输入死锁检测模块,进行死锁检测。本发明实现了跨节点集群的锁信息快速获取,并高效应用到集中式死锁检测模块,提升系统对死锁检测处理,提高开发效率。
Description
技术领域
本发明涉及数据库领域,特别是涉及一种数据库集群的死锁信息收集方法、存储介质及设备。
背景技术
在系统中,死锁指的是两个或多个实体相互独占,对方保持等待的资源,导致这几个实体相互阻塞,无法正常运转的情况。死锁的产生会导致系统提供服务的效率降低,过多的死锁甚至会导致系统无法提供服务,造成系统故障。在数据库系统中,由于事务的并发执行,会导致死锁产生概率高于其他其他系统,所以,死锁检测在数据库系统中非常必要。
目前应用于集中式数据库领域的死锁检测算法和技术比较多,但是集中式死锁检测显然不能满足集群场景,包括但不限于share-disk架构。
集中式数据库领域的死锁检测算法和技术已经呈现百花齐放的态势,但是集群场景的死锁检测算法相对较少,且存在和应用场景深度绑定的情况。那么如何将集中式数据库领域的成熟技术迁移到集群数据库中,是一个很有价值的问题。解决这一问题的关键就是在集群中各点获取锁信息,然后找到突破口,将数据输入到死锁检测模块,实现在集群中死锁检测和预防。
发明内容
本发明的一个目的是要提供一种能够解决上述任一问题的数据库集群的死锁信息收集方法、存储介质及设备。
本发明一个进一步的目的是要提高数据集群的死锁检测效率。
特别地,本发明提供了一种数据库集群的死锁信息收集方法,包括:
获取锁信息收集信号;
控制数据库集群进入锁信息收集状态;
获取数据库集群的各个节点对应的锁的相关信息;
对相关信息进行加工;
将加工结果输入死锁检测模块,进行死锁检测。
进一步地,对相关信息进行加工的步骤包括:
根据相关信息生成数据库集群的锁全集结构。
进一步地,相关信息包括锁、锁持有者和锁等待者,根据相关信息生成数据库集群的锁全集结构的步骤包括:
将锁、与锁对应的锁持有者以及与锁对应的锁等待者对应保存,生成散列表;
对散列表进行处理以形成数据库集群的锁全集结构。
进一步地,进行死锁检测的步骤之后还包括:
获取死锁检测结果;
判断数据库集群内是否存在死锁;
若是,则通知死锁对应节点的对应代理进程,命令对应代理进程放弃持有锁,并回滚事务;
若否,则将锁全集结构发送至锁信息收集信号对应节点的对应代理进程,由对应代理进程进行本地锁信息的重构,防止死锁产生。
进一步地,控制数据库集群进入锁信息收集状态的步骤包括:
按照预设顺序向数据库集群的各个节点发送锁信息收集预备信息;
尝试获取各个节点的应答信息,应答信息包括已收到锁信息收集预备信息并成功执行的信号;
若获取各个节点的应答信息均获取成功,则确认数据库集群进入锁信息收集状态。
进一步地,获取各个节点对应的锁的相关信息步骤还包括:
对各个节点增加锁信息收集守护进程,以使得各个节点互相独立进行锁信息收集。
进一步地,锁信息收集信号为事务处理进程的等锁时间的超时信号。
进一步地,锁信息收集信号为事务统计模块统计的事务数量的超限信号。
根据本发明的另一方面,还提供了一种机器可读存储介质,其上存储有机器可执行程序,机器可执行程序被处理器执行时实现上述任一种数据库集群的死锁信息收集方法。
根据本发明的另一方面,还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并在处理器上运行的机器可执行程序,并且处理器执行机器可执行程序时实现上述任一种数据库集群的死锁信息收集方法。
本发明的数据库集群的死锁信息收集方法包括:获取锁信息收集信号;控制所述数据库集群进入锁信息收集状态;获取所述数据库集群的各个节点对应的锁的相关信息;对所述相关信息进行加工;将加工结果输入死锁检测模块,进行死锁检测。本发明实现了跨节点集群的锁信息快速获取,并高效应用到集中式死锁检测模块,提升系统对死锁检测处理,提高开发效率。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
后文将参照附图以示例性而非限制性的方式详细描述本发明的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。附图中:
图1是根据本发明一个实施例的数据库集群的死锁信息收集方法的示意性步骤图;
图2是根据本发明另一个实施例的数据库集群的死锁信息收集方法的示意性步骤图;
图3是是根据本发明又一个实施例的数据库集群的死锁信息收集方法的示意性步骤图;
图4是根据本发明一个实施例的机器可读存储介质的示意图;以及
图5是根据本发明一个实施例的计算机设备的示意图。
具体实施方式
图1是根据本发明一个实施例的数据库集群的死锁信息收集方法的示意性步骤图。如图1所示,本实施例的数据库集群的死锁信息收集方法包括:
步骤S102,获取锁信息收集信号。锁信息收集信号可以为事务处理进程的等锁时间的超时信号,还可以为事务统计模块统计的事务数量的超限信号。在事务处理进程的等锁时间超时,则表示可能发生了死锁,导致该事务处理进程无法继续进行。在事务统计模块统计的事务数量超限的状态下,由于事务过多,也可能导致死锁的发生。
步骤S104,控制数据库集群进入锁信息收集状态,数据库集群准备采集锁信息收集。
步骤S106,获取数据库集群的各个节点对应的锁的相关信息。
步骤S108,对相关信息进行加工。对相关信息进行加工得到数据库集群的锁全集结构。
步骤S110,将加工结果输入死锁检测模块,进行死锁检测。将数据库集群的锁全集结构作为加工结果输入死锁检测模块。
本实施例的数据库集群的死锁信息收集方法可以通过远程过程调用(RPC,RemoteProcedure Call)通知数据库集群的各节点进入锁锁信息收集预备阶段,通过RPC调用获取锁队列和等待队列等信息,在守护进程内生成整集群锁信息全集结构,实现锁信息的收集和处理,最终复用集中式死锁检测算法。
当事务处理进程等锁时间超过设定的阈值,或者当事务统计模块检测到处理超过阈值等特定事件发生时,将会通过发送信号通知锁信息收集进程,发起一次全局锁信息收集和死锁检测。
在一些实施例中,在锁信息收集进程在收到对应通知时,首先设置防止多次发起的标志。
本实施例的数据库集群的死锁信息收集方法中对相关信息进行加工的步骤包括:根据相关信息生成数据库集群的锁全集结构。相关信息中包括锁、锁持有者和锁等待者,锁全集结构中包括锁、与该锁对应的锁持有者以及与该锁对应的锁等待者,三者对应存储。
本实施例的数据库集群的死锁信息收集方法中根据相关信息生成数据库集群的锁全集结构的步骤包括:将锁、与锁对应的锁持有者以及与锁对应的锁等待者对应保存,生成散列表;对散列表进行处理以形成数据库集群的锁全集结构。
在锁信息收集完成后,对零散的锁信息进行处理。将锁的唯一标识符作为标识,生成散列表结构中的一项,然后在散列表对应内容中初始化两个队列,将对应的锁持有者和锁等待者,依次加入到两个队列中,这样在本地便生成集群的锁全集结构。由于集群的锁全集结构和原来的一致,因此可以将锁全集结构直接输入到死锁检测模块,实现集群死锁检测。
本实施例的数据库集群的死锁信息收集方法中获取各个节点对应的锁的相关信息步骤还包括:对各个节点增加锁信息收集守护进程,以使得各个节点互相独立进行锁信息收集,避免集中在一个节点时,导致的负载过高的情况产生。
图2是根据本发明另一个实施例的数据库集群的死锁信息收集方法的示意性步骤图。如图2所示,本实施里的数据库集群的死锁信息收集方法中进行死锁检测的步骤之后还包括:
步骤S202,获取死锁检测结果。
步骤S204,判断数据库集群内是否存在死锁。若是,则执行步骤S206;若是,则执行步骤S208。
步骤S206,通知死锁对应节点的对应代理进程,命令对应代理进程放弃持有锁,并回滚事务。
步骤S208,将锁全集结构发送至锁信息收集信号对应节点的对应代理进程,由对应代理进程进行本地锁信息的重构,防止死锁产生。
死锁检测结束后,锁信息收集进程负责处理检测结果。如果存在死锁,锁信息收集进程将会通知到对应节点对应代理进程,命令其放弃持有锁,并回滚事务。如果不存在死锁,但是存在可能导致死锁的情况,锁信息收集进程将会把处理后的锁全集结构发送到对应节点对应代理进程,由其进程本地锁信息的重构,防止死锁的产生。
图3是是根据本发明又一个实施例的数据库集群的死锁信息收集方法的示意性步骤图。如图3所示,本实施例的数据库集群的死锁信息收集方法的控制数据库集群进入锁信息收集状态的步骤包括:
步骤S302,按照预设顺序向数据库集群的各个节点发送锁信息收集预备信息。
步骤S304,尝试获取各个节点的应答信息。应答信息包括已收到锁信息收集预备信息并成功执行的信号。若获取各个节点的应答信息均获取成功,则执行步骤S306。
步骤S306,确认数据库集群进入锁信息收集状态。
按照特定顺序依次向各个节点发送锁信息收集预备信息。当所有节点均成功应答后,代表集群进入锁信息收集状态。此时继续由锁信息收集进程向集群中各个节点发送消息,收集锁的相关信息。
本实施例的数据库集群的死锁信息收集方法在死锁检测结束后还包括由锁信息收集进程按照特定顺序,依次向各个节点发送锁信息处理完成信息,完成整个流程。
本实施例还提供了一种机器可读存储介质和计算机设备。图4是根据本发明一个实施例的机器可读存储介质的示意图,图5是根据本发明一个实施例的计算机设备的示意图。
机器可读存储介质40其上存储有机器可执行程序41,机器可执行程序41被处理器执行时实现上述任一实施例的数据库集群的死锁信息收集方法。
计算机设备50可以包括存储器520、处理器510及存储在存储器520上并在处理器510上运行的机器可执行程序41,并且处理器510执行机器可执行程序41时实现上述任一实施例的数据库集群的死锁信息收集方法。
需要说明的是,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何机器可读存储介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。
就本实施例的描述而言,机器可读存储介质40可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质40甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。
计算机设备50可以是例如服务器、台式计算机、笔记本式计算机、平板计算机或智能手机。在一些示例中,计算机设备50可以是云计算节点。计算机设备50可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任务或者实现特定的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机设备50可以在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
计算机设备50可以包括适于执行存储的指令的处理器510、在操作期间为所述指令的操作提供临时存储空间的存储器520。处理器510可以是单核处理器、多核处理器、计算集群或任何数量的其他配置。存储器520可以包括随机存取存储器(RAM)、只读存储器、闪存或任何其他合适的存储系统。
处理器510也可以通过系统互连链接到适于将计算机设备50连接到显示设备的显示接口。显示设备可以包括作为计算机设备50的内置组件的显示屏。显示设备还可以包括外部连接到计算机设备50的计算机监视器、电视机或投影仪等。此外,网络接口控制器(network interface controller,NIC)可以适于通过系统互连将计算机设备50连接到网络。在一些实施例中,NIC可以使用任何合适的接口或协议(诸如因特网小型计算机系统接口等)来传输数据。网络可以是蜂窝网络、无线电网络、广域网(WAN))、局域网(LAN)或因特网等等。远程设备可以通过网络连接到计算设备。
本实施例提供的流程图并不旨在指示方法的操作将以任何特定的顺序执行,或者方法的所有操作都包括在所有的每种情况下。此外,方法可以包括附加操作。在本实施例方法提供的技术思路的范围内,可以对上述方法进行附加的变化。
至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。
Claims (10)
1.一种数据库集群的死锁信息收集方法,包括:
获取锁信息收集信号;
控制所述数据库集群进入锁信息收集状态;
获取所述数据库集群的各个节点对应的锁的相关信息;
对所述相关信息进行加工;
将加工结果输入死锁检测模块,进行死锁检测。
2.根据权利要求1所述的数据库集群的死锁信息收集方法,其中,对所述相关信息进行加工的步骤包括:
根据所述相关信息生成所述数据库集群的锁全集结构。
3.根据权利要求2所述的数据库集群的死锁信息收集方法,其中,所述相关信息包括锁、锁持有者和锁等待者,根据所述相关信息生成所述数据库集群的锁全集结构的步骤包括:
将所述锁、与所述锁对应的锁持有者以及与所述锁对应的锁等待者对应保存,生成散列表;
对所述散列表进行处理以形成所述数据库集群的锁全集结构。
4.根据权利要求3所述的数据库集群的死锁信息收集方法,其中,所述进行死锁检测的步骤之后还包括:
获取死锁检测结果;
判断所述数据库集群内是否存在死锁;
若是,则通知所述死锁对应节点的对应代理进程,命令所述对应代理进程放弃持有锁,并回滚事务;
若否,则将所述锁全集结构发送至所述锁信息收集信号对应节点的对应代理进程,由所述对应代理进程进行本地锁信息的重构,防止死锁产生。
5.根据权利要求1所述的数据库集群的死锁信息收集方法,其中,控制所述数据库集群进入锁信息收集状态的步骤包括:
按照预设顺序向所述数据库集群的各个节点发送锁信息收集预备信息;
尝试获取所述各个节点的应答信息,所述应答信息包括已收到所述锁信息收集预备信息并成功执行的信号;
若获取所述各个节点的应答信息均获取成功,则确认所述数据库集群进入锁信息收集状态。
6.根据权利要求1所述的数据库集群的死锁信息收集方法,其中,所述获取各个节点对应的锁的相关信息步骤还包括:
对所述各个节点增加锁信息收集守护进程,以使得所述各个节点互相独立进行锁信息收集。
7.根据权利要求1所述的数据库集群的死锁信息收集方法,其中,
所述锁信息收集信号为事务处理进程的等锁时间的超时信号。
8.根据权利要求1所述的数据库集群的死锁信息收集方法,其中,
所述锁信息收集信号为事务统计模块统计的事务数量的超限信号。
9.一种机器可读存储介质,其上存储有机器可执行程序,所述机器可执行程序被处理器执行时实现根据权利要求1至8任一项所述的数据库集群的死锁信息收集方法。
10.一种计算机设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的机器可执行程序,并且所述处理器执行所述机器可执行程序时实现根据权利要求1至8任一项所述的数据库集群的死锁信息收集方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310014399.8A CN116225726A (zh) | 2023-01-05 | 2023-01-05 | 一种数据库集群的死锁信息收集方法、存储介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310014399.8A CN116225726A (zh) | 2023-01-05 | 2023-01-05 | 一种数据库集群的死锁信息收集方法、存储介质及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116225726A true CN116225726A (zh) | 2023-06-06 |
Family
ID=86586524
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310014399.8A Pending CN116225726A (zh) | 2023-01-05 | 2023-01-05 | 一种数据库集群的死锁信息收集方法、存储介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116225726A (zh) |
-
2023
- 2023-01-05 CN CN202310014399.8A patent/CN116225726A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110888893A (zh) | 一种基于微服务电商系统的订单处理方法 | |
CN108076098A (zh) | 一种业务处理方法及系统 | |
CN111752799A (zh) | 一种业务链路跟踪方法、装置、设备及储存介质 | |
CN111447102B (zh) | Sdn网络设备访问方法、装置、计算机设备及存储介质 | |
CN109901918B (zh) | 一种处理超时任务的方法和装置 | |
CN104219235A (zh) | 一种分布式交易请求方法及装置 | |
CN109451020B (zh) | 超时管理方法、设备及计算机可读存储介质 | |
CN112329001B (zh) | 一种内外网之间的数据分发方法、系统、终端及介质 | |
CN111459963A (zh) | 核心账务交易并发处理方法及装置 | |
CN109766317B (zh) | 一种文件的删除方法、装置、设备及存储介质 | |
CN114327799A (zh) | 分布式事务处理方法及装置、电子设备、存储介质 | |
CN107870822B (zh) | 基于分布式系统的异步任务控制方法及系统 | |
CN116662035A (zh) | 消息队列事务消息的处理方法和装置 | |
CN116225726A (zh) | 一种数据库集群的死锁信息收集方法、存储介质及设备 | |
CN110825505A (zh) | 任务调度方法、装置、计算机设备及存储介质 | |
WO2019201111A1 (zh) | 信息处理方法、装置、设备及计算机可读存储介质 | |
CN111274047A (zh) | 信息处理方法、终端、系统、计算机设备和存储介质 | |
CN111625323A (zh) | 分布式任务处理方法、装置、设备及计算机可读存储介质 | |
CN107423454B (zh) | 一种分布式文件系统中文件锁的处理方法、装置及设备 | |
CN112596761B (zh) | 服务的更新发布方法、装置及相关设备 | |
CN115622988B (zh) | web接口的调用响应方法、装置、电子设备和存储介质 | |
CN111049938A (zh) | 消息通知方法、装置、电子设备及可读存储介质 | |
CN117033033B (zh) | 服务总线中公共服务高效配置和交互的方法 | |
CN113269590B (zh) | 一种用于资源补贴的数据处理方法、装置和系统 | |
CN117573396B (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 |