[發(fā)明專利]結(jié)合主從備份和糾刪碼的內(nèi)存計(jì)算系統(tǒng)高可用優(yōu)化方法有效
| 申請(qǐng)?zhí)枺?/td> | 201510217307.1 | 申請(qǐng)日: | 2015-04-30 |
| 公開(kāi)(公告)號(hào): | CN104866430B | 公開(kāi)(公告)日: | 2017-12-15 |
| 發(fā)明(設(shè)計(jì))人: | 陳海波;張恒;董明凱;臧斌宇;管海兵 | 申請(qǐng)(專利權(quán))人: | 上海交通大學(xué) |
| 主分類號(hào): | G06F12/02 | 分類號(hào): | G06F12/02;G06F11/14 |
| 代理公司: | 上海漢聲知識(shí)產(chǎn)權(quán)代理有限公司31236 | 代理人: | 郭國(guó)中 |
| 地址: | 200240 *** | 國(guó)省代碼: | 上海;31 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 結(jié)合 主從 備份 糾刪碼 內(nèi)存 計(jì)算 系統(tǒng) 可用 優(yōu)化 方法 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及高可用系統(tǒng)技術(shù)領(lǐng)域,具體地,涉及結(jié)合主從備份和糾刪碼的內(nèi)存計(jì)算系統(tǒng)高可用優(yōu)化方法。
背景技術(shù)
內(nèi)存鍵值系統(tǒng)等內(nèi)存計(jì)算系統(tǒng)由于其易失性,通常需要使用主從數(shù)據(jù)備份的方式防止宕機(jī)引起的數(shù)據(jù)丟失和服務(wù)不可用,如Redis。利用主從數(shù)據(jù)備份實(shí)現(xiàn)高可用內(nèi)存鍵值系統(tǒng)的方法主要將服務(wù)器集群分為多個(gè)組,其中每組包含一個(gè)主節(jié)點(diǎn)和一到多個(gè)從節(jié)點(diǎn)。其中主節(jié)點(diǎn)提供鍵值更新請(qǐng)求與鍵值查詢請(qǐng)求,從節(jié)點(diǎn)為主節(jié)點(diǎn)保存相同的內(nèi)存信息,并只接收主節(jié)點(diǎn)發(fā)送的更新請(qǐng)求。當(dāng)主服務(wù)器出現(xiàn)錯(cuò)誤時(shí),從節(jié)點(diǎn)可以成為新的主節(jié)點(diǎn)并為客戶端提供服務(wù)。由于從節(jié)點(diǎn)要維持和主節(jié)點(diǎn)相同的內(nèi)存信息,所以從節(jié)點(diǎn)使用內(nèi)存和主節(jié)點(diǎn)一致,從而引入大量的內(nèi)存冗余,降低了內(nèi)存的利用效率。
與主從備份不同,糾刪碼是一種能夠?qū)?shù)據(jù)進(jìn)行編碼,在數(shù)據(jù)丟失的情況下,利用編碼恢復(fù)數(shù)據(jù)的可靠性保證技術(shù)。利用糾刪碼保護(hù)系統(tǒng)數(shù)據(jù),可將服務(wù)器集群分為M個(gè)數(shù)據(jù)節(jié)點(diǎn)和N個(gè)碼節(jié)點(diǎn)。這M+N個(gè)節(jié)點(diǎn)擁有相同的內(nèi)存空間,其中N個(gè)碼節(jié)點(diǎn)上的內(nèi)存數(shù)據(jù)由M個(gè)數(shù)據(jù)節(jié)點(diǎn)上同地址內(nèi)存數(shù)據(jù)的不同編碼公式所得。當(dāng)其中不超過(guò)N個(gè)節(jié)點(diǎn)宕機(jī)時(shí),可通過(guò)M+N個(gè)節(jié)點(diǎn)中任意M個(gè)節(jié)點(diǎn)進(jìn)行恢復(fù)。
發(fā)明內(nèi)容
針對(duì)現(xiàn)有技術(shù)中的缺陷,本發(fā)明的目的是提供一種結(jié)合主從備份和糾刪碼的內(nèi)存計(jì)算系統(tǒng)高可用優(yōu)化方法。
根據(jù)本發(fā)明提供的一種結(jié)合主從備份和糾刪碼的內(nèi)存計(jì)算系統(tǒng)高可用優(yōu)化方法,包括如下步驟:
步驟1:將分布式系統(tǒng)分為多個(gè)組,每個(gè)組包括M個(gè)主節(jié)點(diǎn)和N個(gè)從節(jié)點(diǎn),且M和N均大于零;M個(gè)主節(jié)點(diǎn)的B區(qū)和N個(gè)從節(jié)點(diǎn)的D區(qū)具有相同的內(nèi)存空間,其中,N個(gè)從節(jié)點(diǎn)上的D區(qū)內(nèi)存數(shù)據(jù)能夠由M個(gè)主節(jié)點(diǎn)B區(qū)上同內(nèi)存地址的內(nèi)存數(shù)據(jù)根據(jù)不同編碼公式得到;任意從節(jié)點(diǎn)C區(qū)均包含M個(gè)主節(jié)點(diǎn)A區(qū)的有效數(shù)據(jù);
-每個(gè)所述主節(jié)點(diǎn)上的內(nèi)存包括:A區(qū)和B區(qū),所述A區(qū)用于保存元數(shù)據(jù),所述B區(qū)用于保存值數(shù)據(jù),其中,元數(shù)據(jù)包括鍵到值數(shù)據(jù)地址的索引和內(nèi)存分配信息,值數(shù)據(jù)包括所在主節(jié)點(diǎn)上所有鍵對(duì)應(yīng)的值數(shù)據(jù);
-每個(gè)所述從節(jié)點(diǎn)上的內(nèi)存包括:C區(qū)和D區(qū);所述C區(qū)用于保存?zhèn)浞菰獢?shù)據(jù),所述D區(qū)用于保存值數(shù)據(jù)編碼;
步驟2:引入糾刪碼的更新操作保護(hù)值數(shù)據(jù);
步驟3:當(dāng)一主節(jié)點(diǎn)發(fā)生宕機(jī)后,任一從節(jié)點(diǎn)構(gòu)成恢復(fù)節(jié)點(diǎn)代替該主節(jié)點(diǎn)處理用戶請(qǐng)求,并利用在線恢復(fù)協(xié)議恢復(fù)丟失數(shù)據(jù)。
優(yōu)選地,所述步驟2包括:
步驟2.1:根據(jù)用戶的寫(xiě)請(qǐng)求,主節(jié)點(diǎn)為所述寫(xiě)請(qǐng)求中的待寫(xiě)入的值數(shù)據(jù)分配內(nèi)存地址;
步驟2.2:主節(jié)點(diǎn)計(jì)算得到所述待寫(xiě)入的值數(shù)據(jù)與所分配內(nèi)存地址上原內(nèi)存數(shù)據(jù)的差值,將所述寫(xiě)請(qǐng)求中的待寫(xiě)入的值數(shù)據(jù)替換為所得差值并轉(zhuǎn)發(fā)給從節(jié)點(diǎn);
步驟2.3:當(dāng)寫(xiě)請(qǐng)求對(duì)應(yīng)的寫(xiě)操作為同步寫(xiě)操作時(shí),從節(jié)點(diǎn)使用緩存區(qū)將所述寫(xiě)請(qǐng)求緩存,并回復(fù)主節(jié)點(diǎn),相應(yīng)的更新操作需等到主節(jié)點(diǎn)收到所有從節(jié)點(diǎn)回復(fù)后繼續(xù)進(jìn)行;
步驟2.4:主節(jié)點(diǎn)執(zhí)行索引修改與值數(shù)據(jù)修改;
步驟2.5:當(dāng)寫(xiě)請(qǐng)求對(duì)應(yīng)的寫(xiě)操作為同步寫(xiě)操作時(shí),主節(jié)點(diǎn)發(fā)送確認(rèn)信息至從節(jié)點(diǎn),同時(shí)從節(jié)點(diǎn)需等到主節(jié)點(diǎn)確認(rèn)信息后繼續(xù)執(zhí)行;
步驟2.6:從節(jié)點(diǎn)執(zhí)行糾刪碼和元數(shù)據(jù)更新操作;
異步更新操作僅含上述步驟2.1、2.2、2.4、2.6。
優(yōu)選地,所述步驟3包括:
步驟3.1:恢復(fù)節(jié)點(diǎn)接收用戶請(qǐng)求后,根據(jù)備份元數(shù)據(jù)得到待恢復(fù)內(nèi)存地址,開(kāi)始恢復(fù)內(nèi)存數(shù)據(jù),或在服務(wù)空閑時(shí)主動(dòng)開(kāi)始恢復(fù)內(nèi)存數(shù)據(jù);
步驟3.2:恢復(fù)節(jié)點(diǎn)根據(jù)主節(jié)點(diǎn)崩潰數(shù)量設(shè)定恢復(fù)所涉及到的主節(jié)點(diǎn)、從節(jié)點(diǎn),并發(fā)送恢復(fù)請(qǐng)求至所有所述涉及到的主節(jié)點(diǎn);
步驟3.3:接收到恢復(fù)請(qǐng)求的主節(jié)點(diǎn)向所有所述涉及到的從節(jié)點(diǎn)發(fā)送恢復(fù)所需數(shù)據(jù),所述涉及到的從節(jié)點(diǎn)收到恢復(fù)所需數(shù)據(jù)后:
-若該待恢復(fù)內(nèi)存地址不存在相應(yīng)的糾刪碼拷貝,則為該恢復(fù)請(qǐng)求生成糾刪碼拷貝,將收到的恢復(fù)所需數(shù)據(jù)按恢復(fù)公式操作在該糾刪碼拷貝上;
-若該待恢復(fù)內(nèi)存地址存在相應(yīng)的糾刪碼拷貝,則直接更新該糾刪碼拷貝;
-若在對(duì)恢復(fù)所需數(shù)據(jù)的接收已開(kāi)始但尚沒(méi)有接收完畢的過(guò)程中收到主節(jié)點(diǎn)的更新請(qǐng)求,且該糾刪碼拷貝正等待該主節(jié)點(diǎn)的恢復(fù)所需數(shù)據(jù),則待恢復(fù)內(nèi)存地址相應(yīng)的原糾刪碼和糾刪碼拷貝都需要執(zhí)行更新操作;
步驟3.4:從節(jié)點(diǎn)接收到所有主節(jié)點(diǎn)的恢復(fù)所需數(shù)據(jù),且進(jìn)行過(guò)恢復(fù)操作后,將恢復(fù)結(jié)果返回給恢復(fù)節(jié)點(diǎn);
步驟3.5:恢復(fù)節(jié)點(diǎn)對(duì)收到的恢復(fù)結(jié)果做出計(jì)算,并恢復(fù)出原始值數(shù)據(jù),繼續(xù)處理用戶請(qǐng)求。
與現(xiàn)有技術(shù)相比,本發(fā)明具有如下的有益效果:
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于上海交通大學(xué),未經(jīng)上海交通大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201510217307.1/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
- 一種時(shí)鐘同步方法及系統(tǒng)
- 一種防御能量攻擊的JK觸發(fā)器
- 智能變電站維護(hù)業(yè)務(wù)類信息背景流的主從時(shí)鐘同步方法
- 一種管理主從網(wǎng)絡(luò)設(shè)備的設(shè)備配置系統(tǒng)及方法
- 標(biāo)準(zhǔn)時(shí)隙的雙無(wú)線藍(lán)牙設(shè)備主從切換方法、設(shè)備和系統(tǒng)
- 雙無(wú)線藍(lán)牙設(shè)備主從切換方法、裝置、設(shè)備和音頻系統(tǒng)
- 一種調(diào)整物理層PHY主從模式的方法及裝置
- 一種主從一體式輪組的AGV底盤
- 一種同軸雙電機(jī)模型預(yù)測(cè)直接轉(zhuǎn)矩控制方法
- 一種具有一個(gè)主從模式和多個(gè)從模USB的設(shè)備
- 一種數(shù)據(jù)庫(kù)備份的方法及裝置
- 一種虛擬化網(wǎng)絡(luò)備份、恢復(fù)的方法和相應(yīng)裝置
- 一種數(shù)據(jù)備份方法和裝置
- 包配置文件的備份方法及終端
- 分布式實(shí)時(shí)文件系統(tǒng)的備份方法及備份系統(tǒng)
- 一種數(shù)據(jù)備份和恢復(fù)方法、備份服務(wù)器和源服務(wù)器
- 一種備份方法和裝置
- 一種數(shù)據(jù)備份方法、裝置、電子設(shè)備和存儲(chǔ)介質(zhì)
- 一種物聯(lián)網(wǎng)數(shù)據(jù)備份方法及裝置
- 一種數(shù)字法庭數(shù)據(jù)備份系統(tǒng)
- 發(fā)送裝置及發(fā)送方法
- 一種存儲(chǔ)系統(tǒng)糾刪碼編碼、解碼電路及編解碼電路
- 基于NVRAM存儲(chǔ)系統(tǒng)直接糾刪碼的優(yōu)化方法和系統(tǒng)
- 一種數(shù)據(jù)存儲(chǔ)、重構(gòu)方法和裝置、及電子設(shè)備
- 一種通過(guò)糾刪碼對(duì)數(shù)據(jù)的處理方法及裝置
- 一種基于糾刪碼的糾刪池的創(chuàng)建方法及相關(guān)裝置
- 一種糾刪碼讀請(qǐng)求處理方法、系統(tǒng)、設(shè)備及計(jì)算機(jī)介質(zhì)
- 數(shù)據(jù)操作方法、裝置和分布式存儲(chǔ)系統(tǒng)
- 一種基于糾刪碼的新媒體圖像的篡改恢復(fù)方法及裝置
- 一種數(shù)據(jù)處理方法、裝置、設(shè)備及介質(zhì)





