[發(fā)明專利]基于數(shù)據(jù)庫的分布式鎖處理方法、裝置、存儲介質(zhì)及系統(tǒng)在審
| 申請?zhí)枺?/td> | 202210294664.8 | 申請日: | 2022-03-22 |
| 公開(公告)號: | CN114647655A | 公開(公告)日: | 2022-06-21 |
| 發(fā)明(設(shè)計)人: | 李斌 | 申請(專利權(quán))人: | 康鍵信息技術(shù)(深圳)有限公司 |
| 主分類號: | G06F16/23 | 分類號: | G06F16/23 |
| 代理公司: | 上海漢之律師事務所 31378 | 代理人: | 周婷婷 |
| 地址: | 518066 廣東省深圳市前海深港合作區(qū)前*** | 國省代碼: | 廣東;44 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 基于 數(shù)據(jù)庫 分布式 處理 方法 裝置 存儲 介質(zhì) 系統(tǒng) | ||
本發(fā)明涉及計算機技術(shù)領(lǐng)域,提供一種基于數(shù)據(jù)庫的分布式鎖處理方法、裝置、存儲介質(zhì)及系統(tǒng),處理方法包括:獲取內(nèi)存鎖,以確定持有所述內(nèi)存鎖的進程;當所述進程未持有分布式鎖時,生成申請分布式鎖的標志,并確定分布式鎖的標識;基于所述申請分布式鎖的標志和所述分布式鎖的標識,發(fā)送取鎖請求;數(shù)據(jù)庫接收所述取鎖請求,并基于所述分布式鎖的標識進行空鎖檢測和鎖超時檢測,以確定將所述分布式鎖分配給所述進程;本發(fā)明的基于數(shù)據(jù)庫的分布式鎖處理方法及裝置能夠避免請求鎖的服務器在取鎖過程中被阻塞;并且在取鎖時判斷當前鎖是否超時,以避免因當前鎖所在的服務器突然宕機,長時間無法釋放鎖,導致其他服務器一直無法獲取到鎖。
技術(shù)領(lǐng)域
本發(fā)明涉及計算機技術(shù)領(lǐng)域,特別是涉及基于數(shù)據(jù)庫的分布式鎖處理方法、裝置、存儲介質(zhì)及系統(tǒng)。
背景技術(shù)
目前,不論是單進程程序、多進程程序還是分布式系統(tǒng),都需要面對一個并發(fā)程序處理最常見的問題:共享資源的爭用,即如何保證并發(fā)場景下對共享資源讀寫操作的時序性、原子性以及一致性;通常的解決方法是使用“鎖”對并發(fā)讀寫數(shù)據(jù)進行保護。比如,單進程程序中使用內(nèi)存鎖、多進程程序中使用文件鎖、以及分布式系統(tǒng)中使用分布式鎖等;由于分布式系統(tǒng)的應用普及,因此,對分布式系統(tǒng)中“鎖”的使用尤為關(guān)注。
現(xiàn)有技術(shù)中,在分布式系統(tǒng)中分布式鎖的使用是通過數(shù)據(jù)庫來實現(xiàn)的,主要有兩種方法,一種是基于數(shù)據(jù)庫的行級鎖;一種是通過比較表字段的值來實現(xiàn)的樂觀鎖;第一種方法會使系統(tǒng)線程被阻塞,這種阻塞狀態(tài)不會因等待時長超時被取消,而是直到線程獲取到鎖,阻塞狀態(tài)才能取消;第二種方法是多個線程先對共享數(shù)據(jù)進行操作,再在提交時進行沖突檢測,這種處理仍會存在臟讀的問題,無法有效鎖住資源;此外,在獲取到鎖的服務器宕機未釋放鎖時,其它服務器無法獲取到該鎖。
因此,如何有針對性且靈活地進行分布式鎖的處理是一個亟待解決的問題。
發(fā)明內(nèi)容
鑒于以上所述現(xiàn)有技術(shù)的缺點,本發(fā)明的目的在于提供一種基于數(shù)據(jù)庫的分布式鎖處理方法、裝置、存儲介質(zhì)及系統(tǒng),用于解決現(xiàn)有技術(shù)中無法正對性且靈活地進行分布式鎖的處理的問題。
為實現(xiàn)上述目的及其他相關(guān)目的,本發(fā)明提供一種基于數(shù)據(jù)庫的分布式鎖處理方法,包括以下步驟:獲取內(nèi)存鎖,以確定持有所述內(nèi)存鎖的進程;當所述進程未持有分布式鎖時,生成申請分布式鎖的標志,并確定分布式鎖的標識;基于所述申請分布式鎖的標志和所述分布式鎖的標識,發(fā)送取鎖請求;數(shù)據(jù)庫接收所述取鎖請求,并基于所述分布式鎖的標識進行空鎖檢測和鎖超時檢測,以確定將所述分布式鎖分配給所述進程。
于本發(fā)明的一實施例中,所述當所述進程未持有分布式鎖時,生成申請分布式鎖的標志,以確定分布式鎖的標識,包括:當所述進程未持有所述分布式鎖時,基于所述進程,生成申請所述分布式鎖的標志;基于所述進程,獲取所述進程爭用的共享資源;基于所述共享資源確定分布式鎖的標識。
于本發(fā)明的一實施例中,所述基于所述申請分布式鎖的標志和所述分布式鎖的標識,發(fā)送取鎖請求,包括:基于所述分布式鎖的標識,在所述數(shù)據(jù)庫中預設(shè)的分布式鎖的數(shù)據(jù)表中查詢分布式鎖的標識對應的字段是否有所述標識;當所述標識存在時,基于所述申請分布式鎖的標志和所述分布式鎖的標識,發(fā)送所述取鎖請求;當所述標識不存在時,在所述數(shù)據(jù)庫的分布式鎖的標識對應的字段中創(chuàng)建所述分布式鎖的標識;再基于所述申請分布式鎖的標志和所述分布式鎖的標識,發(fā)送所述取鎖請求。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于康鍵信息技術(shù)(深圳)有限公司,未經(jīng)康鍵信息技術(shù)(深圳)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210294664.8/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 數(shù)據(jù)庫
- 數(shù)據(jù)庫管理系統(tǒng)及數(shù)據(jù)庫
- 數(shù)據(jù)庫構(gòu)筑裝置、數(shù)據(jù)庫檢索裝置、數(shù)據(jù)庫裝置、數(shù)據(jù)庫構(gòu)筑方法、以及數(shù)據(jù)庫檢索方法
- 數(shù)據(jù)庫和數(shù)據(jù)庫處理方法
- 數(shù)據(jù)庫系統(tǒng)、數(shù)據(jù)庫更新方法、數(shù)據(jù)庫以及數(shù)據(jù)庫更新程序
- 容器數(shù)據(jù)庫
- 數(shù)據(jù)庫同步方法及數(shù)據(jù)庫
- 一種MongoDB數(shù)據(jù)庫對象復制延遲監(jiān)控方法和裝置
- 數(shù)據(jù)分布式存儲方法、裝置、電子設(shè)備及存儲介質(zhì)
- 數(shù)據(jù)庫語句執(zhí)行方法及裝置





