[發(fā)明專利]一種基于遠程直接內(nèi)存訪問的數(shù)據(jù)庫高可用的方法、系統(tǒng)在審
| 申請?zhí)枺?/td> | 202111057997.0 | 申請日: | 2021-09-09 |
| 公開(公告)號: | CN113779087A | 公開(公告)日: | 2021-12-10 |
| 發(fā)明(設(shè)計)人: | 褚立強 | 申請(專利權(quán))人: | 蘇州浪潮智能科技有限公司 |
| 主分類號: | G06F16/2455 | 分類號: | G06F16/2455 |
| 代理公司: | 濟南舜源專利事務(wù)所有限公司 37205 | 代理人: | 李舜江 |
| 地址: | 215100 江蘇省蘇州*** | 國省代碼: | 江蘇;32 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 遠程 直接 內(nèi)存 訪問 數(shù)據(jù)庫 可用 方法 系統(tǒng) | ||
本發(fā)明提供一種基于遠程直接內(nèi)存訪問的數(shù)據(jù)庫高可用的方法、系統(tǒng),所述方法包括如下步驟:在數(shù)據(jù)庫的發(fā)送模塊、接收模塊設(shè)置基于RDMA協(xié)議的RDMA接口;將產(chǎn)生的預(yù)寫日志數(shù)據(jù)插入到主庫緩存,并對主庫緩存采用緩存淘汰算法進行管理;調(diào)用主庫發(fā)送模塊的RDMA接口,將主庫緩存中新插入的預(yù)寫日志數(shù)據(jù)發(fā)送到備庫;備庫接收預(yù)寫日志數(shù)據(jù)存入本數(shù)據(jù)庫緩存,將預(yù)寫日志數(shù)據(jù)進行數(shù)據(jù)持久化,同時調(diào)用本數(shù)據(jù)庫發(fā)送模塊的RDMA接口,將本數(shù)據(jù)庫緩存中的預(yù)寫日志數(shù)據(jù)通過RoCE網(wǎng)卡發(fā)送到連接的備庫進行級聯(lián)復(fù)制;當主庫發(fā)生故障時,選擇一個備庫設(shè)置為新的主庫,將發(fā)生故障的主庫的業(yè)務(wù)系統(tǒng)切換到新的主庫;提升數(shù)據(jù)庫高可用的可靠性。
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)庫訪問技術(shù)領(lǐng)域,具體涉及一種基于遠程直接內(nèi)存訪問的數(shù)據(jù)庫高可用的方法、系統(tǒng)。
背景技術(shù)
為了保證業(yè)務(wù)系統(tǒng)或元數(shù)據(jù)庫的軟件的連續(xù)穩(wěn)定運行和健壯性,在基于流復(fù)制的高可用框架中往往需要將元數(shù)據(jù)庫系統(tǒng)設(shè)計為高可用方案。
例如,PostgreSQL是一個功能強大的開源對象關(guān)系型數(shù)據(jù)庫系統(tǒng),它使用和擴展了SQL語言,并結(jié)合了許多安全存儲和擴展最復(fù)雜數(shù)據(jù)工作負載的功能。它是目前功能最強大、特性最豐富和結(jié)構(gòu)最復(fù)雜的開源數(shù)據(jù)庫,其中有些特性甚至連商業(yè)數(shù)據(jù)庫都不具備。基于此,PostgreSQL可以被用來安全地存儲數(shù)據(jù),在處理請求時檢索數(shù)據(jù),并且它還是跨平臺的,可以在日常的大部分操作系統(tǒng)運行,支撐企業(yè)中大型業(yè)務(wù)系統(tǒng)。同時由于其開源特性和對眾多高級開發(fā)語言提供原生的編程接口,在很多開源及商業(yè)軟件中,都將其作為元數(shù)據(jù)庫的一個重要選型。
PostgrepSQL在數(shù)據(jù)目錄的子目錄pg_xlog中維護了一個WAL日志文件,可以把WAL日志備份到另外一臺備份服務(wù)器,通過重做WAL日志的方式在備服務(wù)器上恢復(fù)數(shù)據(jù)。而目前WAL日志傳送到備份服務(wù)器主要通過其自身提供的流復(fù)制方式。對于大型的業(yè)務(wù)系統(tǒng)而言,產(chǎn)生和需要處理的數(shù)據(jù)量可能會很龐大,相應(yīng)的,產(chǎn)生的WAL日志也會迅速增長,這給數(shù)據(jù)庫高可用帶來了很大挑戰(zhàn)。為實現(xiàn)PostgreSQL高可用,主庫也需要經(jīng)過緩存,將事務(wù)的變更記錄到WAL日志文件中,這些文件會占據(jù)主庫的大量存儲空間;而在與備庫進行數(shù)據(jù)復(fù)制的時候,需要將WAL日志文件再度從磁盤讀入緩存進行傳輸,這樣在流程上通過了兩次緩存,額外增加了內(nèi)存開銷。
傳統(tǒng)的TCP/IP通信方式,主庫節(jié)點主機需要將WAL日志文件通過用戶空間、內(nèi)核空間,藉由網(wǎng)卡發(fā)送到備庫節(jié)點主機,然后由備庫節(jié)點主機以相反的方式將其存入用戶空間,并最終持久化到磁盤。這個過程數(shù)據(jù)在不同空間中要經(jīng)過多次復(fù)制。通過系統(tǒng)內(nèi)核發(fā)送消息,存在很高的數(shù)據(jù)移動和數(shù)據(jù)復(fù)制的開銷,會導(dǎo)致很低的性能和靈活性,降低流復(fù)制進程效率,占用大量的內(nèi)存帶寬和CPU開銷,導(dǎo)致數(shù)據(jù)庫響應(yīng)變慢,甚至使得業(yè)務(wù)系統(tǒng)受到影響。
發(fā)明內(nèi)容
針對數(shù)據(jù)在不同空間中要經(jīng)過多次復(fù)制,通過系統(tǒng)內(nèi)核發(fā)送消息,存在很高的數(shù)據(jù)移動和數(shù)據(jù)復(fù)制的開銷,會導(dǎo)致很低的性能和靈活性,降低流復(fù)制進程效率,占用大量的內(nèi)存帶寬和CPU開銷,導(dǎo)致數(shù)據(jù)庫響應(yīng)變慢,甚至使得業(yè)務(wù)系統(tǒng)受到影響的問題,本發(fā)明提供一種基于遠程直接內(nèi)存訪問的數(shù)據(jù)庫高可用的方法、系統(tǒng),以解決上述技術(shù)問題。
本發(fā)明的技術(shù)方案是:
一方面,本發(fā)明技術(shù)方案提供一種基于遠程直接內(nèi)存訪問的數(shù)據(jù)庫高可用的方法,數(shù)據(jù)庫包括一個主庫和若干個備庫,所述方法包括如下步驟:
在數(shù)據(jù)庫的發(fā)送模塊、接收模塊設(shè)置基于RDMA協(xié)議的RDMA接口;
接收到用戶提交的操作時,將產(chǎn)生的預(yù)寫日志數(shù)據(jù)插入到主庫緩存,并對主庫緩存采用緩存淘汰算法進行管理;
接收到用戶提交的操作之后,調(diào)用主庫發(fā)送模塊的RDMA接口,將主庫緩存中新插入的預(yù)寫日志數(shù)據(jù)通過RoCE網(wǎng)卡發(fā)送到與主庫通信的備庫;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于蘇州浪潮智能科技有限公司,未經(jīng)蘇州浪潮智能科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202111057997.0/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





