亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

分布式存儲系統(tǒng)及其時間戳的實現(xiàn)方法

文檔序號:7687978閱讀:139來源:國知局
專利名稱:分布式存儲系統(tǒng)及其時間戳的實現(xiàn)方法
技術(shù)領(lǐng)域
本發(fā)明涉及云計算技術(shù)領(lǐng)域,尤其涉及一種分布式存儲系統(tǒng)及其時間戳的實現(xiàn)方法。
背景技術(shù)
云計算(Cloud Computing)是網(wǎng)格計算(G rid Computing)、分布式計算(Distributed Computing)、并行計算(Parallel Computing)、效用計算(UtilityComputing)網(wǎng)絡(luò)存儲(Network Storage Technologies)、虛擬化(Virtualization)、負(fù)載均衡(Load Balance)等傳統(tǒng)計算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)發(fā)展融合的產(chǎn)物。它旨在通過網(wǎng)絡(luò)把多個成本相對較低的計算實體整合成一個具有強(qiáng)大計算能力的系統(tǒng)。分布式存儲系統(tǒng)是云計算范疇中的一個領(lǐng)域,其作用是提供海量數(shù)據(jù)的分布式存儲服務(wù)以及高速讀寫訪問的能力。在分布式存儲系統(tǒng)中,時間戳的實現(xiàn)是比較難以解決的關(guān)鍵問題。分布式存儲系統(tǒng)是由若干服務(wù)器節(jié)點和客戶端互相連接構(gòu)成的;服務(wù)器節(jié)點負(fù)責(zé)數(shù)據(jù)的存儲,客戶端可以對服務(wù)器做數(shù)據(jù)的寫入、讀取、更新、刪除等操作。一般來說寫入的數(shù)據(jù)不可能只保存在單個服務(wù)器節(jié)點上,而是在多臺服務(wù)器節(jié)點上保存同一個數(shù)據(jù)的副本,互為備份。當(dāng)網(wǎng)絡(luò)偶然瞬間故障或者硬件、軟件故障,或者用戶對同一個數(shù)據(jù)頻繁、交叉地進(jìn)行不同的操作,例如,更新、刪除等,則系統(tǒng)內(nèi)不同服務(wù)器節(jié)點上的數(shù)據(jù)副本會有不同的值。當(dāng)用戶再次獲取該數(shù)據(jù)時,會發(fā)生取得的數(shù)據(jù)不是其最后更新后的值,背離了用戶的需求。為了保障在分布式存儲系統(tǒng)中,用戶取得的數(shù)據(jù)是其最后更新的數(shù)據(jù),即保障分布式存儲系統(tǒng)中數(shù)據(jù)的一致性,每個數(shù)據(jù)在實際存儲時,還要加上一些屬性信息。例如,時間戳。這樣用戶在獲取數(shù)據(jù)的時候,可以根據(jù)時間戳的大小,返回一個最大時間戳的數(shù)據(jù)給用戶。所謂分布式存儲系統(tǒng)中的時間戳是指系統(tǒng)中每個服務(wù)器節(jié)點都維持的一個反應(yīng)該分布式存儲系統(tǒng)存活時間的數(shù)據(jù)。在任一時刻,系統(tǒng)中每個服務(wù)器節(jié)點的時間戳必須相同,而且隨著實際時間的增加,逐步遞增。在現(xiàn)有的分布式存儲系統(tǒng)中,時間戳的實現(xiàn)有以下幾種方法一在系統(tǒng)中選定一個服務(wù)器節(jié)點作為時間服務(wù)器,由該時間服務(wù)器周期性地向系統(tǒng)中的其它服務(wù)器節(jié)點廣播其維護(hù)的時間戳,其它服務(wù)器節(jié)點收到攜帶有時間戳的數(shù)據(jù)包后,更新其本地時間戳。這種方法是一個中心化的解決方法,其可靠性依賴于系統(tǒng)中的時間服務(wù)器的可靠性,如果時間服務(wù)器宕機(jī),則影響到整個系統(tǒng)的時間戳;而且,普通服務(wù)器節(jié)點中更新的時間戳,是沒有計算數(shù)據(jù)包在網(wǎng)絡(luò)中傳輸?shù)臅r間的,也就是說,普通服務(wù)器節(jié)點的時間戳與時間服務(wù)器的時間戳之間存在微小的時差。另外,這種方法一旦時間服務(wù)器發(fā)送故障,則整個系統(tǒng)將無法正確更新時間戳。方法二 由系統(tǒng)中的每個服務(wù)器節(jié)點從Internet中的網(wǎng)絡(luò)時間協(xié)議(NetworkTime Protocol, NTP)時間服務(wù)器獲取權(quán)威的時間作為本節(jié)點的本地時間戳。這種方法依賴于外界的服務(wù),一般很少采用。

