本申請涉及數據庫運維領域,尤其涉及一種鎖的釋放方法、裝置及電子設備。
背景技術:
1、目前,不論是單進程程序、多進程程序,還是分布式系統,都需要面對一個并發程序處理的常見問題,即,如何保證并發場景下對共享資源讀寫操作的時序性、原子性以及一致性。尤其在數據庫中,絕對不允許同一時刻有兩個不同的線程對數據庫中的同一條記錄進行修改,否則會因數據并發寫入而帶來數據覆蓋問題。為了避免這種數據并發寫入帶來的數據覆蓋問題,一般會考慮給當前需要更新的數據加鎖,利用鎖對并發讀寫數據進行保護。
2、現有技術通過對各個鎖的持有時間進行監控,若發現鎖的持有時間過長,則根據鎖的持有時間下的超時時間來釋放鎖。然而,在業務高峰期,往往會出現大量鎖集體超時的情況,由于在鎖超時的情況下,與鎖對應的數據無法被訪問,若根據鎖的超時時間來釋放鎖,勢必會造成業務系統中斷,需要等待一段時間才能重新上線,無法保證業務的連續性。
技術實現思路
1、有鑒于此,本申請提供了一種鎖的釋放方法、裝置及電子設備,主要目的在于解決目前根據鎖的超時時間來釋放鎖,勢必會造成業務系統中斷,需要等待一段時間才能重新上線,無法保證業務的連續性的技術問題。
2、第根據本公開的第一個方面,提供了一種鎖的釋放方法,該方法包括:
3、獲取數據庫中的多個數據表和多個數據表對應的表數據;
4、根據所述表數據確定每個數據表的第一總記錄數,以及確定每個數據表中持鎖數據表的表類型和第一持鎖比例;
5、基于每個數據表中持鎖數據表的表類型,確定持鎖數據表對應的第一告警指標,其中,不同的表類型對應不同的第一告警指標;
6、基于每個數據表的第一總記錄數、第一持鎖比例和第一告警指標,確定多個數據表中需要進行告警的目標數據表;
7、判斷所述目標數據表是否存在加鎖記錄,若存在,則釋放所述目標數據表對應的鎖,所述加鎖記錄為對所述目標數據表進行加鎖操作時的記錄。
8、根據本公開的第二個方面,提供了一種鎖的釋放裝置,該裝置包括:
9、獲取模塊,用于獲取數據庫中的多個數據表和多個數據表對應的表數據;
10、第一確定模塊,用于根據所述表數據確定每個數據表的第一總記錄數,以及確定每個數據表中持鎖數據表的表類型和第一持鎖比例;
11、第二確定模塊,用于基于每個數據表中持鎖數據表的表類型,確定持鎖數據表對應的第一告警指標,其中,不同的表類型對應不同的第一告警指標;
12、第三確定模塊,用于基于每個數據表的第一總記錄數、第一持鎖比例和第一告警指標,確定多個數據表中需要進行告警的目標數據表;
13、第一判斷模塊,用于判斷所述目標數據表是否存在加鎖記錄,若存在,則釋放所述目標數據表對應的鎖,所述加鎖記錄為對所述目標數據表進行加鎖操作時的記錄。
14、根據本公開的第三個方面,提供了一種電子設備,包括:至少一個處理器;以及與所述至少一個處理器通信連接的存儲器;其中,所述存儲器存儲有可被所述至少一個處理器執行的指令,所述指令被所述至少一個處理器執行,以使所述至少一個處理器能夠執行前述第一方面的方法。
15、根據本公開的第四個方面,提供了一種存儲有計算機指令的非瞬時計算機可讀存儲介質,其中,計算機指令用于使計算機執行前述第一方面的方法。
16、本公開提供的鎖的釋放方法、裝置及電子設備,與現有技術相比,本公開通過獲取數據庫中的多個數據表和多個數據表對應的表數據;根據表數據確定每個數據表的第一總記錄數,以及確定每個數據表中持鎖數據表的表類型和第一持鎖比例;基于每個數據表中持鎖數據表的表類型,確定持鎖數據表對應的第一告警指標,其中,不同的表類型對應不同的第一告警指標;基于每個數據表的第一總記錄數、第一持鎖比例和第一告警指標,確定多個數據表中需要進行告警的目標數據表;判斷目標數據表是否存在加鎖記錄,若存在,則釋放目標數據表對應的鎖,加鎖記錄為對目標數據表進行加鎖操作時的記錄。通過應用本公開的方案,根據每個數據表的第一總記錄數、第一持鎖比例和第一告警指標,確定出需要進行告警的目標數據表,若目標數據表存在加鎖記錄,則對目標數據表的鎖進行釋放,從而能夠對業務系統的擁塞進行提前預警,使得有時間對即將發生的擁塞進行相應處理,避免業務系統發生中斷,保證了業務的連續性。
17、上述說明僅是本申請技術方案的概述,為了能夠更清楚了解本申請的技術手段,而可依照說明書的內容予以實施,并且為了讓本申請的上述和其它目的、特征和優點能夠更明顯易懂,以下特舉本申請的具體實施方式。
1.一種鎖的釋放方法,其特征在于,包括:
2.根據權利要求1所述的方法,其特征在于,所述表數據包括數據表屬性信息,所述數據表屬性信息包括數據表名;
3.根據權利要求1所述的方法,其特征在于,所述確定每個數據表中持鎖數據表的表類型,包括:
4.根據權利要求3所述的方法,其特征在于,所述第一總記錄數包括系統表總記錄數和業務表總記錄數,所述第一持鎖比例包括系統表持鎖比例以及業務表持鎖比例;
5.根據權利要求4所述的方法,其特征在于,所述第一告警指標包括系統表告警記錄數、業務表告警記錄數、系統表告警持鎖比例以及業務表告警持鎖比例;
6.根據權利要求1所述的方法,其特征在于,所述方法還包括:
7.根據權利要求6所述的方法,其特征在于,所述確定持鎖數據表對應的持鎖模式,包括:
8.根據權利要求6所述的方法,其特征在于,所述持鎖模式包括共享鎖模式和排他鎖模式,所述第二持鎖比例包括共享鎖比例以及排他鎖比例;
9.根據權利要求7所述的方法,其特征在于,所述第二告警指標包括第二告警記錄數、共享鎖模式下的共享鎖告警比例,以及排他鎖模式下的排他鎖告警比例;
10.一種鎖的釋放裝置,其特征在于,包括:
11.一種電子設備,包括:
12.一種存儲有計算機指令的非瞬時計算機可讀存儲介質,其中,所述計算機指令用于使所述計算機執行根據權利要求1-9中任一項所述的方法。