System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及數據庫,具體涉及一種分布式數據庫的元數據緩存方法、裝置、設備及介質。
技術介紹
1、在現代數據庫系統中,數據的存儲和計算通常是緊密耦合的,這意味著數據存儲和計算資源是共同管理和操作的。然而,隨著數據量的爆炸式增長和對計算資源需求的不斷增加,存算分離架構逐漸成為一種趨勢。在這種架構中,數據存儲和計算資源被分離到不同的服務器上,這樣可以靈活地擴展存儲和計算能力,并且可以更好地優化資源利用。
2、在存算分離架構中,元數據的管理變得尤為重要。元數據包括數據表結構、索引、統計信息等,是數據庫系統高效運行的關鍵。然而,由于元數據通常存儲在獨立的元數據服務器上,計算節點需要頻繁地訪問這些集中存儲的元數據,這會帶來以下幾個問題:(1)高延遲:計算節點每次需要元數據時都需要從元數據服務器獲取,網絡通信的延遲會顯著影響系統性能。(2)高負載:元數據服務器需要處理來自多個計算節點的請求,容易成為系統的瓶頸。(3)一致性問題:多計算節點的并發訪問和修改元數據可能導致一致性問題,處理這些一致性問題會進一步增加系統的復雜性和開銷。
3、例如:postgresql。postgresql作為一個廣泛使用的開源關系型數據庫管理系統,其架構設計主要是面向存算一體的傳統數據庫模式。它在應對存算分離和高效元數據管理方面存在一些不足。在存算分離架構下,計算節點每次需要訪問或修改元數據時,必須通過網絡與元數據服務器通信。這種頻繁的網絡通信會導致較高的延遲,影響系統性能。postgresql缺乏有效的機制來緩存這些元數據,從而無法顯著減
4、couchbase。它有內置緩存層,提高數據訪問速度,支持高可用性和靈活的數據模型。但在保證數據一致性方面需要額外的機制和成本,系統復雜度高。
5、memcached和redis。這兩個產品是高效的內存緩存系統,能夠顯著減少對元數據服務器的直接請求,支持分布式部署。但無法保證緩存與元數據服務器的一致性,特別是在高并發修改情況下,增加了系統復雜性和運維成本。
技術實現思路
1、有鑒于此,本申請實施例提供一種分布式數據庫的元數據緩存方法、裝置、設備及介質,在保證數據一致性的同時實現高效,提升系統性能。
2、本申請實施例提供以下技術方案:一種分布式數據庫的元數據緩存方法,包括:
3、協調者通過元數據服務器獲取元數據,并處理所述元數據的相關操作;所述相關操作包括元數據表的創建、刪除、修改以及根據所述元數據生成事務執行計劃;
4、協調者將元數據信息及生成的事務執行計劃派發至所有參與者,所有參與者根據所述元數據信息和所述事務執行計劃訪問共享存儲中的數據,執行相應事務,輸出事務執行結果。
5、根據本申請一種實施例,所述方法還包括:
6、協調者識別包括系統緩存、關系緩存、頁緩存中的元數據無效消息,將所述無效消息對應的元數據進行清除;
7、將所述無效消息存入無效消息集中,將所述無效消息集發送至所述元數據服務器,所述元數據服務器將所述無效消息集存入與其它事務隔離的本地會話空間中;
8、待當前事務或子事務提交時,所述元數據服務器將所述本地會話空間中存儲的所述無效消息集的全集消息發布至全局的無效消息隊列中。
9、根據本申請一種實施例,所述方法還包括:
10、若所述當前事務或子事務撤銷,則所述元數據服務器將所述本地會話空間中存儲的所述無效消息集進行銷毀。
11、根據本申請一種實施例,所述方法還包括:
12、參與者在執行相應事務時,將無效消息的全局變量、本地變量以及本地無效消息記錄值進行比較,若所述本地無效消息記錄值小于所述無效消息的全局變量或本地變量,則立即向所述元數據服務器發起無效消息隊列更新請求,并執行無效消息的清除操作,同時更新所述本地無效消息記錄值;其中,所述無效消息的全局變量用于表征下一個要處理的無效消息的全局隊列位置或標識;所述本地變量用于表征下一個要處理的無效消息的本地隊列位置或標識。
13、根據本申請一種實施例,協調者通過元數據服務器獲取元數據,并處理所述元數據的相關操作,還包括:
14、協調者通過元數據服務器獲取元數據,創建元數據表,將多個元數據表本地緩存生成關系緩存,將生成或更新的所述關系緩存進行序列化并保存為本地文件;
15、遍歷語法樹,確定事務需要訪問的元數據庫表,根據確定的元數據庫表,從所述關系緩存的本地文件中讀取相應的元數據信息,并將所述元數據信息派發給所述參與者。
16、根據本申請一種實施例,所述方法還包括:
17、協調者在對元數據表進行修改時,生成無效消息,該無效消息指示了被修改的元數據表和表中被修改的信息;
18、在命令邊界上,協調者應用本地的無效消息,并將所述無效消息收集至一個hash表中;其中,所述hash表被定義為用于跟蹤元數據的修改;
19、在生成事務執行計劃時,掃描事務執行計劃表,確定待訪問的元數據表;
20、根據所述hash表,在每張所述待訪問的元數據表中,確定出最早的元數據修改記錄,并將該元數據修改記錄派發給所述參與者。
21、根據本申請一種實施例,協調者將元數據信息及生成的事務執行計劃派發至所有參與者,還包括:
22、協調者將本地的無效消息及當前已經接收到的最大的本地無效消息記錄值派發給所述參與者;
23、所述參與者本地應用接收到的所述無效消息,將所述無效消息對應的元數據進行清除,并將接收到的所述最大的本地無效消息記錄值進行記錄。
24、本申請還提供一種分布式數據庫的元數據緩存裝置,包括:元數據服務器、協調者和參與者;
25、所述協調者用于通過元數據服務器獲取元數據,并處理所述元數據的相關操作;所述相關操作包括元數據表的創建、刪除、修改以及根據所述元數據生成事務執行計劃;所述協調者還用于將元數據信息及生成的事務執行計劃派發至所有參與者;
26、所述參與者用于根據所述元數據信息和所述事務執行計劃訪問共享存儲中的數據,執行相應事務,輸出事務執行結果。
27、本申請還提供一種計算機設備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,所述處理器執行所述計算機程序時實現上述的分布式數據庫的元數據緩存方法。
28、本申請還提供一種計算機可讀存儲介質,所述計算機可讀存儲介質存儲有執行上述的分布式數據庫的元數據緩存方法的計算機程序。
29、與現有技術相比,本說明書實施例采用的上述至少一個技術方案能夠達到的有益效果至少包括:本專利技術實施例采取協調者生成并派發元數據的方式,將參與者訪問元數據服務器獲取最新的元數據和無效消息的數量及次數降到最低,盡可能地減少了對元數據服務器的訪問,本文檔來自技高網...
【技術保護點】
1.一種分布式數據庫的元數據緩存方法,其特征在于,包括:
2.根據權利要求1所述的分布式數據庫的元數據緩存方法,其特征在于,所述方法還包括:
3.根據權利要求2所述的分布式數據庫的元數據緩存方法,其特征在于,所述方法還包括:
4.根據權利要求2所述的分布式數據庫的元數據緩存方法,其特征在于,所述方法還包括:
5.根據權利要求1所述的分布式數據庫的元數據緩存方法,其特征在于,協調者通過元數據服務器獲取元數據,并處理所述元數據的相關操作,還包括:
6.根據權利要求1所述的分布式數據庫的元數據緩存方法,其特征在于,所述方法還包括:
7.根據權利要求1所述的分布式數據庫的元數據緩存方法,其特征在于,協調者將元數據信息及生成的事務執行計劃派發至所有參與者,還包括:
8.一種分布式數據庫的元數據緩存裝置,其特征在于,包括:元數據服務器、協調者和參與者;
9.一種計算機設備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,其特征在于,所述處理器執行所述計算機程序時實現權利要求1至7
10.一種計算機可讀存儲介質,其特征在于,所述計算機可讀存儲介質存儲有執行權利要求1至7中任一項所述的分布式數據庫的元數據緩存方法的計算機程序。
...【技術特征摘要】
1.一種分布式數據庫的元數據緩存方法,其特征在于,包括:
2.根據權利要求1所述的分布式數據庫的元數據緩存方法,其特征在于,所述方法還包括:
3.根據權利要求2所述的分布式數據庫的元數據緩存方法,其特征在于,所述方法還包括:
4.根據權利要求2所述的分布式數據庫的元數據緩存方法,其特征在于,所述方法還包括:
5.根據權利要求1所述的分布式數據庫的元數據緩存方法,其特征在于,協調者通過元數據服務器獲取元數據,并處理所述元數據的相關操作,還包括:
6.根據權利要求1所述的分布式數據庫的元數據緩存方法,其特征在于,所述方法還包括:
...【專利技術屬性】
技術研發人員:王勇,楊諭黔,姚延棟,
申請(專利權)人:北京四維縱橫數據技術有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。