發(fā)明內(nèi)容
本發(fā)明的目的是,提供一種分布式存儲系統(tǒng)及其時間戳的實現(xiàn)方法,以解決現(xiàn)有基于中心化的實現(xiàn)方法可靠性不高的問題。本發(fā)明提供了一種分布式存儲系統(tǒng)時間戳的實現(xiàn)方法,包括以下步驟上述系統(tǒng)的每個服務(wù)器節(jié)點均維護(hù)一個本地時間戳;
上述每個服務(wù)器節(jié)點周期性向系統(tǒng)中的其他服務(wù)器節(jié)點發(fā)送攜帶有本地維護(hù)的當(dāng)前時間戳的數(shù)據(jù)包;上述每個服務(wù)器節(jié)點根據(jù)收到的數(shù)據(jù)包,更新本地時間戳。優(yōu)選地,上述每個服務(wù)器節(jié)點的本地維護(hù)的時間戳的初始值為0,從上述系統(tǒng)第一次運(yùn)行起,每秒自增I。優(yōu)選地,上述每個服務(wù)器節(jié)點根據(jù)收到的數(shù)據(jù)包,更新本地時間戳步驟具體包括解析收到的數(shù)據(jù)包,得到時間戳和校驗位;判斷上述校驗位是否正確,若不正確,則不更新本地時間戳,并丟棄上述時間戳;若正確,則保存上述時間戳;判斷上述時間戳的值與上一次保存的時間戳的值之差是否在預(yù)設(shè)的校驗閾值范圍內(nèi),若上述差值不在上述校驗閾值范圍內(nèi),則不更新本地時間戳;若上述差值在上述校驗閾值范圍內(nèi),則判斷上述時間戳的值是否大于本地當(dāng)前時間戳的值,若是,則用上述時間戳更新本地時間戳;否則,不更新本地時間戳。優(yōu)選地,上述系統(tǒng)中的服務(wù)器節(jié)點每隔I秒,將本地時間戳持久化到本地存儲的文件中。優(yōu)選地,若上述系統(tǒng)異常終止后又恢復(fù)正常運(yùn)行,則上述每個服務(wù)器節(jié)點的本地時間戳從其終止前持久化的時間戳處繼續(xù)計時。優(yōu)選地,上述方法中,上述服務(wù)器節(jié)點同一時間僅保存兩個時間戳,當(dāng)有新的時間戳保存進(jìn)來時,先保存的時間戳自動溢出。優(yōu)選地,上述校驗閾值為上述服務(wù)器節(jié)點發(fā)送攜帶有時間戳的數(shù)據(jù)包的周期的I倍到I. 5倍。本發(fā)明進(jìn)一步提供了一種分布式存儲系統(tǒng),包括相互連接的若干個服務(wù)器節(jié)點,上述服務(wù)器節(jié)點包括時間戳維護(hù)模塊、時間戳更新模塊,上述時間戳維護(hù)模塊,用于為本地提供時間戳,并周期性向系統(tǒng)中的其他服務(wù)器節(jié)點發(fā)送攜帶本地當(dāng)前時間戳的數(shù)據(jù)包;上述時間戳更新模塊,用于根據(jù)收到的數(shù)據(jù)包,更新上述時間戳維護(hù)模塊的時間戳。優(yōu)選地,上述時間戳維護(hù)模塊,還用于提供設(shè)置發(fā)送攜帶有本地當(dāng)前時間戳的數(shù)據(jù)包周期的接口,為上述時間戳每秒步進(jìn)1,且每隔I秒,將上述時間戳持久化到本地存儲的文件中;并在系統(tǒng)異常終止后又恢復(fù)正常運(yùn)行時,從終止前持久化的時間戳處繼續(xù)計時;上述時間戳更新模塊,還用于提供設(shè)置校驗閾值的接口,解析收到的數(shù)據(jù)包,并判斷解析得到的校驗位是否正確,以及在上述校驗位正確時,保存解析得到的時間戳,并判斷上述解析得到的時間戳的值與上一次保存的時間戳的值之差是否在上述校驗閾值范圍內(nèi),并在上述差值在上述校驗閾值范圍內(nèi)時,判斷上述時間戳的值是否大于上述時間戳維護(hù)模塊的當(dāng)前時間戳的值,以及在上述時間戳的值大于上述時間戳維護(hù)模塊的當(dāng)前時間戳的值時,用上述時間戳更新上述時間戳維護(hù)模塊的時間戳。優(yōu)選地,上述服務(wù)器節(jié)點還包括時間戳存儲模塊,用于存儲時間戳,并在有新的時間戳存入時,自動溢出先保存的時間戳。本發(fā)明通過在每個服務(wù)器節(jié)點上均維護(hù)一個時間戳,且周期性根據(jù)其他節(jié)點的時間戳更新本地時間戳的方法,保障了系統(tǒng)中每個服務(wù)器節(jié)點上的時間戳在任一時刻都相同,本發(fā)明各服務(wù)器節(jié)點的時間戳具有非常高的可靠性,是一個非中心化的解決方法,不會 因為系統(tǒng)中某個服務(wù)器節(jié)點的異常導(dǎo)致全系統(tǒng)時間戳的異常。


