專利名稱:分布式存儲(chǔ)系統(tǒng)及其時(shí)間戳的實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及云計(jì)算技術(shù)領(lǐng)域,尤其涉及一種分布式存儲(chǔ)系統(tǒng)及其時(shí)間戳的實(shí)現(xiàn)方法。
背景技術(shù):
云計(jì)算(Cloud Computing)是網(wǎng)格計(jì)算(G rid Computing)、分布式計(jì)算(Distributed Computing)、并行計(jì)算(Parallel Computing)、效用計(jì)算(UtilityComputing)網(wǎng)絡(luò)存儲(chǔ)(Network Storage Technologies)、虛擬化(Virtualization)、負(fù)載均衡(Load Balance)等傳統(tǒng)計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)發(fā)展融合的產(chǎn)物。它旨在通過網(wǎng)絡(luò)把多個(gè)成本相對(duì)較低的計(jì)算實(shí)體整合成一個(gè)具有強(qiáng)大計(jì)算能力的系統(tǒng)。分布式存儲(chǔ)系統(tǒng)是云計(jì)算范疇中的一個(gè)領(lǐng)域,其作用是提供海量數(shù)據(jù)的分布式存儲(chǔ)服務(wù)以及高速讀寫訪問的能力。在分布式存儲(chǔ)系統(tǒng)中,時(shí)間戳的實(shí)現(xiàn)是比較難以解決的關(guān)鍵問題。分布式存儲(chǔ)系統(tǒng)是由若干服務(wù)器節(jié)點(diǎn)和客戶端互相連接構(gòu)成的;服務(wù)器節(jié)點(diǎn)負(fù)責(zé)數(shù)據(jù)的存儲(chǔ),客戶端可以對(duì)服務(wù)器做數(shù)據(jù)的寫入、讀取、更新、刪除等操作。一般來說寫入的數(shù)據(jù)不可能只保存在單個(gè)服務(wù)器節(jié)點(diǎn)上,而是在多臺(tái)服務(wù)器節(jié)點(diǎn)上保存同一個(gè)數(shù)據(jù)的副本,互為備份。當(dāng)網(wǎng)絡(luò)偶然瞬間故障或者硬件、軟件故障,或者用戶對(duì)同一個(gè)數(shù)據(jù)頻繁、交叉地進(jìn)行不同的操作,例如,更新、刪除等,則系統(tǒng)內(nèi)不同服務(wù)器節(jié)點(diǎn)上的數(shù)據(jù)副本會(huì)有不同的值。當(dāng)用戶再次獲取該數(shù)據(jù)時(shí),會(huì)發(fā)生取得的數(shù)據(jù)不是其最后更新后的值,背離了用戶的需求。為了保障在分布式存儲(chǔ)系統(tǒng)中,用戶取得的數(shù)據(jù)是其最后更新的數(shù)據(jù),即保障分布式存儲(chǔ)系統(tǒng)中數(shù)據(jù)的一致性,每個(gè)數(shù)據(jù)在實(shí)際存儲(chǔ)時(shí),還要加上一些屬性信息。例如,時(shí)間戳。這樣用戶在獲取數(shù)據(jù)的時(shí)候,可以根據(jù)時(shí)間戳的大小,返回一個(gè)最大時(shí)間戳的數(shù)據(jù)給用戶。所謂分布式存儲(chǔ)系統(tǒng)中的時(shí)間戳是指系統(tǒng)中每個(gè)服務(wù)器節(jié)點(diǎn)都維持的一個(gè)反應(yīng)該分布式存儲(chǔ)系統(tǒng)存活時(shí)間的數(shù)據(jù)。在任一時(shí)刻,系統(tǒng)中每個(gè)服務(wù)器節(jié)點(diǎn)的時(shí)間戳必須相同,而且隨著實(shí)際時(shí)間的增加,逐步遞增。在現(xiàn)有的分布式存儲(chǔ)系統(tǒng)中,時(shí)間戳的實(shí)現(xiàn)有以下幾種方法一在系統(tǒng)中選定一個(gè)服務(wù)器節(jié)點(diǎn)作為時(shí)間服務(wù)器,由該時(shí)間服務(wù)器周期性地向系統(tǒng)中的其它服務(wù)器節(jié)點(diǎn)廣播其維護(hù)的時(shí)間戳,其它服務(wù)器節(jié)點(diǎn)收到攜帶有時(shí)間戳的數(shù)據(jù)包后,更新其本地時(shí)間戳。這種方法是一個(gè)中心化的解決方法,其可靠性依賴于系統(tǒng)中的時(shí)間服務(wù)器的可靠性,如果時(shí)間服務(wù)器宕機(jī),則影響到整個(gè)系統(tǒng)的時(shí)間戳;而且,普通服務(wù)器節(jié)點(diǎn)中更新的時(shí)間戳,是沒有計(jì)算數(shù)據(jù)包在網(wǎng)絡(luò)中傳輸?shù)臅r(shí)間的,也就是說,普通服務(wù)器節(jié)點(diǎn)的時(shí)間戳與時(shí)間服務(wù)器的時(shí)間戳之間存在微小的時(shí)差。另外,這種方法一旦時(shí)間服務(wù)器發(fā)送故障,則整個(gè)系統(tǒng)將無法正確更新時(shí)間戳。方法二 由系統(tǒng)中的每個(gè)服務(wù)器節(jié)點(diǎn)從Internet中的網(wǎng)絡(luò)時(shí)間協(xié)議(NetworkTime Protocol, NTP)時(shí)間服務(wù)器獲取權(quán)威的時(shí)間作為本節(jié)點(diǎn)的本地時(shí)間戳。這種方法依賴于外界的服務(wù),一般很少采用。
發(fā)明內(nèi)容
本發(fā)明的目的是,提供一種分布式存儲(chǔ)系統(tǒng)及其時(shí)間戳的實(shí)現(xiàn)方法,以解決現(xiàn)有基于中心化的實(shí)現(xiàn)方法可靠性不高的問題。本發(fā)明提供了一種分布式存儲(chǔ)系統(tǒng)時(shí)間戳的實(shí)現(xiàn)方法,包括以下步驟上述系統(tǒng)的每個(gè)服務(wù)器節(jié)點(diǎn)均維護(hù)一個(gè)本地時(shí)間戳;
上述每個(gè)服務(wù)器節(jié)點(diǎn)周期性向系統(tǒng)中的其他服務(wù)器節(jié)點(diǎn)發(fā)送攜帶有本地維護(hù)的當(dāng)前時(shí)間戳的數(shù)據(jù)包;上述每個(gè)服務(wù)器節(jié)點(diǎn)根據(jù)收到的數(shù)據(jù)包,更新本地時(shí)間戳。優(yōu)選地,上述每個(gè)服務(wù)器節(jié)點(diǎn)的本地維護(hù)的時(shí)間戳的初始值為0,從上述系統(tǒng)第一次運(yùn)行起,每秒自增I。優(yōu)選地,上述每個(gè)服務(wù)器節(jié)點(diǎn)根據(jù)收到的數(shù)據(jù)包,更新本地時(shí)間戳步驟具體包括解析收到的數(shù)據(jù)包,得到時(shí)間戳和校驗(yàn)位;判斷上述校驗(yàn)位是否正確,若不正確,則不更新本地時(shí)間戳,并丟棄上述時(shí)間戳;若正確,則保存上述時(shí)間戳;判斷上述時(shí)間戳的值與上一次保存的時(shí)間戳的值之差是否在預(yù)設(shè)的校驗(yàn)閾值范圍內(nèi),若上述差值不在上述校驗(yàn)閾值范圍內(nèi),則不更新本地時(shí)間戳;若上述差值在上述校驗(yàn)閾值范圍內(nèi),則判斷上述時(shí)間戳的值是否大于本地當(dāng)前時(shí)間戳的值,若是,則用上述時(shí)間戳更新本地時(shí)間戳;否則,不更新本地時(shí)間戳。優(yōu)選地,上述系統(tǒng)中的服務(wù)器節(jié)點(diǎn)每隔I秒,將本地時(shí)間戳持久化到本地存儲(chǔ)的文件中。優(yōu)選地,若上述系統(tǒng)異常終止后又恢復(fù)正常運(yùn)行,則上述每個(gè)服務(wù)器節(jié)點(diǎn)的本地時(shí)間戳從其終止前持久化的時(shí)間戳處繼續(xù)計(jì)時(shí)。優(yōu)選地,上述方法中,上述服務(wù)器節(jié)點(diǎn)同一時(shí)間僅保存兩個(gè)時(shí)間戳,當(dāng)有新的時(shí)間戳保存進(jìn)來時(shí),先保存的時(shí)間戳自動(dòng)溢出。優(yōu)選地,上述校驗(yàn)閾值為上述服務(wù)器節(jié)點(diǎn)發(fā)送攜帶有時(shí)間戳的數(shù)據(jù)包的周期的I倍到I. 5倍。本發(fā)明進(jìn)一步提供了一種分布式存儲(chǔ)系統(tǒng),包括相互連接的若干個(gè)服務(wù)器節(jié)點(diǎn),上述服務(wù)器節(jié)點(diǎn)包括時(shí)間戳維護(hù)模塊、時(shí)間戳更新模塊,上述時(shí)間戳維護(hù)模塊,用于為本地提供時(shí)間戳,并周期性向系統(tǒng)中的其他服務(wù)器節(jié)點(diǎn)發(fā)送攜帶本地當(dāng)前時(shí)間戳的數(shù)據(jù)包;上述時(shí)間戳更新模塊,用于根據(jù)收到的數(shù)據(jù)包,更新上述時(shí)間戳維護(hù)模塊的時(shí)間戳。優(yōu)選地,上述時(shí)間戳維護(hù)模塊,還用于提供設(shè)置發(fā)送攜帶有本地當(dāng)前時(shí)間戳的數(shù)據(jù)包周期的接口,為上述時(shí)間戳每秒步進(jìn)1,且每隔I秒,將上述時(shí)間戳持久化到本地存儲(chǔ)的文件中;并在系統(tǒng)異常終止后又恢復(fù)正常運(yùn)行時(shí),從終止前持久化的時(shí)間戳處繼續(xù)計(jì)時(shí);上述時(shí)間戳更新模塊,還用于提供設(shè)置校驗(yàn)閾值的接口,解析收到的數(shù)據(jù)包,并判斷解析得到的校驗(yàn)位是否正確,以及在上述校驗(yàn)位正確時(shí),保存解析得到的時(shí)間戳,并判斷上述解析得到的時(shí)間戳的值與上一次保存的時(shí)間戳的值之差是否在上述校驗(yàn)閾值范圍內(nèi),并在上述差值在上述校驗(yàn)閾值范圍內(nèi)時(shí),判斷上述時(shí)間戳的值是否大于上述時(shí)間戳維護(hù)模塊的當(dāng)前時(shí)間戳的值,以及在上述時(shí)間戳的值大于上述時(shí)間戳維護(hù)模塊的當(dāng)前時(shí)間戳的值時(shí),用上述時(shí)間戳更新上述時(shí)間戳維護(hù)模塊的時(shí)間戳。優(yōu)選地,上述服務(wù)器節(jié)點(diǎn)還包括時(shí)間戳存儲(chǔ)模塊,用于存儲(chǔ)時(shí)間戳,并在有新的時(shí)間戳存入時(shí),自動(dòng)溢出先保存的時(shí)間戳。本發(fā)明通過在每個(gè)服務(wù)器節(jié)點(diǎn)上均維護(hù)一個(gè)時(shí)間戳,且周期性根據(jù)其他節(jié)點(diǎn)的時(shí)間戳更新本地時(shí)間戳的方法,保障了系統(tǒng)中每個(gè)服務(wù)器節(jié)點(diǎn)上的時(shí)間戳在任一時(shí)刻都相同,本發(fā)明各服務(wù)器節(jié)點(diǎn)的時(shí)間戳具有非常高的可靠性,是一個(gè)非中心化的解決方法,不會(huì) 因?yàn)橄到y(tǒng)中某個(gè)服務(wù)器節(jié)點(diǎn)的異常導(dǎo)致全系統(tǒng)時(shí)間戳的異常。
此處所說明的附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本發(fā)明的一部分,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中圖I是本發(fā)明分布式存儲(chǔ)系統(tǒng)時(shí)間戳的實(shí)現(xiàn)方法流程圖;圖2是本發(fā)明分布式存儲(chǔ)系統(tǒng)的原理框圖。
具體實(shí)施例方式為了使本發(fā)明所要解決的技術(shù)問題、技術(shù)方案及有益效果更加清楚、明白,以下結(jié)合附圖和實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。如圖I所示,是本發(fā)明分布式存儲(chǔ)系統(tǒng)時(shí)間戳的實(shí)現(xiàn)方法流程圖,包括以下步驟步驟SOOl :分布式存儲(chǔ)系統(tǒng)的每個(gè)服務(wù)器節(jié)點(diǎn)均維護(hù)一個(gè)本地時(shí)間戳;各服務(wù)器節(jié)點(diǎn)每隔I秒將本地時(shí)間戳持久化到本地存儲(chǔ)的文件中。各服務(wù)器節(jié)點(diǎn)本地維護(hù)的時(shí)間戳的初始值均為0,從分布式存儲(chǔ)系統(tǒng)第一次運(yùn)行起,各服務(wù)器節(jié)點(diǎn)的本地時(shí)間戳每秒自增I ;若分布式存儲(chǔ)系統(tǒng)異常終止后又恢復(fù)正常運(yùn)行,則各服務(wù)器節(jié)點(diǎn)的本地時(shí)間戳從其終止前持久化的時(shí)間戳處繼續(xù)計(jì)時(shí),比如,若終止前,持久化的時(shí)間戳的值為120,則系統(tǒng)正常運(yùn)行后,即從120開始繼續(xù)計(jì)時(shí)。步驟S002 :各服務(wù)器節(jié)點(diǎn)周期性向系統(tǒng)中的其他服務(wù)器節(jié)點(diǎn)發(fā)送攜帶有本地維護(hù)的當(dāng)前時(shí)間戳的數(shù)據(jù)包;各服務(wù)器節(jié)點(diǎn)通過系統(tǒng)初始化時(shí)建立的長(zhǎng)鏈接向其他服務(wù)器節(jié)點(diǎn)發(fā)送攜帶有本地維護(hù)的當(dāng)前時(shí)間戳的數(shù)據(jù)包。例如,可以預(yù)設(shè)各服務(wù)器節(jié)點(diǎn)每隔60秒發(fā)送一次攜帶有本地時(shí)間戳的數(shù)據(jù)包給系統(tǒng)中的其他服務(wù)器節(jié)點(diǎn)。
步驟S003 :各服務(wù)器節(jié)點(diǎn)解析收到的數(shù)據(jù)包,得到時(shí)間戳Tn和校驗(yàn)位;步驟S004 :判斷上述解析得到的校驗(yàn)位是否正確,若是,則執(zhí)行步驟S005 ;否則,執(zhí)行步驟S009 ;本發(fā)明中,當(dāng)判斷出解析得到的校驗(yàn)位錯(cuò)誤時(shí),則解析得到的時(shí)間戳Tn被丟棄。步驟S005 :保存上述時(shí)間戳Tn ;本發(fā)明中,各服務(wù)器節(jié)點(diǎn)同一時(shí)間僅保存兩個(gè)時(shí)間戳,當(dāng)有新的時(shí)間戳保存進(jìn)來時(shí),先保存的時(shí)間戳自動(dòng)溢出。比如,假設(shè)當(dāng)前周期為第N個(gè)周期,且其前兩個(gè)周期的校驗(yàn)位都正確,則在保存第N個(gè)周期收到的數(shù)據(jù)包攜 帶的時(shí)間戳Tn之前,保存的時(shí)間戳為第N-2個(gè)周期的時(shí)間戳TN_2和第N-I個(gè)周期的時(shí)間戳Tn+當(dāng)保存第N個(gè)周期的時(shí)間戳Tn時(shí),則第N-2個(gè)周期的時(shí)間戳TN_2自動(dòng)溢出。步驟S006 :判斷上述時(shí)間戳Tn的值與上一次保存的時(shí)間戳Tim的值之差是否在預(yù)設(shè)的校驗(yàn)閾值范圍內(nèi),若是,則執(zhí)行步驟S007 ;否則,執(zhí)行步驟S009 ;上述校驗(yàn)閾值可設(shè)置為本服務(wù)器節(jié)點(diǎn)發(fā)送攜帶有時(shí)間戳的數(shù)據(jù)包的周期的I倍到I. 5倍,比如,若本服務(wù)器節(jié)點(diǎn)發(fā)送攜帶有時(shí)間戳的數(shù)據(jù)包的周期為60秒,則校驗(yàn)閾值為60 90。若Tn-Tim不在校驗(yàn)閾值范圍內(nèi),則表示該數(shù)據(jù)包在傳輸過程中發(fā)生異常。步驟S007 :判斷上述解析得到的時(shí)間戳Tn的值是否大于本地維護(hù)的當(dāng)前時(shí)間戳的值,若是,則執(zhí)行步驟S008 ;否則,執(zhí)行步驟S009 ;步驟S005、S006以及S007有效地保障了各服務(wù)器節(jié)點(diǎn)上時(shí)間戳的一致,抑制了由于攜帶時(shí)間戳的數(shù)據(jù)包在傳輸過程中的異常而導(dǎo)致的其他服務(wù)器節(jié)點(diǎn)的時(shí)間戳異常的情況。步驟S008 :用上述時(shí)間戳Tn更新本地時(shí)間戳,本周期執(zhí)行結(jié)束;步驟S009 :不更新本地時(shí)間戳,本周期執(zhí)行結(jié)束。如圖2所示,是本發(fā)明分布式存儲(chǔ)系統(tǒng)的原理框圖,本實(shí)施例假設(shè)分布式存儲(chǔ)系統(tǒng)包括3個(gè)服務(wù)器節(jié)點(diǎn),分別為10、20、30,每個(gè)服務(wù)器節(jié)點(diǎn)均包括時(shí)間戳維護(hù)模塊01、時(shí)間戳更新模塊02以及時(shí)間戳存儲(chǔ)模塊03,時(shí)間戳維護(hù)模塊01,用于為本地提供時(shí)間戳,為上述時(shí)間戳每秒步進(jìn)1,且每隔I秒,將上述時(shí)間戳持久化到本地存儲(chǔ)的文件中;還用于提供設(shè)置發(fā)送攜帶有本地維護(hù)的當(dāng)前時(shí)間戳的數(shù)據(jù)包的周期的接口,并周期性向系統(tǒng)中的其他服務(wù)器節(jié)點(diǎn)發(fā)送攜帶有本地當(dāng)前時(shí)間戳的數(shù)據(jù)包,并在系統(tǒng)異常終止后又恢復(fù)正常運(yùn)行時(shí),從終止前持久化的時(shí)間戳處繼續(xù)計(jì)時(shí);時(shí)間戳更新模塊02,提供設(shè)置校驗(yàn)閾值的接口,解析收到的數(shù)據(jù)包,并判斷解析得到的校驗(yàn)位是否正確,在上述校驗(yàn)位正確時(shí),將解析得到的時(shí)間戳Tn保存到時(shí)間戳存儲(chǔ)模塊03中,并判斷上述時(shí)間戳Tn的值與上一次保存的時(shí)間戳Tim的值之差是否在上述校驗(yàn)閾值范圍內(nèi),并在上述差值在上述校驗(yàn)閾值范圍內(nèi)時(shí),判斷上述時(shí)間戳Tn的值是否大于時(shí)間戳維護(hù)模塊01的當(dāng)前時(shí)間戳的值,以及在上述時(shí)間戳Tn的值大于時(shí)間戳維護(hù)模塊01的當(dāng)前時(shí)間戳的值時(shí),用上述時(shí)間戳Tn更新時(shí)間戳維護(hù)模塊01的時(shí)間戳。時(shí)間戳存儲(chǔ)模塊03,用于存儲(chǔ)解析得到的時(shí)間戳TN,并在有新的時(shí)間戳存入時(shí),自動(dòng)溢出先保存的時(shí)間戳。上述說明示出并描述了本發(fā)明的優(yōu)選實(shí)施例,但如前所述,應(yīng)當(dāng)理解本發(fā)明并非局限于本文所披露的形式,不應(yīng)看作是對(duì)其他實(shí)施例的排除,而可用于各種其他組合、修改和環(huán)境,并能夠在本文所述發(fā)明構(gòu)想范圍內(nèi),通過上述教導(dǎo)或相關(guān)領(lǐng)域的技術(shù)或知識(shí)進(jìn)行 改動(dòng)。而本領(lǐng)域人員所進(jìn)行的改動(dòng)和變化不脫離本發(fā)明的精神和范圍,則都應(yīng)在本發(fā)明所附權(quán)利要求的保護(hù)范圍內(nèi)。
權(quán)利要求
1.一種分布式存儲(chǔ)系統(tǒng)時(shí)間戳的實(shí)現(xiàn)方法,其特征在于,包括以下步驟 所述系統(tǒng)的每個(gè)服務(wù)器節(jié)點(diǎn)均維護(hù)一個(gè)本地時(shí)間戳; 所述每個(gè)服務(wù)器節(jié)點(diǎn)周期性向系統(tǒng)中的其他服務(wù)器節(jié)點(diǎn)發(fā)送攜帶有本地維護(hù)的當(dāng)前時(shí)間戳的數(shù)據(jù)包; 所述每個(gè)服務(wù)器節(jié)點(diǎn)根據(jù)收到的數(shù)據(jù)包,更新本地時(shí)間戳。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述每個(gè)服務(wù)器節(jié)點(diǎn)的本地維護(hù)的時(shí)間戳的初始值為O,從所述系統(tǒng)第一次運(yùn)行起,每秒自增I。
3.根據(jù)權(quán)利要求I或2所述的方法,其特征在于,所述每個(gè)服務(wù)器節(jié)點(diǎn)根據(jù)收到的數(shù)據(jù)包,更新本地時(shí)間戳步驟具體包括 解析收到的數(shù)據(jù)包,得到時(shí)間戳和校驗(yàn)位; 判斷所述校驗(yàn)位是否正確,若不正確,則不更新本地時(shí)間戳,并丟棄所述時(shí)間戳;若正確,則 保存所述時(shí)間戳; 判斷所述時(shí)間戳的值與上一次保存的時(shí)間戳的值之差是否在預(yù)設(shè)的校驗(yàn)閾值范圍內(nèi),若所述差值不在所述校驗(yàn)閾值范圍內(nèi),則不更新本地時(shí)間戳;若所述差值在所述校驗(yàn)閾值范圍內(nèi),則 判斷所述時(shí)間戳的值是否大于本地當(dāng)前時(shí)間戳的值,若是,則用所述時(shí)間戳更新本地時(shí)間戳;否則,不更新本地時(shí)間戳。
4.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述系統(tǒng)中的服務(wù)器節(jié)點(diǎn)每隔I秒,將本地時(shí)間戳持久化到本地存儲(chǔ)的文件中。
5.根據(jù)權(quán)利要求I或4所述的方法,其特征在于,若所述系統(tǒng)異常終止后又恢復(fù)正常運(yùn)行,則所述每個(gè)服務(wù)器節(jié)點(diǎn)的本地時(shí)間戳從其終止前持久化的時(shí)間戳處繼續(xù)計(jì)時(shí)。
6.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述方法中,所述服務(wù)器節(jié)點(diǎn)同一時(shí)間僅保存兩個(gè)時(shí)間戳,當(dāng)有新的時(shí)間戳保存進(jìn)來時(shí),先保存的時(shí)間戳自動(dòng)溢出。
7.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述校驗(yàn)閾值為所述服務(wù)器節(jié)點(diǎn)發(fā)送攜帶有時(shí)間戳的數(shù)據(jù)包的周期的I倍到I. 5倍。
8.一種分布式存儲(chǔ)系統(tǒng),包括相互連接的若干個(gè)服務(wù)器節(jié)點(diǎn),其特征在于,所述服務(wù)器節(jié)點(diǎn)包括時(shí)間戳維護(hù)模塊、時(shí)間戳更新模塊, 所述時(shí)間戳維護(hù)模塊,用于為本地提供時(shí)間戳,并周期性向系統(tǒng)中的其他服務(wù)器節(jié)點(diǎn)發(fā)送攜帶本地當(dāng)前時(shí)間戳的數(shù)據(jù)包; 所述時(shí)間戳更新模塊,用于根據(jù)收到的數(shù)據(jù)包,更新所述時(shí)間戳維護(hù)模塊的時(shí)間戳。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于, 所述時(shí)間戳維護(hù)模塊,還用于提供設(shè)置發(fā)送攜帶有本地當(dāng)前時(shí)間戳的數(shù)據(jù)包的周期的接口,為所述時(shí)間戳每秒步進(jìn)1,且每隔I秒,將所述時(shí)間戳持久化到本地存儲(chǔ)的文件中;并在系統(tǒng)異常終止后又恢復(fù)正常運(yùn)行時(shí),從終止前持久化的時(shí)間戳處繼續(xù)計(jì)時(shí); 所述時(shí)間戳更新模塊,還用于提供設(shè)置校驗(yàn)閾值的接口,解析收到的數(shù)據(jù)包,并判斷解析得到的校驗(yàn)位是否正確,以及在所述校驗(yàn)位正確時(shí),保存解析得到的時(shí)間戳,并判斷所述解析得到的時(shí)間戳的值與上一次保存的時(shí)間戳的值之差是否在所述校驗(yàn)閾值范圍內(nèi),并在所述差值在所述校驗(yàn)閾值范圍內(nèi)時(shí),判斷所述時(shí)間戳的值是否大于所述時(shí)間戳維護(hù)模塊的當(dāng)前時(shí)間戳的值,以及在所述時(shí)間戳的值大于所述時(shí)間戳維護(hù)模塊的當(dāng)前時(shí)間戳的值時(shí),用所述時(shí)間戳更新所述時(shí)間戳維護(hù)模塊的時(shí)間戳。
10.根據(jù)權(quán)利要求8或9所述的系統(tǒng),其特征在于,所述服務(wù)器節(jié)點(diǎn)還包括時(shí)間戳存儲(chǔ)模塊,用于存儲(chǔ)時(shí)間戳,并在有新的時(shí)間戳存入時(shí),自動(dòng)溢出先保存的時(shí)間戳。
全文摘要
本發(fā)明涉及一種分布式存儲(chǔ)系統(tǒng)及其時(shí)間戳的實(shí)現(xiàn)方法,上述方法包括上述系統(tǒng)的每個(gè)服務(wù)器節(jié)點(diǎn)均維護(hù)一個(gè)本地時(shí)間戳,上述每個(gè)服務(wù)器節(jié)點(diǎn)周期性向系統(tǒng)中的其他服務(wù)器節(jié)點(diǎn)發(fā)送攜帶有本地維護(hù)的當(dāng)前時(shí)間戳的數(shù)據(jù)包,上述每個(gè)服務(wù)器節(jié)點(diǎn)根據(jù)收到的數(shù)據(jù)包,更新本地時(shí)間戳;上述系統(tǒng)包括若干個(gè)服務(wù)器節(jié)點(diǎn),上述服務(wù)器節(jié)點(diǎn)包括時(shí)間戳維護(hù)模塊、時(shí)間戳更新模塊以及時(shí)間戳存儲(chǔ)模塊。本發(fā)明具有非常高的可靠性。
文檔編號(hào)H04L29/08GK102821114SQ20111015151
公開日2012年12月12日 申請(qǐng)日期2011年6月7日 優(yōu)先權(quán)日2011年6月7日
發(fā)明者胡歡歡, 郭斌, 陳典強(qiáng), 韓銀俊 申請(qǐng)人:南京中興新軟件有限責(zé)任公司