[發明專利]支持分布式數據庫的分布鎖方法以及分布式數據庫系統有效
| 申請號: | 201410409583.3 | 申請日: | 2014-08-19 |
| 公開(公告)號: | CN104239418B | 公開(公告)日: | 2018-01-19 |
| 發明(設計)人: | 呂迅;高宏達;陳文亭;朱宏軍 | 申請(專利權)人: | 天津南大通用數據技術股份有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 天津濱海科緯知識產權代理有限公司12211 | 代理人: | 楊慧玲 |
| 地址: | 300384 天津市濱海新區高新區華*** | 國省代碼: | 天津;12 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 支持 分布式 數據庫 分布 方法 以及 系統 | ||
技術領域
本發明涉及分布式數據庫領域,尤其是涉及一種支持分布式數據庫的分布鎖方法以及分布式數據庫系統。
背景技術
隨著信息化技術的快速發展,大型數據庫系統需要處理和存儲的數據量越來越大,計算越來越復雜,對于性能的挑戰也越來越大,性能,可靠性,可擴展性的需求就會越來越強烈,這個時候一個集中式的數據庫顯然已經滿足不了需求了。為了適應應用業務的發展需要,分布式數據庫將數據分布在計算機網絡的不同節點上,而這些數據在邏輯上屬于同一個系統。
在傳統的數據庫系統中,當應用并發訪問數據庫數據資源時,為了保證數據的一致性,通常使用資源鎖的方式鎖定資源。當一個事務訪問資源時,為了避免其他事務對資源進行并發操作,會對該事務進行申請鎖操作并獲取該資源的獨占鎖。第二個事務訪問到該資源時,執行申請鎖操作,由于第一個事務已獲得該獨占鎖,所以申請鎖操作會被阻塞,第二個事務即無法執行之后的資源訪問操作。該阻塞直到第一個事務完成訪問釋放鎖或第二個事務申請鎖操作超時才會結束。
上述資源鎖方式在分布式數據庫中,存在著一個問題需要解決:分布式數據庫的資源邏輯上屬于同一個系統但分布在不同節點上。當事務一和事務二訪問分屬在不同節點上的同一資源時,由于上述的鎖機制僅能在節點本地生效,當分屬不同節點的同一資源修改生效后有可能存在沖突,造成該資源的不一致情況發生。
如圖1,假設有三個用戶,分別通過分布式數據庫的不同節點訪問同一張數據表,三個用戶同時執行修改表名這一操作。從圖中可以看出,三個用戶同時訪問三個節點,并發出重命名數據表命令。在三個節點上,同時執行成功。由于該數據表在邏輯上屬于同一個系統,當三個節點的變更互相同步時發生沖突,造成了數據不一致現象。
現有的解決方法是采用一個獨立節點作為鎖管理器,由該節點提供鎖服務。分布式數據庫的所有節點進行資源訪問時向該鎖管理器節點進行鎖查詢,以保證數據一致性。該方式存在的問題是:應用事務的每一次操作都需要訪問鎖管理器節點,造成了應用事務的性能下降,同時,由于采用獨立節點作為鎖管理器,一旦該節點發生故障,造成整個分布式數據庫無法對外提供服務,降低了系統的高可用性。
綜上所述,現有分布式數據庫鎖無法在保證高可用性和高性能的前提下保證資源在分布式數據系統的一致性,也無法解決在不同節點上并發訪問同一資源的沖突問題。
發明內容
本發明要解決的問題是提供一種支持分布式數據庫的分布鎖方法,尤其適合于分布式數據庫在不同節點上訪問同一資源的一致性保證。
為了解決上述技術問題,本發明采用的設計思想是:按照分布式思想重新架構鎖管理器,將分布式數據庫不同節點上的鎖管理器進行封裝,抽象出新的虛擬分布式鎖管理器,并提供不同節點上的分布式鎖管理器同步機制保證一致性。
為解決上述技術問題,本發明采用的技術方案是:
一種支持分布式數據庫的分布鎖方法,包括
將分布式數據庫所需要的鎖資源作為一個整體進行封裝,形成虛擬分布式鎖管理器,所述虛擬分布式鎖管理器在分布式數據庫的每個節點內設置本地映像,并建立對應關聯關系使所有本地映像保持同步;
虛擬分布式鎖管理器的任一節點的本地映像收到應用系統的請求后,確定與該請求對應的有邏輯關系的分布式鎖對象,并同步到所有其他節點的分布式鎖管理器本地映像上;
分布式數據庫的節點通過虛擬分布式鎖管理器的本地映像,來進行數據庫的資源鎖定操作。
進一步的,在發起節點本地分布式鎖管理器本地映像上建立分布式鎖對象后,同步到其他節點的方式為:向所有節點發送同步通知,其他節點收到同步通知后在本地分布式鎖管理器本地映像上建立對應的分布式鎖對象并向發起節點返回同步完成標識,每完成一個節點的同步,則該分布式鎖對象已完成節點數加一,當已完成節點數等于所有節點數,表示同步過程完成,分布式鎖對象建立成功,否則返回失敗。
進一步的,當第二個節點上的虛擬分布式鎖管理器本地映像向第一個節點同步分布式鎖對象時,第一個節點已存在相同邏輯關系的分布式鎖對象,則第二個節點向請求方返回由于已存在相同分布式鎖資源,申請失敗。
進一步的,對分布式鎖對象的同步過程設定時間閾值,若到達設定時間閾值后已完成同步節點數小于所有節點數,則通知所有節點刪除該分布式鎖對象并返回創建分布式鎖超時失敗。
進一步的,所述分布式鎖對象含有的信息內容包括鎖定資源名稱、分布式鎖類型、鎖定模式、分布式鎖已完成同步節點數量、分布式鎖創建時間、分布式鎖創建節點、分布式鎖當前狀態。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于天津南大通用數據技術股份有限公司,未經天津南大通用數據技術股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410409583.3/2.html,轉載請聲明來源鉆瓜專利網。