此處所說明的附圖用來提供對本發(fā)明的進(jìn)一步理解,構(gòu)成本發(fā)明的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中圖I是本發(fā)明分布式存儲系統(tǒng)時間戳的實現(xiàn)方法流程圖;圖2是本發(fā)明分布式存儲系統(tǒng)的原理框圖。
具體實施例方式為了使本發(fā)明所要解決的技術(shù)問題、技術(shù)方案及有益效果更加清楚、明白,以下結(jié)合附圖和實施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。如圖I所示,是本發(fā)明分布式存儲系統(tǒng)時間戳的實現(xiàn)方法流程圖,包括以下步驟步驟SOOl :分布式存儲系統(tǒng)的每個服務(wù)器節(jié)點均維護(hù)一個本地時間戳;各服務(wù)器節(jié)點每隔I秒將本地時間戳持久化到本地存儲的文件中。各服務(wù)器節(jié)點本地維護(hù)的時間戳的初始值均為0,從分布式存儲系統(tǒng)第一次運(yùn)行起,各服務(wù)器節(jié)點的本地時間戳每秒自增I ;若分布式存儲系統(tǒng)異常終止后又恢復(fù)正常運(yùn)行,則各服務(wù)器節(jié)點的本地時間戳從其終止前持久化的時間戳處繼續(xù)計時,比如,若終止前,持久化的時間戳的值為120,則系統(tǒng)正常運(yùn)行后,即從120開始繼續(xù)計時。步驟S002 :各服務(wù)器節(jié)點周期性向系統(tǒng)中的其他服務(wù)器節(jié)點發(fā)送攜帶有本地維護(hù)的當(dāng)前時間戳的數(shù)據(jù)包;各服務(wù)器節(jié)點通過系統(tǒng)初始化時建立的長鏈接向其他服務(wù)器節(jié)點發(fā)送攜帶有本地維護(hù)的當(dāng)前時間戳的數(shù)據(jù)包。例如,可以預(yù)設(shè)各服務(wù)器節(jié)點每隔60秒發(fā)送一次攜帶有本地時間戳的數(shù)據(jù)包給系統(tǒng)中的其他服務(wù)器節(jié)點。
步驟S003 :各服務(wù)器節(jié)點解析收到的數(shù)據(jù)包,得到時間戳Tn和校驗位;步驟S004 :判斷上述解析得到的校驗位是否正確,若是,則執(zhí)行步驟S005 ;否則,執(zhí)行步驟S009 ;本發(fā)明中,當(dāng)判斷出解析得到的校驗位錯誤時,則解析得到的時間戳Tn被丟棄。步驟S005 :保存上述時間戳Tn ;本發(fā)明中,各服務(wù)器節(jié)點同一時間僅保存兩個時間戳,當(dāng)有新的時間戳保存進(jìn)來時,先保存的時間戳自動溢出。比如,假設(shè)當(dāng)前周期為第N個周期,且其前兩個周期的校驗位都正確,則在保存第N個周期收到的數(shù)據(jù)包攜 帶的時間戳Tn之前,保存的時間戳為第N-2個周期的時間戳TN_2和第N-I個周期的時間戳Tn+當(dāng)保存第N個周期的時間戳Tn時,則第N-2個周期的時間戳TN_2自動溢出。步驟S006 :判斷上述時間戳Tn的值與上一次保存的時間戳Tim的值之差是否在預(yù)設(shè)的校驗閾值范圍內(nèi),若是,則執(zhí)行步驟S007 ;否則,執(zhí)行步驟S009 ;上述校驗閾值可設(shè)置為本服務(wù)器節(jié)點發(fā)送攜帶有時間戳的數(shù)據(jù)包的周期的I倍到I. 5倍,比如,若本服務(wù)器節(jié)點發(fā)送攜帶有時間戳的數(shù)據(jù)包的周期為60秒,則校驗閾值為60 90。若Tn-Tim不在校驗閾值范圍內(nèi),則表示該數(shù)據(jù)包在傳輸過程中發(fā)生異常。步驟S007 :判斷上述解析得到的時間戳Tn的值是否大于本地維護(hù)的當(dāng)前時間戳的值,若是,則執(zhí)行步驟S008 ;否則,執(zhí)行步驟S009 ;步驟S005、S006以及S007有效地保障了各服務(wù)器節(jié)點上時間戳的一致,抑制了由于攜帶時間戳的數(shù)據(jù)包在傳輸過程中的異常而導(dǎo)致的其他服務(wù)器節(jié)點的時間戳異常的情況。步驟S008 :用上述時間戳Tn更新本地時間戳,本周期執(zhí)行結(jié)束;步驟S009 :不更新本地時間戳,本周期執(zhí)行結(jié)束。如圖2所示,是本發(fā)明分布式存儲系統(tǒng)的原理框圖,本實施例假設(shè)分布式存儲系統(tǒng)包括3個服務(wù)器節(jié)點,分別為10、20、30,每個服務(wù)器節(jié)點均包括時間戳維護(hù)模塊01、時間戳更新模塊02以及時間戳存儲模塊03,時間戳維護(hù)模塊01,用于為本地提供時間戳,為上述時間戳每秒步進(jìn)1,且每隔I秒,將上述時間戳持久化到本地存儲的文件中;還用于提供設(shè)置發(fā)送攜帶有本地維護(hù)的當(dāng)前時間戳的數(shù)據(jù)包的周期的接口,并周期性向系統(tǒng)中的其他服務(wù)器節(jié)點發(fā)送攜帶有本地當(dāng)前時間戳的數(shù)據(jù)包,并在系統(tǒng)異常終止后又恢復(fù)正常運(yùn)行時,從終止前持久化的時間戳處繼續(xù)計時;時間戳更新模塊02,提供設(shè)置校驗閾值的接口,解析收到的數(shù)據(jù)包,并判斷解析得到的校驗位是否正確,在上述校驗位正確時,將解析得到的時間戳Tn保存到時間戳存儲模塊03中,并判斷上述時間戳Tn的值與上一次保存的時間戳Tim的值之差是否在上述校驗閾值范圍內(nèi),并在上述差值在上述校驗閾值范圍內(nèi)時,判斷上述時間戳Tn的值是否大于時間戳維護(hù)模塊01的當(dāng)前時間戳的值,以及在上述時間戳Tn的值大于時間戳維護(hù)模塊01的當(dāng)前時間戳的值時,用上述時間戳Tn更新時間戳維護(hù)模塊01的時間戳。時間戳存儲模塊03,用于存儲解析得到的時間戳TN,并在有新的時間戳存入時,自動溢出先保存的時間戳。上述說明示出并描述了本發(fā)明的優(yōu)選實施例,但如前所述,應(yīng)當(dāng)理解本發(fā)明并非局限于本文所披露的形式,不應(yīng)看作是對其他實施例的排除,而可用于各種其他組合、修改和環(huán)境,并能夠在本文所述發(fā)明構(gòu)想范圍內(nèi),通過上述教導(dǎo)或相關(guān)領(lǐng)域的技術(shù)或知識進(jìn)行 改動。而本領(lǐng)域人員所進(jìn)行的改動和變化不脫離本發(fā)明的精神和范圍,則都應(yīng)在本發(fā)明所附權(quán)利要求的保護(hù)范圍內(nèi)。
權(quán)利要求
1.一種分布式存儲系統(tǒng)時間戳的實現(xiàn)方法,其特征在于,包括以下步驟 所述系統(tǒng)的每個服務(wù)器節(jié)點均維護(hù)一個本地時間戳; 所述每個服務(wù)器節(jié)點周期性向系統(tǒng)中的其他服務(wù)器節(jié)點發(fā)送攜帶有本地維護(hù)的當(dāng)前時間戳的數(shù)據(jù)包; 所述每個服務(wù)器節(jié)點根據(jù)收到的數(shù)據(jù)包,更新本地時間戳。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述每個服務(wù)器節(jié)點的本地維護(hù)的時間戳的初始值為O,從所述系統(tǒng)第一次運(yùn)行起,每秒自增I。
3.根據(jù)權(quán)利要求I或2所述的方法,其特征在于,所述每個服務(wù)器節(jié)點根據(jù)收到的數(shù)據(jù)包,更新本地時間戳步驟具體包括 解析收到的數(shù)據(jù)包,得到時間戳和校驗位; 判斷所述校驗位是否正確,若不正確,則不更新本地時間戳,并丟棄所述時間戳;若正確,則 保存所述時間戳; 判斷所述時間戳的值與上一次保存的時間戳的值之差是否在預(yù)設(shè)的校驗閾值范圍內(nèi),若所述差值不在所述校驗閾值范圍內(nèi),則不更新本地時間戳;若所述差值在所述校驗閾值范圍內(nèi),則 判斷所述時間戳的值是否大于本地當(dāng)前時間戳的值,若是,則用所述時間戳更新本地時間戳;否則,不更新本地時間戳。
4.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述系統(tǒng)中的服務(wù)器節(jié)點每隔I秒,將本地時間戳持久化到本地存儲的文件中。
5.根據(jù)權(quán)利要求I或4所述的方法,其特征在于,若所述系統(tǒng)異常終止后又恢復(fù)正常運(yùn)行,則所述每個服務(wù)器節(jié)點的本地時間戳從其終止前持久化的時間戳處繼續(xù)計時。
6.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述方法中,所述服務(wù)器節(jié)點同一時間僅保存兩個時間戳,當(dāng)有新的時間戳保存進(jìn)來時,先保存的時間戳自動溢出。
7.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述校驗閾值為所述服務(wù)器節(jié)點發(fā)送攜帶有時間戳的數(shù)據(jù)包的周期的I倍到I. 5倍。
8.一種分布式存儲系統(tǒng),包括相互連接的若干個服務(wù)器節(jié)點,其特征在于,所述服務(wù)器節(jié)點包括時間戳維護(hù)模塊、時間戳更新模塊, 所述時間戳維護(hù)模塊,用于為本地提供時間戳,并周期性向系統(tǒng)中的其他服務(wù)器節(jié)點發(fā)送攜帶本地當(dāng)前時間戳的數(shù)據(jù)包; 所述時間戳更新模塊,用于根據(jù)收到的數(shù)據(jù)包,更新所述時間戳維護(hù)模塊的時間戳。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于, 所述時間戳維護(hù)模塊,還用于提供設(shè)置發(fā)送攜帶有本地當(dāng)前時間戳的數(shù)據(jù)包的周期的接口,為所述時間戳每秒步進(jìn)1,且每隔I秒,將所述時間戳持久化到本地存儲的文件中;并在系統(tǒng)異常終止后又恢復(fù)正常運(yùn)行時,從終止前持久化的時間戳處繼續(xù)計時; 所述時間戳更新模塊,還用于提供設(shè)置校驗閾值的接口,解析收到的數(shù)據(jù)包,并判斷解析得到的校驗位是否正確,以及在所述校驗位正確時,保存解析得到的時間戳,并判斷所述解析得到的時間戳的值與上一次保存的時間戳的值之差是否在所述校驗閾值范圍內(nèi),并在所述差值在所述校驗閾值范圍內(nèi)時,判斷所述時間戳的值是否大于所述時間戳維護(hù)模塊的當(dāng)前時間戳的值,以及在所述時間戳的值大于所述時間戳維護(hù)模塊的當(dāng)前時間戳的值時,用所述時間戳更新所述時間戳維護(hù)模塊的時間戳。
10.根據(jù)權(quán)利要求8或9所述的系統(tǒng),其特征在于,所述服務(wù)器節(jié)點還包括時間戳存儲模塊,用于存儲時間戳,并在有新的時間戳存入時,自動溢出先保存的時間戳。
全文摘要
本發(fā)明涉及一種分布式存儲系統(tǒng)及其時間戳的實現(xiàn)方法,上述方法包括上述系統(tǒng)的每個服務(wù)器節(jié)點均維護(hù)一個本地時間戳,上述每個服務(wù)器節(jié)點周期性向系統(tǒng)中的其他服務(wù)器節(jié)點發(fā)送攜帶有本地維護(hù)的當(dāng)前時間戳的數(shù)據(jù)包,上述每個服務(wù)器節(jié)點根據(jù)收到的數(shù)據(jù)包,更新本地時間戳;上述系統(tǒng)包括若干個服務(wù)器節(jié)點,上述服務(wù)器節(jié)點包括時間戳維護(hù)模塊、時間戳更新模塊以及時間戳存儲模塊。本發(fā)明具有非常高的可靠性。
文檔編號H04L29/08GK102821114SQ20111015151
公開日2012年12月12日 申請日期2011年6月7日 優(yōu)先權(quán)日2011年6月7日
發(fā)明者胡歡歡, 郭斌, 陳典強(qiáng), 韓銀俊 申請人:南京中興新軟件有限責(zé)任公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1