一種集群序列類一致性信息持久化的優(yōu)化方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明主要涉及分布式計(jì)算領(lǐng)域,具體是一種集群序列類一致性信息持久化的優(yōu)化方法。
【背景技術(shù)】
[0002]在集群一致性服務(wù)的實(shí)現(xiàn)中,為應(yīng)對(duì)集群整體失效,如集群斷電、所有節(jié)點(diǎn)崩潰等極端情況,必須將所存儲(chǔ)的一致性信息持久化。
[0003]有一類集群一致性信息,可稱為集群序列類一致性信息,指的是那些遵從一定的計(jì)算方法進(jìn)行演變、對(duì)于后續(xù)值可以預(yù)測(cè)并且具有唯一性的一類集群一致性信息。例如系統(tǒng)修訂號(hào)SCN(即system change number),它變化一次,就自增I。
[0004]集群序列類一致性信息,一般有以下特點(diǎn):1、由集群一致性服務(wù)進(jìn)行分配,必須全局唯一;2、變化頻率可能很高;3、持久化的1量很小。因此,在對(duì)集群序列類一致性信息進(jìn)行持久化時(shí),盡管序列本身產(chǎn)生的1總量很小,但由于變化頻率高,1次數(shù)很高,根據(jù)磁盤的特點(diǎn),持久化的代價(jià)仍然很大。
【發(fā)明內(nèi)容】
[0005]為了解決現(xiàn)有技術(shù)中的不足,本發(fā)明提供一種集群序列類一致性信息持久化的優(yōu)化方法,對(duì)集群序列類一致性信息進(jìn)行間隔持久化,減少了持久化頻數(shù),使得既能應(yīng)對(duì)集群整體失效,又能提高持久化的效率,降低持久化代價(jià)。
[0006]本發(fā)明為實(shí)現(xiàn)上述目的,通過(guò)以下技術(shù)方案實(shí)現(xiàn):
[0007]—種集群序列類一致性信息持久化的優(yōu)化方法,在對(duì)集群序列類一致性信息進(jìn)行持久化時(shí),按照一定的持久化間隔,選取集群序列類一致性信息中的部分信息值進(jìn)行持久化,即集群序列類一致性信息的當(dāng)前持久化信息值設(shè)為N,持久化間隔設(shè)為extent,則只對(duì)信息值為N+n*eXtent的值進(jìn)行持久化,η為非負(fù)整數(shù);集群序列類一致性信息的持久化的實(shí)現(xiàn)包括以下步驟:
[0008]步驟1、啟動(dòng)集群一致性服務(wù);
[0009]步驟2、判斷集群序列類一致性信息的持久化文件是否存在,如果持久化文件存在,則執(zhí)行步驟3,如果持久化文件不存在,則執(zhí)行步驟4;
[0010]步驟3、讀取集群序列類一致性信息的持久化文件中的集群序列類一致性信息以及集群序列類一致性信息的信息值進(jìn)入內(nèi)存,讀取完成后跳轉(zhuǎn)至步驟5;
[0011]步驟4、將集群序列類一致性信息的信息值設(shè)為初始值,也作為當(dāng)前的持久化信息值,順序執(zhí)行步驟5;
[0012]步驟5、根據(jù)客戶端請(qǐng)求將集群序列類一致性信息以及集群序列類一致性信息的信息值在各節(jié)點(diǎn)間進(jìn)行同步更新,更新完成后順序執(zhí)行步驟6;
[0013]步驟6、判斷更新后的信息值是否符合集群序列類一致性信息的持久化的條件,SP更新后的信息值設(shè)為Μ,用M減去N后除以extent,余數(shù)為零,則更新后的信息值M符合集群序列類一致性信息的持久化條件,否則更新后的信息值M不符合集群序列類一致性信息的持久化條件;如果更新后的信息值符合集群序列類一致性信息的持久化的條件,則執(zhí)行步驟7,如果更新后的信息值不符合集群序列類一致性信息的持久化的條件,則跳轉(zhuǎn)執(zhí)行步驟5;
[0014]步驟7、對(duì)集群序列類一致性信息的信息值進(jìn)行持久化,即當(dāng)集群序列類一致性信息的信息值更新為M時(shí),且M滿足持久化的條件,持久化間隔為extent,則對(duì)M+extent的信息值進(jìn)行持久化,持久化完成后,跳轉(zhuǎn)到步驟5;
[0015]步驟8、集群一致性服務(wù)正常停止時(shí),將當(dāng)前的集群序列類一致性信息值進(jìn)行持久化。
[0016]在對(duì)集群序列類一致性信息進(jìn)行持久化時(shí),只對(duì)集群序列類一致性信息中的信息值為持久化間隔的整數(shù)倍的值進(jìn)行持久化。
[0017]對(duì)比現(xiàn)有技術(shù),本發(fā)明有益效果在于:本發(fā)明對(duì)集群序列類一致性信息進(jìn)行持久化時(shí),按照一定的持久化間隔,選取集群序列類一致性信息中的部分信息值進(jìn)行持久化,減少了持久化頻數(shù),使得既能應(yīng)對(duì)集群整體失效,又能提高持久化的效率,降低持久化代價(jià)。
【附圖說(shuō)明】
[0018]附圖1是本發(fā)明的主要流程圖。
【具體實(shí)施方式】
[0019]結(jié)合附圖和具體實(shí)施例,對(duì)本發(fā)明作進(jìn)一步說(shuō)明。應(yīng)理解,這些實(shí)施例僅用于說(shuō)明本發(fā)明而不用于限制本發(fā)明的范圍。此外應(yīng)理解,在閱讀了本發(fā)明講授的內(nèi)容之后,本領(lǐng)域技術(shù)人員可以對(duì)本發(fā)明作各種改動(dòng)或修改,這些等價(jià)形式同樣落于本申請(qǐng)所附權(quán)利要求書所限定的范圍。
[0020]一種集群序列類一致性信息持久化的優(yōu)化方法,在對(duì)集群序列類一致性信息進(jìn)行持久化時(shí),按照一定的持久化間隔,選取集群序列類一致性信息中的部分信息值進(jìn)行持久化,即集群序列類一致性信息的當(dāng)前持久化信息值設(shè)為N,持久化間隔設(shè)為extent,則只對(duì)信息值為N+n*extent的值進(jìn)行持久化,η為非負(fù)整數(shù);對(duì)于集群序列類一致性信息,不是每次變化都進(jìn)行持久化,而是經(jīng)過(guò)某個(gè)持久化間隔后,再進(jìn)行持久化,這樣可以減少持久化頻數(shù),且既能應(yīng)對(duì)集群整體失效,又能提高集群序列類一致性信息的持久化效率,降低持久化代價(jià)。如圖1所示,集群序列類一致性信息的持久化的實(shí)現(xiàn)包括以下步驟:
[0021]步驟1、啟動(dòng)集群一致性服務(wù)。
[0022]步驟2、判斷集群序列類一致性信息的持久化文件是否存在,如果持久化文件存在,則執(zhí)行步驟3,如果持久化文件不存在,則執(zhí)行步驟4。
[0023]步驟3、讀取集群序列類一致性信息的持久化文件中的集群序列類一致性信息以及集群序列類一致性信息的信息值進(jìn)入內(nèi)存,讀取完后跳轉(zhuǎn)至步驟5;以SCN號(hào)為例,如當(dāng)集群整體崩潰再恢復(fù)時(shí),從磁盤讀取已經(jīng)持久化的SCN號(hào),從最新的持久化的SCN號(hào)開始更新,因?yàn)榧褐耙呀?jīng)更新的SCN號(hào)必然都是小于最新的持久化的SCN號(hào)的,所以新更新的SCN號(hào)仍然保持了全集群中唯一的特性。
[0024]步驟4、將集群序列類一致性信息的信息值設(shè)為初始值,也作為當(dāng)前的持久化信息值,順序執(zhí)行步驟5。
[0025]步驟5、根據(jù)客戶端請(qǐng)求將集群序列類一致性信息以及集群序列類一致性信息的信息值在各節(jié)點(diǎn)間進(jìn)行同步更新,更新完成后順序執(zhí)行步驟6;對(duì)于集群序列類一致性信息,以更新的集群序列類一致性信息值及其信息值(內(nèi)存中)為準(zhǔn),例如,節(jié)點(diǎn)A的信息值比節(jié)點(diǎn)B的信息值新,那么就用節(jié)點(diǎn)A的信息值覆蓋節(jié)點(diǎn)B的信息值。
[0026]步驟6、判斷更新后的信息值是否符合集群序列類一致性信息的持久化的條件,SP更新后的信息值設(shè)為M,用M減去N后除以extent,余數(shù)為零,則更新后的信息值M符合集群序列類一致性信息的持久化條件,否則更新后的信息值M不符合集群序列類一致性信息的持久化條件;如果更新后的信息值符合集群序列類一致性信息的持久化的條件,則執(zhí)行步驟7,如果更新后的信息值不符合集群序列類一致性信息的持久化的條件,則跳轉(zhuǎn)執(zhí)行步驟5。
[0027]步驟7、對(duì)集群序列類一致性信息的信息值進(jìn)行持久化,即當(dāng)集群序列類一致性信息的信息值更新為M時(shí),且M滿足持久化的條件,持久化間隔為extent,則對(duì)M+extent的信息值進(jìn)行持久化,持久化完成后,跳轉(zhuǎn)到步驟5;例如,對(duì)于SCN來(lái)說(shuō),持久化間隔大小為extent,當(dāng)前持久化信息值為N,當(dāng)SCN號(hào)更新為M時(shí),則將M+extent持久化,當(dāng)SCN號(hào)更新為M+extent時(shí),再持久化M+2*extent,依此類推;此時(shí)[M+l,M+extent_l ]這個(gè)區(qū)間的SCN號(hào)都不再進(jìn)行持久化。
[0028]步驟8、集群一致性服務(wù)正常停止時(shí),將當(dāng)前的集群序列類一致性信息值進(jìn)行持久化。
[0029]在對(duì)集群序列類一致性信息進(jìn)行持久化時(shí),只對(duì)集群序列類一致性信息中的信息值為持久化間隔的整數(shù)倍的值進(jìn)行持久化,例如,對(duì)于SCN來(lái)說(shuō),持久化間隔大小為extent,當(dāng)前持久化信息值為N,則N是extent的整數(shù)倍。
[0030]顯然,本發(fā)明的上述實(shí)施例僅僅是為清楚地說(shuō)明本發(fā)明所作的舉例,而并非是對(duì)本發(fā)明的實(shí)施方式的限定。對(duì)于所屬領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在上述說(shuō)明的基礎(chǔ)上還可以做出其它不同形式的變化或變動(dòng)。這里無(wú)需也無(wú)法對(duì)所有的實(shí)施方式予以窮舉。而這些屬于本發(fā)明的實(shí)質(zhì)精神所引伸出的顯而易見的變化或變動(dòng)仍屬于本發(fā)明的保護(hù)范圍。
【主權(quán)項(xiàng)】
1.一種集群序列類一致性信息持久化的優(yōu)化方法,其特征在于,在對(duì)集群序列類一致性信息進(jìn)行持久化時(shí),按照一定的持久化間隔,選取集群序列類一致性信息中的部分信息值進(jìn)行持久化,即集群序列類一致性信息的當(dāng)前持久化信息值設(shè)為N,持久化間隔設(shè)為extent,則只對(duì)信息值為N+n*extent的值進(jìn)行持久化,η為非負(fù)整數(shù);集群序列類一致性信息的持久化的實(shí)現(xiàn)包括以下步驟: 步驟1、啟動(dòng)集群一致性服務(wù); 步驟2、判斷集群序列類一致性信息的持久化文件是否存在,如果持久化文件存在,則執(zhí)行步驟3,如果持久化文件不存在,則執(zhí)行步驟4; 步驟3、讀取集群序列類一致性信息的持久化文件中的集群序列類一致性信息以及集群序列類一致性信息的信息值進(jìn)入內(nèi)存,讀取完成后跳轉(zhuǎn)至步驟5; 步驟4、將集群序列類一致性信息的信息值設(shè)為初始值,也作為當(dāng)前的持久化信息值,順序執(zhí)行步驟5; 步驟5、根據(jù)客戶端請(qǐng)求將集群序列類一致性信息以及集群序列類一致性信息的信息值在各節(jié)點(diǎn)間進(jìn)行同步更新,更新完成后順序執(zhí)行步驟6; 步驟6、判斷更新后的信息值是否符合集群序列類一致性信息的持久化的條件,即更新后的信息值設(shè)為Μ,用M減去N后除以extent,余數(shù)為零,則更新后的信息值M符合集群序列類一致性信息的持久化條件,否則更新后的信息值M不符合集群序列類一致性信息的持久化條件;如果更新后的信息值符合集群序列類一致性信息的持久化的條件,則執(zhí)行步驟7,如果更新后的信息值不符合集群序列類一致性信息的持久化的條件,則跳轉(zhuǎn)執(zhí)行步驟5; 步驟7、對(duì)集群序列類一致性信息的信息值進(jìn)行持久化,即當(dāng)集群序列類一致性信息的信息值更新為M時(shí),且M滿足持久化的條件,持久化間隔為extent,則對(duì)M+extent的信息值進(jìn)行持久化,持久化完成后,跳轉(zhuǎn)到步驟5; 步驟8、集群一致性服務(wù)正常停止時(shí),將當(dāng)前的集群序列類一致性信息值進(jìn)行持久化。2.根據(jù)權(quán)利要求1所述的一種集群序列類一致性信息持久化的優(yōu)化方法,其特征在于,在對(duì)集群序列類一致性信息進(jìn)行持久化時(shí),只對(duì)集群序列類一致性信息中的信息值為持久化間隔的整數(shù)倍的值進(jìn)行持久化。
【專利摘要】本發(fā)明公開了一種集群序列類一致性信息持久化的優(yōu)化方法,在對(duì)集群序列類一致性信息進(jìn)行持久化時(shí),按照一定的持久化間隔,選取集群序列類一致性信息中的部分信息值進(jìn)行持久化,即集群序列類一致性信息的當(dāng)前持久化信息值設(shè)為N,持久化間隔設(shè)為extent,則只對(duì)信息值為N+n*extent的值進(jìn)行持久化,n為非負(fù)整數(shù)。本發(fā)明的有益效果在于:對(duì)集群序列類一致性信息進(jìn)行間隔持久化,減少了持久化頻數(shù),使得既能應(yīng)對(duì)集群整體失效,又能提高持久化的效率,降低持久化代價(jià)。
【IPC分類】G06F3/06
【公開號(hào)】CN105549909
【申請(qǐng)?zhí)枴緾N201510926027
【發(fā)明人】武新, 崔維力, 何新敏
【申請(qǐng)人】天津南大通用數(shù)據(jù)技術(shù)股份有限公司
【公開日】2016年5月4日
【申請(qǐng)日】2015年12月12日