數(shù)據(jù)保護(hù)方法和裝置制造方法
【專利摘要】本實(shí)發(fā)明實(shí)施例提供一種數(shù)據(jù)保護(hù)方法和裝置,通過(guò)檢測(cè)設(shè)備確定分布式存儲(chǔ)系統(tǒng)中的至少兩個(gè)服務(wù)器節(jié)點(diǎn)中發(fā)生時(shí)間跳變的第一服務(wù)器節(jié)點(diǎn);向第一服務(wù)器節(jié)點(diǎn)發(fā)送故障指示信息,第一服務(wù)器節(jié)點(diǎn)根據(jù)故障指示信息退出分布式存儲(chǔ)系統(tǒng),以確??蛻舳瞬粫?huì)將數(shù)據(jù)寫入發(fā)生時(shí)間跳變的服務(wù)器節(jié)點(diǎn)中,從而,減少出現(xiàn)數(shù)據(jù)丟失或出現(xiàn)未來(lái)數(shù)據(jù)問(wèn)題。
【專利說(shuō)明】數(shù)據(jù)保護(hù)方法和裝置
【技術(shù)領(lǐng)域】
[0001 ] 本發(fā)明實(shí)施例涉及通信技術(shù),尤其涉及一種數(shù)據(jù)保護(hù)方法和裝置。
【背景技術(shù)】
[0002]分布式存儲(chǔ)系統(tǒng)是由若干服務(wù)器節(jié)點(diǎn)和客戶端互相連接構(gòu)成的,服務(wù)器節(jié)點(diǎn)負(fù)責(zé)數(shù)據(jù)的存儲(chǔ),客戶端可以對(duì)服務(wù)器做數(shù)據(jù)的寫入、讀取、更新、刪除等操作。以時(shí)間為版本的分布式存儲(chǔ)系統(tǒng)中,以存儲(chǔ)數(shù)據(jù)的時(shí)間戳為數(shù)據(jù)的版本號(hào),從而保證后存儲(chǔ)的數(shù)據(jù)的版本號(hào)一定大于先存儲(chǔ)的數(shù)據(jù)版本號(hào),在讀取同一個(gè)關(guān)鍵(key)值的數(shù)據(jù)時(shí),可以根據(jù)時(shí)間戳確定版本號(hào)獲取到最新的數(shù)據(jù)。
[0003]然而,在以時(shí)間為版本的分布式存儲(chǔ)系統(tǒng)中,如果存儲(chǔ)數(shù)據(jù)的時(shí)間戳由服務(wù)器節(jié)點(diǎn)的主機(jī)時(shí)間確定的,系統(tǒng)中的服務(wù)器節(jié)點(diǎn)可能會(huì)因?yàn)槟撤N原因出現(xiàn)時(shí)鐘跳變,導(dǎo)致數(shù)據(jù)丟失或出現(xiàn)未來(lái)數(shù)據(jù)問(wèn)題,例如,在通過(guò)使用系統(tǒng)的網(wǎng)絡(luò)時(shí)間協(xié)議(Network TimeProtocol,以下簡(jiǎn)稱:NTP)保證各服務(wù)器時(shí)間的準(zhǔn)確性時(shí),當(dāng)NTP異常情況不在位導(dǎo)致時(shí)鐘跳變超過(guò)允許的范圍,標(biāo)準(zhǔn)時(shí)間為11點(diǎn),而時(shí)鐘跳變至10點(diǎn),則原10點(diǎn)到11點(diǎn)鐘存儲(chǔ)的數(shù)據(jù)會(huì)被新的數(shù)據(jù)覆蓋,或者,標(biāo)準(zhǔn)時(shí)間為11點(diǎn),而時(shí)鐘跳變至12點(diǎn),則會(huì)出現(xiàn)未來(lái)時(shí)間數(shù)據(jù)。若繼續(xù)向發(fā)生時(shí)鐘跳變服務(wù)器節(jié)點(diǎn)寫入數(shù)據(jù),則會(huì)造成更多的數(shù)據(jù)丟失或者出現(xiàn)更多的未來(lái)數(shù)據(jù)。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實(shí)施例 提供一種數(shù)據(jù)保護(hù)方法和裝置,以減少出現(xiàn)數(shù)據(jù)丟失或出現(xiàn)未來(lái)數(shù)據(jù)問(wèn)題。
[0005]本發(fā)明實(shí)施例第一方面提供一種數(shù)據(jù)保護(hù)方法,包括:確定分布式存儲(chǔ)系統(tǒng)中的至少兩個(gè)服務(wù)器節(jié)點(diǎn)中發(fā)生時(shí)間跳變的第一服務(wù)器節(jié)點(diǎn);
[0006]向所述第一服務(wù)器節(jié)點(diǎn)發(fā)送故障指示信息,以使所述第一服務(wù)器節(jié)點(diǎn)根據(jù)所述故障指示信息退出所述分布式存儲(chǔ)系統(tǒng)。
[0007]結(jié)合第一方面,在第一種可能的實(shí)現(xiàn)方式中,所述確定分布式存儲(chǔ)系統(tǒng)中的至少兩個(gè)服務(wù)器節(jié)點(diǎn)中發(fā)生時(shí)間跳變的第一服務(wù)器節(jié)點(diǎn),包括:
[0008]針對(duì)分布式存儲(chǔ)系統(tǒng)中的至少兩個(gè)服務(wù)器節(jié)點(diǎn)中的每一個(gè)服務(wù)器節(jié)點(diǎn),以預(yù)設(shè)時(shí)間間隔獲取所述服務(wù)器節(jié)點(diǎn)的主機(jī)時(shí)間,若連續(xù)兩次獲取的主機(jī)時(shí)間中后一次獲取的主機(jī)時(shí)間t2減前一次獲取的主機(jī)時(shí)間tl滿足公式:t2-tl〈c0-cl,或者,t2-tl>c0+c2,則確定所述服務(wù)器節(jié)點(diǎn)為發(fā)生時(shí)間跳變的第一服務(wù)器節(jié)點(diǎn),其中,CO為所述預(yù)設(shè)時(shí)間間隔,Cl為第一容錯(cuò)時(shí)間,cl ^ O, c2為第二容錯(cuò)時(shí)間,c2 ^ O。
[0009]結(jié)合第一方面,在第二種可能的實(shí)現(xiàn)方式中,所述確定分布式存儲(chǔ)系統(tǒng)中的至少兩個(gè)服務(wù)器節(jié)點(diǎn)中發(fā)生時(shí)間跳變的第一服務(wù)器節(jié)點(diǎn),包括:
[0010]針對(duì)分布式存儲(chǔ)系統(tǒng)中的至少兩個(gè)服務(wù)器節(jié)點(diǎn)中的每一個(gè)服務(wù)器節(jié)點(diǎn),獲取當(dāng)前寫入數(shù)據(jù)的主機(jī)時(shí)間,若所述當(dāng)前寫入數(shù)據(jù)的主機(jī)時(shí)間小于前一次寫入數(shù)據(jù)的主機(jī)時(shí)間,則確定所述服務(wù)器節(jié)點(diǎn)為發(fā)生時(shí)間跳變的第一服務(wù)器節(jié)點(diǎn);
[0011]向客戶端發(fā)送寫入失敗指示,以使所述客戶端根據(jù)所述寫入失敗指示重新請(qǐng)求寫入數(shù)據(jù)。
[0012]本發(fā)明實(shí)施例第二方面提供一種數(shù)據(jù)保護(hù)裝置,包括:
[0013]處理模塊,用于確定分布式存儲(chǔ)系統(tǒng)中的至少兩個(gè)服務(wù)器節(jié)點(diǎn)中發(fā)生時(shí)間跳變的第一服務(wù)器節(jié)點(diǎn);
[0014]發(fā)送模塊,用于向所述第一服務(wù)器節(jié)點(diǎn)發(fā)送故障指示信息,以使所述第一服務(wù)器節(jié)點(diǎn)根據(jù)所述故障指示信息退出所述分布式存儲(chǔ)系統(tǒng)。
[0015]結(jié)合第二方面,在第一種可能的實(shí)現(xiàn)方式中,所述處理模塊具體用于針對(duì)分布式存儲(chǔ)系統(tǒng)中的至少兩個(gè)服務(wù)器節(jié)點(diǎn)中的每一個(gè)服務(wù)器節(jié)點(diǎn),以預(yù)設(shè)時(shí)間間隔獲取所述服務(wù)器節(jié)點(diǎn)的主機(jī)時(shí)間,若連續(xù)兩次獲取的主機(jī)時(shí)間中后一次獲取的主機(jī)時(shí)間t2減前一次獲取的主機(jī)時(shí)間tl滿足公式:t2-tl〈c0-cl,或者,t2-tl>c0+c2則確定所述服務(wù)器節(jié)點(diǎn)為發(fā)生時(shí)間跳變的第一服務(wù)器節(jié)點(diǎn),其中,CO為所述預(yù)設(shè)時(shí)間間隔,Cl為第一容錯(cuò)時(shí)間,0,c2為第二容錯(cuò)時(shí)間,c2 ^ O。
[0016]結(jié)合第二方面,在第二種可能的實(shí)現(xiàn)方式中,所述處理模塊具體用于針對(duì)分布式存儲(chǔ)系統(tǒng)中的至少兩個(gè)服務(wù)器節(jié)點(diǎn)中的每一個(gè)服務(wù)器節(jié)點(diǎn),獲取當(dāng)前寫入數(shù)據(jù)的主機(jī)時(shí)間,若所述當(dāng)前寫入數(shù)據(jù)的主機(jī)時(shí)間小于前一次寫入數(shù)據(jù)的主機(jī)時(shí)間,則確定所述服務(wù)器節(jié)點(diǎn)為發(fā)生時(shí)間跳變的第一服務(wù)器節(jié)點(diǎn);向客戶端發(fā)送寫入失敗指示,以使所述客戶端根據(jù)所述寫入失敗指示重新請(qǐng)求寫入數(shù)據(jù)。
[0017]本實(shí)發(fā)明實(shí)施例提供的數(shù)據(jù)保護(hù)方法和裝置,通過(guò)檢測(cè)設(shè)備確定分布式存儲(chǔ)系統(tǒng)中的至少兩個(gè)服務(wù)器節(jié)點(diǎn)中發(fā)生時(shí)間跳變的第一服務(wù)器節(jié)點(diǎn);向第一服務(wù)器節(jié)點(diǎn)發(fā)送故障指示信息,第一服務(wù)器節(jié)點(diǎn)根據(jù)故障指示信息退出分布式存儲(chǔ)系統(tǒng),以確??蛻舳瞬粫?huì)將數(shù)據(jù)寫入發(fā)生時(shí)間跳變的服務(wù)器節(jié)點(diǎn)中,從而,減少出現(xiàn)數(shù)據(jù)丟失或出現(xiàn)未來(lái)數(shù)據(jù)問(wèn)題。
【專利附圖】
【附圖說(shuō)明】
[0018]為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0019]圖1為本發(fā)明數(shù)據(jù)保護(hù)方法實(shí)施例一的流程示意圖;
[0020]圖2為本發(fā)明數(shù)據(jù)保護(hù)方法實(shí)施例二的流程示意圖;
[0021]圖3為本發(fā)明數(shù)據(jù)保護(hù)裝置實(shí)施例一的結(jié)構(gòu)示意圖;
[0022]圖4為本發(fā)明數(shù)據(jù)保護(hù)裝置實(shí)施例二的結(jié)構(gòu)示意圖;
[0023]圖5為本發(fā)明數(shù)據(jù)保護(hù)裝置實(shí)施例三的結(jié)構(gòu)示意圖;
[0024]圖6為本發(fā)明數(shù)據(jù)保護(hù)裝置實(shí)施例四的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0025]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0026]分布式存儲(chǔ)系統(tǒng)中包含至少兩個(gè)服務(wù)器節(jié)點(diǎn)和管理節(jié)點(diǎn)的,通常,客戶端向服務(wù)器節(jié)點(diǎn)寫入數(shù)據(jù)的過(guò)程如下:客戶端向管理節(jié)點(diǎn)發(fā)送寫入數(shù)據(jù)請(qǐng)求信息,管理節(jié)點(diǎn)根據(jù)寫入數(shù)據(jù)請(qǐng)求信息為上述客戶端分配供上述客戶端寫入數(shù)據(jù)的服務(wù)器節(jié)點(diǎn),客戶端將數(shù)據(jù)寫入上述供其寫入數(shù)據(jù)服務(wù)器節(jié)點(diǎn),服務(wù)器節(jié)點(diǎn)向客戶端發(fā)送寫入反饋信息,寫入反饋信息可以為寫入成功或者寫入失敗,若客戶端接收到的寫入反饋信息為寫入失敗,則重新向管理節(jié)點(diǎn)發(fā)送請(qǐng)求寫入數(shù)據(jù)信息,管理節(jié)點(diǎn)則重新為上述客戶端分配供客戶端寫入數(shù)據(jù)的服務(wù)器節(jié)點(diǎn)。
[0027]本發(fā)明的主要思想是通過(guò)檢測(cè)機(jī)制確定分布式存儲(chǔ)系統(tǒng)中發(fā)生時(shí)間跳變的服務(wù)器節(jié)點(diǎn),使發(fā)生時(shí)間跳變的服務(wù)器節(jié)點(diǎn)及時(shí)退出分布式存儲(chǔ)系統(tǒng),以減少由于數(shù)據(jù)寫入發(fā)生時(shí)間跳變的服務(wù)器節(jié)點(diǎn)而造成數(shù)據(jù)丟失或出現(xiàn)未來(lái)數(shù)據(jù)問(wèn)題。
[0028]為了便于描述,以下將發(fā)生時(shí)間跳變,需要退出分布式存儲(chǔ)系統(tǒng)的服務(wù)器節(jié)點(diǎn)稱為第一服務(wù)器節(jié)點(diǎn)。
[0029]下面以具體地實(shí)施例對(duì)本發(fā)明的技術(shù)方案進(jìn)行詳細(xì)的描述。
[0030]圖1為本發(fā)明數(shù)據(jù)保護(hù)方法實(shí)施例一的流程示意圖,本實(shí)施例的執(zhí)行主體是檢測(cè)設(shè)備,該檢測(cè)設(shè)備可以是獨(dú)立于分布式存儲(chǔ)系統(tǒng)中的各服務(wù)器節(jié)點(diǎn)的單獨(dú)設(shè)備,用于檢測(cè)各服務(wù)器節(jié)點(diǎn)是否發(fā)生時(shí)間跳變;也可以是集成在每個(gè)服務(wù)器節(jié)點(diǎn)中的檢測(cè)設(shè)備,用于檢測(cè)其所在的服務(wù)器節(jié)點(diǎn)是否發(fā)生時(shí)間跳變;也可以是集成在分布式存儲(chǔ)系統(tǒng)中的其他設(shè)備中的檢測(cè)設(shè)備;總之,其實(shí)現(xiàn)的功能是檢測(cè)分布式存儲(chǔ)系統(tǒng)中的服務(wù)器節(jié)點(diǎn)是否發(fā)生時(shí)間跳變,具體實(shí)現(xiàn)形式本發(fā)明對(duì)此不作限制,如圖1所示,本實(shí)施例的方法如下:
[0031]SlOl:確定分布式存儲(chǔ)系統(tǒng)中的至少兩個(gè)服務(wù)器節(jié)點(diǎn)中發(fā)生時(shí)間跳變的第一服務(wù)器節(jié)點(diǎn)。
[0032]作為第一種可能的實(shí)現(xiàn)方式,針對(duì)分布式存儲(chǔ)系統(tǒng)中的每一個(gè)服務(wù)器節(jié)點(diǎn),以預(yù)設(shè)時(shí)間間隔獲取服務(wù)器節(jié)點(diǎn)的主機(jī)時(shí)間,若連續(xù)兩次獲取的主機(jī)時(shí)間中后一次獲取的主機(jī)時(shí)間t2減前一次獲取的主機(jī)時(shí)間tl滿足公式:t2-tl〈c0-cl,或者,t2-tl>c0+c2,則確定上述服務(wù)器節(jié)點(diǎn)為發(fā)生時(shí)間跳變的第一服務(wù)器節(jié)點(diǎn),其中,CO為上述預(yù)設(shè)時(shí)間間隔,Cl為第一容錯(cuò)時(shí)間,cl≥O, c2為第二容錯(cuò)時(shí)間,c2≥ O。
[0033]舉例來(lái)說(shuō),假設(shè)預(yù)設(shè)時(shí)間間隔CO為30秒,則每隔30秒獲取一次服務(wù)器的主機(jī)時(shí)間,主機(jī)時(shí)間由服務(wù)器節(jié)點(diǎn)的時(shí)鐘晶振確定,若服務(wù)器的時(shí)鐘晶振速度正常,則連續(xù)兩次獲取的主機(jī)時(shí)間的時(shí)間間隔為30秒,也就是連續(xù)兩次獲取的主機(jī)時(shí)間中后一次獲取的主機(jī)時(shí)間t2減前一次獲取的主機(jī)時(shí)間tl等于30秒;若服務(wù)器的時(shí)鐘晶振速度不正常,即發(fā)生時(shí)間跳變,例如,若連續(xù)兩次獲取的主機(jī)時(shí)間中后一次獲取的主機(jī)時(shí)間t2減前一次獲取的主機(jī)時(shí)間tl小于30秒,則說(shuō)明發(fā)生時(shí)間回退現(xiàn)象,若在這種情況下向該服務(wù)器節(jié)點(diǎn)寫入數(shù)據(jù),則會(huì)出現(xiàn)數(shù)據(jù)丟失現(xiàn)象,例如,在11:30時(shí)發(fā)生時(shí)間回退跳變到11:20,則在時(shí)間回退跳變之前11:20到11:30寫入的數(shù)據(jù)會(huì)被時(shí)間回退跳變后11:20到11:30寫入的數(shù)據(jù)覆蓋,即造成數(shù)據(jù)丟失;若連續(xù)兩次獲取的主機(jī)時(shí)間中后一次獲取的主機(jī)時(shí)間t2減前一次獲取的主機(jī)時(shí)間tl大于30秒,則說(shuō)明發(fā)生向未來(lái)時(shí)間跳變現(xiàn)象,若在這種情況下向該服務(wù)器寫入數(shù)據(jù),則會(huì)出現(xiàn)未來(lái)數(shù)據(jù),例如,正常時(shí)間(NTP時(shí)間)11:00寫入的數(shù)據(jù)時(shí)間戳卻為(主機(jī)時(shí)間)11:30。在通常情況下,允許在第一容錯(cuò)時(shí)間Cl范圍內(nèi)發(fā)生時(shí)間回退跳變,或者允許在第二容錯(cuò)時(shí)間c2范圍內(nèi)發(fā)生向未來(lái)時(shí)間跳變,在第一容錯(cuò)時(shí)間Cl范圍內(nèi)發(fā)生時(shí)間回退跳變?cè)斐傻臄?shù)據(jù)丟失,或者在第二容錯(cuò)時(shí)間c2范圍內(nèi)發(fā)生向未來(lái)時(shí)間跳變?cè)斐傻某霈F(xiàn)未來(lái)數(shù)據(jù),對(duì)分布式存儲(chǔ)系統(tǒng)中存儲(chǔ)數(shù)據(jù)的影響是在可接受的范圍內(nèi),也就是,系統(tǒng)能夠接受的數(shù)據(jù)丟失的最大時(shí)間段為Cl,能夠接受的未來(lái)數(shù)據(jù)的最大時(shí)間段為c2,Cl和c2的取值的具體大小依實(shí)際應(yīng)用而定,例如,可以根據(jù)服務(wù)器存儲(chǔ)的數(shù)據(jù)的性質(zhì)而定,存儲(chǔ)的數(shù)據(jù)的重要性越高,Cl和c2的取值越小,具體地確定依據(jù)本發(fā)明對(duì)此不作限制。本發(fā)明實(shí)施例確定滿足公式t2-tl〈c0-cl,或者,t2-tl>c0+c2的服務(wù)器節(jié)點(diǎn)為第一服務(wù)器節(jié)點(diǎn)(發(fā)生時(shí)間跳變的服務(wù)器節(jié)點(diǎn))。
[0034]為了進(jìn)一步保護(hù)數(shù)據(jù),避免造成數(shù)據(jù)丟失,本發(fā)明實(shí)施例還提供了第二種可能的實(shí)現(xiàn)方式,即,針對(duì)分布式存儲(chǔ)系統(tǒng)中的每一個(gè)服務(wù)器節(jié)點(diǎn),獲取當(dāng)前寫入數(shù)據(jù)的主機(jī)時(shí)間,若上述當(dāng)前寫入數(shù)據(jù)的主機(jī)時(shí)間小于前一次寫入數(shù)據(jù)的主機(jī)時(shí)間,則確定服務(wù)器節(jié)點(diǎn)為發(fā)生時(shí)間跳變的第一服務(wù)器節(jié)點(diǎn);向客戶端發(fā)送寫入失敗指示,以使客戶端段根據(jù)寫入失敗指示重新請(qǐng)求寫入數(shù)據(jù)。在這種實(shí)現(xiàn)方式中,即檢測(cè)設(shè)備對(duì)每一次寫入數(shù)據(jù)的主機(jī)時(shí)間都進(jìn)行檢測(cè),若檢測(cè)當(dāng)前寫入數(shù)據(jù)的主機(jī)時(shí)間小于前一次寫入數(shù)據(jù)的主機(jī)時(shí)間,則說(shuō)明服務(wù)器的時(shí)鐘晶振發(fā)生了時(shí)間跳變,則向客戶端發(fā)生寫入失敗指示,客戶端根據(jù)寫入失敗指示管理節(jié)點(diǎn)重新請(qǐng)求寫入數(shù)據(jù),管理節(jié)點(diǎn)以根據(jù)重新請(qǐng)求寫入數(shù)據(jù)信息為客戶端重新分配服務(wù)器節(jié)點(diǎn)。采用這種方法能夠完全避免數(shù)據(jù)丟失的問(wèn)題。
[0035]可以理解的是,可以檢測(cè)設(shè)備也可以以第二實(shí)現(xiàn)方式確定發(fā)生時(shí)間回退的第一服務(wù)器節(jié)點(diǎn),以第一種實(shí)現(xiàn)方式中的服務(wù)器節(jié)點(diǎn)滿足t2-tl>c0+c2確定發(fā)生向未來(lái)時(shí)間跳變的第一服務(wù)器節(jié)點(diǎn),結(jié)合兩種實(shí)現(xiàn)方式,確定分布式存儲(chǔ)系統(tǒng)中的至少兩個(gè)服務(wù)器節(jié)點(diǎn)中發(fā)生時(shí)間跳變的第一服務(wù)器節(jié)點(diǎn)。
[0036]S102:向第一服務(wù)器節(jié)點(diǎn)發(fā)送故障指示信息。
[0037]本實(shí)施例中的故障指示信息即指服務(wù)器節(jié)點(diǎn)發(fā)生了時(shí)間跳變,第一服務(wù)器節(jié)點(diǎn)可以根據(jù)故障指示信息退出分布式存儲(chǔ)系統(tǒng)。
[0038]當(dāng)然可以理解的是,第一服務(wù)器節(jié)點(diǎn)也可以通過(guò)主動(dòng)從檢測(cè)設(shè)備獲知自身是否發(fā)生時(shí)間跳變,以及時(shí)退出分布式存儲(chǔ)系統(tǒng)。
[0039]當(dāng)?shù)谝环?wù)器節(jié)點(diǎn)退出分布式存儲(chǔ)系統(tǒng)時(shí),管理節(jié)點(diǎn)會(huì)將該第一服務(wù)器節(jié)點(diǎn)的服務(wù)轉(zhuǎn)移到分布式存儲(chǔ)系統(tǒng)中的其他服務(wù)器節(jié)點(diǎn),當(dāng)有客戶端請(qǐng)求寫入數(shù)據(jù)時(shí),管理節(jié)點(diǎn)則根據(jù)客戶端的寫入數(shù)據(jù)請(qǐng)求信息為客戶端分配服務(wù)器節(jié)點(diǎn),從而,減少出現(xiàn)數(shù)據(jù)丟失或出現(xiàn)未來(lái)數(shù)據(jù)問(wèn)題。
[0040]本實(shí)施例中,通過(guò)檢測(cè)設(shè)備確定分布式存儲(chǔ)系統(tǒng)中的至少兩個(gè)服務(wù)器節(jié)點(diǎn)中發(fā)生時(shí)間跳變的第一服務(wù)器節(jié)點(diǎn);向第一服務(wù)器節(jié)點(diǎn)發(fā)送故障指示信息,第一服務(wù)器節(jié)點(diǎn)根據(jù)故障指示信息退出分布式存儲(chǔ)系統(tǒng),以確??蛻舳瞬粫?huì)將數(shù)據(jù)寫入發(fā)生時(shí)間跳變的服務(wù)器節(jié)點(diǎn)中,從而,減少出現(xiàn)數(shù)據(jù)丟失或出現(xiàn)未來(lái)數(shù)據(jù)問(wèn)題。
[0041]圖2為本發(fā)明數(shù)據(jù)保護(hù)方法實(shí)施例二的流程示意圖,本實(shí)施例的執(zhí)行主體是第一服務(wù)器節(jié)點(diǎn),如圖2所示,本實(shí)施例的方法包括:
[0042]S201:接收檢測(cè)設(shè)備發(fā)送的故障指示信息。
[0043]本實(shí)施例中的故障指示信息用于指示服務(wù)器節(jié)點(diǎn)發(fā)生了時(shí)間跳變。[0044]S202:根據(jù)故障指示信息退出分布式存儲(chǔ)系統(tǒng)。
[0045]第一服務(wù)器節(jié)點(diǎn)接收到故障指示信息之后,則退出分布式存儲(chǔ)系統(tǒng),以確??蛻舳瞬粫?huì)將數(shù)據(jù)寫入發(fā)生時(shí)間跳變的服務(wù)器節(jié)點(diǎn)中,從而,減少出現(xiàn)數(shù)據(jù)丟失或出現(xiàn)未來(lái)數(shù)據(jù)問(wèn)題。
[0046]圖3為本發(fā)明數(shù)據(jù)保護(hù)裝置實(shí)施例一的結(jié)構(gòu)示意圖,本實(shí)施例的裝置可以部署在檢測(cè)設(shè)備中,檢測(cè)設(shè)備可以是獨(dú)立于分布式存儲(chǔ)系統(tǒng)中的各服務(wù)器節(jié)點(diǎn)的單獨(dú)設(shè)備,用于檢測(cè)各服務(wù)器節(jié)點(diǎn)是否發(fā)生時(shí)間跳變;也可以是集成在每個(gè)服務(wù)器節(jié)點(diǎn)中的檢測(cè)設(shè)備,用于檢測(cè)其所在的服務(wù)器節(jié)點(diǎn)是否發(fā)生時(shí)間跳變;也可以是集成在分布式存儲(chǔ)系統(tǒng)中的其他設(shè)備中的檢測(cè)設(shè)備;本實(shí)施例的裝置包括處理模塊301和發(fā)送模塊302,其中,處理模塊301用于確定分布式存儲(chǔ)系統(tǒng)中的至少兩個(gè)服務(wù)器節(jié)點(diǎn)中發(fā)生時(shí)間跳變的第一服務(wù)器節(jié)點(diǎn);發(fā)送模塊302用于向上述第一服務(wù)器節(jié)點(diǎn)發(fā)送故障指示信息,以使上述第一服務(wù)器節(jié)點(diǎn)根據(jù)上述故障指示信息退出上述分布式存儲(chǔ)系統(tǒng)。
[0047]在上述實(shí)施例中,上述處理模塊301具體用于針對(duì)分布式存儲(chǔ)系統(tǒng)中的至少兩個(gè)服務(wù)器節(jié)點(diǎn)中的每一個(gè)服務(wù)器節(jié)點(diǎn),以預(yù)設(shè)時(shí)間間隔獲取上述服務(wù)器節(jié)點(diǎn)的主機(jī)時(shí)間,若連續(xù)兩次獲取的主機(jī)時(shí)間中后一次獲取的主機(jī)時(shí)間t2減前一次獲取的主機(jī)時(shí)間tl滿足公式:t2-tl〈c0-cl,或者,t2-tl>c0+c2則確定上述服務(wù)器節(jié)點(diǎn)為發(fā)生時(shí)間跳變的第一服務(wù)器節(jié)點(diǎn),其中,CO為上述預(yù)設(shè)時(shí)間間隔,Cl為第一容錯(cuò)時(shí)間,cl ^ O, c2為第二容錯(cuò)時(shí)間,c2 ^ O。
[0048]在上述實(shí)施例中,上述處理模塊301具體用于針對(duì)分布式存儲(chǔ)系統(tǒng)中的至少兩個(gè)服務(wù)器節(jié)點(diǎn)中的每一個(gè)服務(wù)器節(jié)點(diǎn),獲取當(dāng)前寫入數(shù)據(jù)的主機(jī)時(shí)間,若上述當(dāng)前寫入數(shù)據(jù)的主機(jī)時(shí)間小于前一次寫入數(shù)據(jù)的主機(jī)時(shí)間,則確定上述服務(wù)器節(jié)點(diǎn)為發(fā)生時(shí)間跳變的第一服務(wù)器節(jié)點(diǎn);向客戶端發(fā)送寫入失敗指示,以使上述客戶端根據(jù)上述寫入失敗指示重新請(qǐng)求寫入數(shù)據(jù)。
[0049]上述各裝置實(shí)施例中的模塊,對(duì)應(yīng)`地可執(zhí)行圖1所示方法實(shí)施例的技術(shù)方案,其實(shí)現(xiàn)原理和技術(shù)效果類似,在此不再贅述。
[0050]圖4為本發(fā)明數(shù)據(jù)保護(hù)裝置實(shí)施例二的結(jié)構(gòu)示意圖,如圖4所示,本實(shí)施例的裝置部署在第一服務(wù)器節(jié)點(diǎn)中,本實(shí)施例的裝置包括接收模塊401和處理模塊402,其中,接收模塊401用于接收檢測(cè)設(shè)備發(fā)送的故障指示信息,處理模塊402用于根據(jù)故障指示信息退出分布式存儲(chǔ)系統(tǒng)。
[0051]本裝置實(shí)施例中的模塊,對(duì)應(yīng)地可執(zhí)行圖2所示方法實(shí)施例的技術(shù)方案,其實(shí)現(xiàn)原理和技術(shù)效果類似,在此不再贅述。
[0052]圖5為本發(fā)明數(shù)據(jù)保護(hù)裝置實(shí)施例三的結(jié)構(gòu)示意圖,本實(shí)施例的裝置可以部署在檢測(cè)設(shè)備中,檢測(cè)設(shè)備可以是獨(dú)立于分布式存儲(chǔ)系統(tǒng)中的各服務(wù)器節(jié)點(diǎn)的單獨(dú)設(shè)備,用于檢測(cè)各服務(wù)器節(jié)點(diǎn)是否發(fā)生時(shí)間跳變;也可以是集成在每個(gè)服務(wù)器節(jié)點(diǎn)中的檢測(cè)設(shè)備,用于檢測(cè)其所在的服務(wù)器節(jié)點(diǎn)是否發(fā)生時(shí)間跳變;也可以是集成在分布式存儲(chǔ)系統(tǒng)中的其他設(shè)備中的檢測(cè)設(shè)備;如圖5所示,本實(shí)施例的裝置包括處理器501和發(fā)送器502,其中,處理器501用于確定分布式存儲(chǔ)系統(tǒng)中的至少兩個(gè)服務(wù)器節(jié)點(diǎn)中發(fā)生時(shí)間跳變的第一服務(wù)器節(jié)點(diǎn);發(fā)送器502用于向上述第一服務(wù)器節(jié)點(diǎn)發(fā)送故障指示信息,以使上述第一服務(wù)器節(jié)點(diǎn)根據(jù)上述故障指示信息退出上述分布式存儲(chǔ)系統(tǒng)。[0053]在上述實(shí)施例中,上述處理器501具體用于針對(duì)分布式存儲(chǔ)系統(tǒng)中的至少兩個(gè)服務(wù)器節(jié)點(diǎn)中的每一個(gè)服務(wù)器節(jié)點(diǎn),以預(yù)設(shè)時(shí)間間隔獲取上述服務(wù)器節(jié)點(diǎn)的主機(jī)時(shí)間,若連續(xù)兩次獲取的主機(jī)時(shí)間中后一次獲取的主機(jī)時(shí)間t2減前一次獲取的主機(jī)時(shí)間tl滿足公式:t2-tl〈c0-cl,或者,t2-tl>c0+c2則確定上述服務(wù)器節(jié)點(diǎn)為發(fā)生時(shí)間跳變的第一服務(wù)器節(jié)點(diǎn),其中,CO為上述預(yù)設(shè)時(shí)間間隔,Cl為第一容錯(cuò)時(shí)間,cl ≥ O, c2為第二容錯(cuò)時(shí)間,c2 ≥ O。
[0054]在上述實(shí)施例中,上述處理器501具體用于針對(duì)分布式存儲(chǔ)系統(tǒng)中的至少兩個(gè)服務(wù)器節(jié)點(diǎn)中的每一個(gè)服務(wù)器節(jié)點(diǎn),獲取當(dāng)前寫入數(shù)據(jù)的主機(jī)時(shí)間,若上述當(dāng)前寫入數(shù)據(jù)的主機(jī)時(shí)間小于前一次寫入數(shù)據(jù)的主機(jī)時(shí)間,則確定上述服務(wù)器節(jié)點(diǎn)為發(fā)生時(shí)間跳變的第一服務(wù)器節(jié)點(diǎn);向客戶端發(fā)送寫入失敗指示,以使上述客戶端根據(jù)上述寫入失敗指示重新請(qǐng)求寫入數(shù)據(jù)。
[0055]上述各裝置實(shí)施例中的模塊,對(duì)應(yīng)地可執(zhí)行圖1所示方法實(shí)施例的技術(shù)方案,其實(shí)現(xiàn)原理和技術(shù)效果類似,在此不再贅述。
[0056]圖6為本發(fā)明數(shù)據(jù)保護(hù)裝置實(shí)施例四的結(jié)構(gòu)示意圖,如圖6所示,本實(shí)施例的裝置部署在第一服務(wù)器節(jié)點(diǎn)中,本實(shí)施例的裝置包括接收器601和處理器602,其中,接收器601用于接收檢測(cè)設(shè)備發(fā)送的故障指示信息,處理器602用于根據(jù)故障指示信息退出分布式存儲(chǔ)系統(tǒng)。
[0057]本裝置實(shí)施例中的模塊,對(duì)應(yīng)地可執(zhí)行圖2所示方法實(shí)施例的技術(shù)方案,其實(shí)現(xiàn)原理和技術(shù)效果類似,在此不再贅述。
[0058]本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述各方法實(shí)施例的全部或部分步驟可以通過(guò)程序指令相關(guān)的硬件來(lái)完成。前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。該程序在執(zhí)行時(shí),執(zhí)行包括上述各方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:R0M、RAM、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
[0059]最后應(yīng)說(shuō)明的是:以上各實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述各實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。
【權(quán)利要求】
1.一種數(shù)據(jù)保護(hù)方法,其特征在于,包括: 確定分布式存儲(chǔ)系統(tǒng)中的至少兩個(gè)服務(wù)器節(jié)點(diǎn)中發(fā)生時(shí)間跳變的第一服務(wù)器節(jié)點(diǎn); 向所述第一服務(wù)器節(jié)點(diǎn)發(fā)送故障指示信息,以使所述第一服務(wù)器節(jié)點(diǎn)根據(jù)所述故障指示信息退出所述分布式存儲(chǔ)系統(tǒng)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述確定分布式存儲(chǔ)系統(tǒng)中的至少兩個(gè)服務(wù)器節(jié)點(diǎn)中發(fā)生時(shí)間跳變的第一服務(wù)器節(jié)點(diǎn),包括: 針對(duì)分布式存儲(chǔ)系統(tǒng)中的至少兩個(gè)服務(wù)器節(jié)點(diǎn)中的每一個(gè)服務(wù)器節(jié)點(diǎn),以預(yù)設(shè)時(shí)間間隔獲取所述服務(wù)器節(jié)點(diǎn)的主機(jī)時(shí)間,若連續(xù)兩次獲取的主機(jī)時(shí)間中后一次獲取的主機(jī)時(shí)間t2減前一次獲取的主機(jī)時(shí)間tl滿足公式:t2-tl〈c0-cl,或者,t2-tl>c0+c2,則確定所述服務(wù)器節(jié)點(diǎn)為發(fā)生時(shí)間跳變的第一服務(wù)器節(jié)點(diǎn),其中,CO為所述預(yù)設(shè)時(shí)間間隔,Cl為第一容錯(cuò)時(shí)間,cl ≥ O, c2為第二容錯(cuò)時(shí)間,c2 ≥ O。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述確定分布式存儲(chǔ)系統(tǒng)中的至少兩個(gè)服務(wù)器節(jié)點(diǎn)中發(fā)生時(shí)間跳變的第一服務(wù)器節(jié)點(diǎn),包括: 針對(duì)分布式存儲(chǔ)系統(tǒng) 中的至少兩個(gè)服務(wù)器節(jié)點(diǎn)中的每一個(gè)服務(wù)器節(jié)點(diǎn),獲取當(dāng)前寫入數(shù)據(jù)的主機(jī)時(shí)間,若所述當(dāng)前寫入數(shù)據(jù)的主機(jī)時(shí)間小于前一次寫入數(shù)據(jù)的主機(jī)時(shí)間,則確定所述服務(wù)器節(jié)點(diǎn)為發(fā)生時(shí)間跳變的第一服務(wù)器節(jié)點(diǎn); 向客戶端發(fā)送寫入失敗指示,以使所述客戶端根據(jù)所述寫入失敗指示重新請(qǐng)求寫入數(shù)據(jù)。
4.一種數(shù)據(jù)保護(hù)裝置,其特征在于,包括: 處理模塊,用于確定分布式存儲(chǔ)系統(tǒng)中的至少兩個(gè)服務(wù)器節(jié)點(diǎn)中發(fā)生時(shí)間跳變的第一服務(wù)器節(jié)點(diǎn); 發(fā)送模塊,用于向所述第一服務(wù)器節(jié)點(diǎn)發(fā)送故障指示信息,以使所述第一服務(wù)器節(jié)點(diǎn)根據(jù)所述故障指示信息退出所述分布式存儲(chǔ)系統(tǒng)。
5.根據(jù)權(quán)利要求4所述的裝置,其特征在于,所述處理模塊具體用于針對(duì)分布式存儲(chǔ)系統(tǒng)中的至少兩個(gè)服務(wù)器節(jié)點(diǎn)中的每一個(gè)服務(wù)器節(jié)點(diǎn),以預(yù)設(shè)時(shí)間間隔獲取所述服務(wù)器節(jié)點(diǎn)的主機(jī)時(shí)間,若連續(xù)兩次獲取的主機(jī)時(shí)間中后一次獲取的主機(jī)時(shí)間t2減前一次獲取的主機(jī)時(shí)間tl滿足公式:t2-tl〈c0-cl,或者,t2-tl>c0+c2則確定所述服務(wù)器節(jié)點(diǎn)為發(fā)生時(shí)間跳變的第一服務(wù)器節(jié)點(diǎn),其中,CO為所述預(yù)設(shè)時(shí)間間隔,Cl為第一容錯(cuò)時(shí)間,cl ≥ O,c2為第二容錯(cuò)時(shí)間,c2 ≥ O。
6.根據(jù)權(quán)利要求4所述的裝置,其特征在于,所述處理模塊具體用于針對(duì)分布式存儲(chǔ)系統(tǒng)中的至少兩個(gè)服務(wù)器節(jié)點(diǎn)中的每一個(gè)服務(wù)器節(jié)點(diǎn),獲取當(dāng)前寫入數(shù)據(jù)的主機(jī)時(shí)間,若所述當(dāng)前寫入數(shù)據(jù)的主機(jī)時(shí)間小于前一次寫入數(shù)據(jù)的主機(jī)時(shí)間,則確定所述服務(wù)器節(jié)點(diǎn)為發(fā)生時(shí)間跳變的第一服務(wù)器節(jié)點(diǎn);向客戶端發(fā)送寫入失敗指示,以使所述客戶端根據(jù)所述寫入失敗指示重新請(qǐng)求寫入數(shù)據(jù)。
【文檔編號(hào)】H04L12/24GK103684868SQ201310698641
【公開(kāi)日】2014年3月26日 申請(qǐng)日期:2013年12月18日 優(yōu)先權(quán)日:2013年12月18日
【發(fā)明者】徐波 申請(qǐng)人:華為技術(shù)有限公司