国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

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

      文檔序號:12161536閱讀:497來源:國知局
      分布式存儲系統(tǒng)及其時間戳的實現(xiàn)方法與流程

      技術領域

      本發(fā)明涉及云計算技術領域,尤其涉及一種分布式存儲系統(tǒng)及其時間戳的實現(xiàn)方法。



      背景技術:

      云計算(Cloud Computing)是網(wǎng)格計算(Grid Computing)、分布式計算(Distributed Computing)、并行計算(Parallel Computing)、效用計算(Utility Computing)網(wǎng)絡存儲(Network Storage Technologies)、虛擬化(Virtualization)、負載均衡(Load Balance)等傳統(tǒng)計算機技術和網(wǎng)絡技術發(fā)展融合的產(chǎn)物。它旨在通過網(wǎng)絡把多個成本相對較低的計算實體整合成一個具有強大計算能力的系統(tǒng)。分布式存儲系統(tǒng)是云計算范疇中的一個領域,其作用是提供海量數(shù)據(jù)的分布式存儲服務以及高速讀寫訪問的能力。

      在分布式存儲系統(tǒng)中,時間戳的實現(xiàn)是比較難以解決的關鍵問題。分布式存儲系統(tǒng)是由若干服務器節(jié)點和客戶端互相連接構成的;服務器節(jié)點負責數(shù)據(jù)的存儲,客戶端可以對服務器做數(shù)據(jù)的寫入、讀取、更新、刪除等操作。

      一般來說寫入的數(shù)據(jù)不可能只保存在單個服務器節(jié)點上,而是在多臺服務器節(jié)點上保存同一個數(shù)據(jù)的副本,互為備份。當網(wǎng)絡偶然瞬間故障或者硬件、軟件故障,或者用戶對同一個數(shù)據(jù)頻繁、交叉地進行不同的操作,例如,更新、刪除等,則系統(tǒng)內(nèi)不同服務器節(jié)點上的數(shù)據(jù)副本會有不同的值。當用戶再次獲取該數(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)中每個服務器節(jié)點都維持的一個反應該分布式存儲系統(tǒng)存活時間的數(shù)據(jù)。在任一時刻,系統(tǒng)中每個服務器節(jié)點的時間戳必須相同,而且隨著實際時間的增加,逐步遞增。

      在現(xiàn)有的分布式存儲系統(tǒng)中,時間戳的實現(xiàn)有以下幾種方法:

      方法一:在系統(tǒng)中選定一個服務器節(jié)點作為時間服務器,由該時間服務器周期性地向系統(tǒng)中的其它服務器節(jié)點廣播其維護的時間戳,其它服務器節(jié)點收到攜帶有時間戳的數(shù)據(jù)包后,更新其本地時間戳。這種方法是一個中心化的解決方法,其可靠性依賴于系統(tǒng)中的時間服務器的可靠性,如果時間服務器宕機,則影響到整個系統(tǒng)的時間戳;而且,普通服務器節(jié)點中更新的時間戳,是沒有計算數(shù)據(jù)包在網(wǎng)絡中傳輸?shù)臅r間的,也就是說,普通服務器節(jié)點的時間戳與時間服務器的時間戳之間存在微小的時差。另外,這種方法一旦時間服務器發(fā)送故障,則整個系統(tǒng)將無法正確更新時間戳。

      方法二:由系統(tǒng)中的每個服務器節(jié)點從Internet中的網(wǎng)絡時間協(xié)議(Network Time Protocol,NTP)時間服務器獲取權威的時間作為本節(jié)點的本地時間戳。這種方法依賴于外界的服務,一般很少采用。



      技術實現(xiàn)要素:

      本發(fā)明的目的是,提供一種分布式存儲系統(tǒng)及其時間戳的實現(xiàn)方法,以解決現(xiàn)有基于中心化的實現(xiàn)方法可靠性不高的問題。

      本發(fā)明提供了一種分布式存儲系統(tǒng)時間戳的實現(xiàn)方法,包括:

      每個服務器節(jié)點周期性向系統(tǒng)中的其它服務器節(jié)點發(fā)送攜帶有本地維護的當前時間戳的數(shù)據(jù)包;

      所述每個服務器節(jié)點接收所述數(shù)據(jù)包,根據(jù)所述數(shù)據(jù)包的傳輸過程是否異常確定是否更新本地時間戳。

      進一步地,所述根據(jù)所述數(shù)據(jù)包的傳輸過程是否異常確定是否更新本地時間戳,包括:

      根據(jù)解析所述數(shù)據(jù)包得到的校驗位是否正確,判斷所述數(shù)據(jù)包的傳輸過程是否異常;

      若所述校驗位不正確,則數(shù)據(jù)包的傳輸過程異常,丟棄所述時間戳,不更新本地時間戳。

      進一步地,所述根據(jù)所述數(shù)據(jù)包的傳輸過程是否異常確定是否更新本地時間戳,包括:

      根據(jù)解析所述數(shù)據(jù)包得到的時間戳的值,判斷所述數(shù)據(jù)包的傳輸過程是否異常;

      若數(shù)據(jù)包的傳輸過程異常時,則不更新本地時間戳;若數(shù)據(jù)包的傳輸過程正常,則用所述時間戳更新本地時間戳;

      其中,每個服務器節(jié)點均維護一個本地時間戳。

      進一步地,所述根據(jù)解析所述數(shù)據(jù)包得到的時間戳的值,判斷所述數(shù)據(jù)包的傳輸過程是否異常,包括:

      判斷所述時間戳的值與上一次保存的時間戳的值之差是否在預設的校驗閾值范圍內(nèi);

      若差值不在所述校驗閾值范圍內(nèi),則數(shù)據(jù)包的傳輸過程異常;若差值在所述校驗閾值范圍內(nèi),則數(shù)據(jù)包的傳輸過程正常。

      進一步地,所述根據(jù)解析所述數(shù)據(jù)包得到的時間戳的值,判斷所述數(shù)據(jù)包的傳輸過程是否異常,包括:

      判斷所述時間戳的值是否大于本地當前時間戳的值;

      若時間戳的值小于或者等于本地當前時間戳的值,則數(shù)據(jù)包的傳輸過程異常;若時間戳的值大于本地當前時間戳的值,則數(shù)據(jù)包的傳輸過程正常。

      進一步地,所述根據(jù)解析所述數(shù)據(jù)包得到的時間戳的值,判斷所述數(shù)據(jù)包的傳輸過程是否異常,包括:

      判斷所述時間戳的值與上一次保存的時間戳的值之差是否在預設的校驗閾值范圍內(nèi);若差值在所述校驗閾值范圍內(nèi);則

      判斷所述時間戳的值是否大于本地當前時間戳的值;若時間戳的值大于本地當前時間戳的值;則數(shù)據(jù)包的傳輸過程正常;否則,數(shù)據(jù)包的傳輸過程異常。

      進一步地,若所述系統(tǒng)異常終止后又恢復正常運行,則所述每個服務器節(jié)點的本地時間戳從其終止前持久化的時間戳處繼續(xù)計時。

      進一步地,所述服務器節(jié)點同一時間僅保存兩個時間戳,當有新的時間戳保存進來時,先保存的時間戳自動溢出。

      進一步地,所述校驗閾值為所述服務器節(jié)點發(fā)送攜帶有時間戳的數(shù)據(jù)包的周期的1倍到1.5倍。

      本發(fā)明進一步提供了一種分布式存儲系統(tǒng),包括相互連接的若干個服務器節(jié)點,每個服務器節(jié)點包括時間戳維護模塊、時間戳更新模塊,

      所述時間戳維護模塊,用于周期性向系統(tǒng)中的其他服務器節(jié)點發(fā)送攜帶本地當前時間戳的數(shù)據(jù)包;

      所述時間戳更新模塊,用于接收所述數(shù)據(jù)包,根據(jù)所述數(shù)據(jù)包的傳輸過程是否異常確定是否更新本地時間戳。

      進一步地,所述根據(jù)所述數(shù)據(jù)包的傳輸過程是否異常確定是否更新本地時間戳,包括:

      根據(jù)解析所述數(shù)據(jù)包得到的校驗位是否正確,判斷所述數(shù)據(jù)包的傳輸過程是否異常;

      若所述校驗位不正確,則數(shù)據(jù)包的傳輸過程異常,丟棄所述時間戳,不更新本地時間戳。

      進一步地,所述根據(jù)所述數(shù)據(jù)包的傳輸過程是否異常確定是否更新本地時間戳,包括:

      根據(jù)解析所述數(shù)據(jù)包得到的時間戳的值,判斷所述數(shù)據(jù)包的傳輸過程是否異常;

      若數(shù)據(jù)包的傳輸過程異常時,則不更新本地時間戳;若數(shù)據(jù)包的傳輸過程正常,則用所述時間戳更新本地時間戳;

      其中,每個服務器節(jié)點均維護一個本地時間戳。

      進一步地,所述根據(jù)解析所述數(shù)據(jù)包得到的時間戳的值,判斷所述數(shù)據(jù)包的傳輸過程是否異常,包括:

      判斷所述時間戳的值與上一次保存的時間戳的值之差是否在預設的校驗閾值范圍內(nèi);

      若差值不在所述校驗閾值范圍內(nèi),則數(shù)據(jù)包的傳輸過程異常;若差值在所述校驗閾值范圍內(nèi),則數(shù)據(jù)包的傳輸過程正常。

      進一步地,所述根據(jù)解析所述數(shù)據(jù)包得到的時間戳的值,判斷所述數(shù)據(jù)包的傳輸過程是否異常,包括:

      判斷所述時間戳的值是否大于本地當前時間戳的值;

      若時間戳的值小于或者等于本地當前時間戳的值,則數(shù)據(jù)包的傳輸過程異常;若時間戳的值大于本地當前時間戳的值,則數(shù)據(jù)包的傳輸過程正常。

      進一步地,所述根據(jù)解析所述數(shù)據(jù)包得到的時間戳的值,判斷所述數(shù)據(jù)包的傳輸過程是否異常,包括:

      判斷所述時間戳的值與上一次保存的時間戳的值之差是否在預設的校驗閾值范圍內(nèi);若差值在所述校驗閾值范圍內(nèi);則

      判斷所述時間戳的值是否大于本地當前時間戳的值;若時間戳的值大于本地當前時間戳的值;則數(shù)據(jù)包的傳輸過程正常;否則,數(shù)據(jù)包的傳輸過程異常。

      進一步地,所述時間戳維護模塊,還用于在系統(tǒng)異常終止后又恢復正常運行,從終止前持久化的時間戳處繼續(xù)計時。

      進一步地,所述服務器節(jié)點還包括時間戳存儲模塊;

      所述時間戳存儲模塊,用于在有新的時間戳存入時,自動溢出先保存的時間戳。

      進一步地,所述校驗閾值為所述服務器節(jié)點發(fā)送攜帶有時間戳的數(shù)據(jù)包的周期的1倍到1.5倍。

      本發(fā)明通過在每個服務器節(jié)點上均維護一個時間戳,且周期性根據(jù)其他節(jié)點的時間戳更新本地時間戳的方法,保障了系統(tǒng)中每個服務器節(jié)點上的時間戳在任一時刻都相同,本發(fā)明各服務器節(jié)點的時間戳具有非常高的可靠性,是一個非中心化的解決方法,不會因為系統(tǒng)中某個服務器節(jié)點的異常導致全系統(tǒng)時間戳的異常。

      附圖說明

      此處所說明的附圖用來提供對本發(fā)明的進一步理解,構成說明書的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構成對本發(fā)明技術方案的限制。

      圖1是本發(fā)明分布式存儲系統(tǒng)時間戳的實現(xiàn)方法流程圖;

      圖2是本發(fā)明分布式存儲系統(tǒng)的原理框圖。

      具體實施方式

      為了使本發(fā)明所要解決的技術問題、技術方案及有益效果更加清楚、明白,以下結合附圖和實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。

      如圖1所示,是本發(fā)明分布式存儲系統(tǒng)時間戳的實現(xiàn)方法流程圖,包括以下步驟:

      步驟S001:分布式存儲系統(tǒng)的每個服務器節(jié)點均維護一個本地時間戳;

      各服務器節(jié)點每隔1秒將本地時間戳持久化到本地存儲的文件中。

      各服務器節(jié)點本地維護的時間戳的初始值均為0,從分布式存儲系統(tǒng)第一次運行起,各服務器節(jié)點的本地時間戳每秒自增1;

      若分布式存儲系統(tǒng)異常終止后又恢復正常運行,則各服務器節(jié)點的本地時間戳從其終止前持久化的時間戳處繼續(xù)計時,比如,若終止前,持久化的時間戳的值為120,則系統(tǒng)正常運行后,即從120開始繼續(xù)計時。

      步驟S002:各服務器節(jié)點周期性向系統(tǒng)中的其他服務器節(jié)點發(fā)送攜帶有本地維護的當前時間戳的數(shù)據(jù)包;

      各服務器節(jié)點通過系統(tǒng)初始化時建立的長鏈接向其他服務器節(jié)點發(fā)送攜帶有本地維護的當前時間戳的數(shù)據(jù)包。

      例如,可以預設各服務器節(jié)點每隔60秒發(fā)送一次攜帶有本地時間戳的數(shù)據(jù)包給系統(tǒng)中的其他服務器節(jié)點。

      步驟S003:各服務器節(jié)點解析收到的數(shù)據(jù)包,得到時間戳TN和校驗位;

      步驟S004:判斷上述解析得到的校驗位是否正確,若是,則執(zhí)行步驟S005;否則,執(zhí)行步驟S009;

      本發(fā)明中,當判斷出解析得到的校驗位錯誤時,則解析得到的時間戳TN被丟棄。

      步驟S005:保存上述時間戳TN;

      本發(fā)明中,各服務器節(jié)點同一時間僅保存兩個時間戳,當有新的時間戳保存進來時,先保存的時間戳自動溢出。比如,假設當前周期為第N個周期,且其前兩個周期的校驗位都正確,則在保存第N個周期收到的數(shù)據(jù)包攜帶的時間戳TN之前,保存的時間戳為第N-2個周期的時間戳TN-2和第N-1個周期的時間戳TN-1,當保存第N個周期的時間戳TN時,則第N-2個周期的時間戳TN-2自動溢出。

      步驟S006:判斷上述時間戳TN的值與上一次保存的時間戳TN-1的值之差是否在預設的校驗閾值范圍內(nèi),若是,則執(zhí)行步驟S007;否則,執(zhí)行步驟S009;

      上述校驗閾值可設置為本服務器節(jié)點發(fā)送攜帶有時間戳的數(shù)據(jù)包的周期的1倍到1.5倍,比如,若本服務器節(jié)點發(fā)送攜帶有時間戳的數(shù)據(jù)包的周期為60秒,則校驗閾值為60~90。若TN-TN-1不在校驗閾值范圍內(nèi),則表示該數(shù)據(jù)包在傳輸過程中發(fā)生異常。

      步驟S007:判斷上述解析得到的時間戳TN的值是否大于本地維護的當前時間戳的值,若是,則執(zhí)行步驟S008;否則,執(zhí)行步驟S009;

      步驟S005、S006以及S007有效地保障了各服務器節(jié)點上時間戳的一致,抑制了由于攜帶時間戳的數(shù)據(jù)包在傳輸過程中的異常而導致的其他服務器節(jié)點的時間戳異常的情況。

      步驟S008:用上述時間戳TN更新本地時間戳,本周期執(zhí)行結束;

      步驟S009:不更新本地時間戳,本周期執(zhí)行結束。

      如圖2所示,是本發(fā)明分布式存儲系統(tǒng)的原理框圖,本實施例假設分布式存儲系統(tǒng)包括3個服務器節(jié)點,分別為10、20、30,每個服務器節(jié)點均包括時間戳維護模塊01、時間戳更新模塊02以及時間戳存儲模塊03,

      時間戳維護模塊01,用于為本地提供時間戳,為上述時間戳每秒步進1,且每隔1秒,將上述時間戳持久化到本地存儲的文件中;還用于提供設置發(fā)送攜帶有本地維護的當前時間戳的數(shù)據(jù)包的周期的接口,并周期性向系統(tǒng)中的其他服務器節(jié)點發(fā)送攜帶有本地當前時間戳的數(shù)據(jù)包,并在系統(tǒng)異常終止后又恢復正常運行時,從終止前持久化的時間戳處繼續(xù)計時;

      時間戳更新模塊02,提供設置校驗閾值的接口,解析收到的數(shù)據(jù)包,并判斷解析得到的校驗位是否正確,在上述校驗位正確時,將解析得到的時間戳TN保存到時間戳存儲模塊03中,并判斷上述時間戳TN的值與上一次保存的時間戳TN-1的值之差是否在上述校驗閾值范圍內(nèi),并在上述差值在上述校驗閾值范圍內(nèi)時,判斷上述時間戳TN的值是否大于時間戳維護模塊01的當前時間戳的值,以及在上述時間戳TN的值大于時間戳維護模塊01的當前時間戳的值時,用上述時間戳TN更新時間戳維護模塊01的時間戳。

      時間戳存儲模塊03,用于存儲解析得到的時間戳TN,并在有新的時間戳存入時,自動溢出先保存的時間戳。

      上述說明示出并描述了本發(fā)明的優(yōu)選實施例,但如前所述,應當理解本發(fā)明并非局限于本文所披露的形式,不應看作是對其他實施例的排除,而可用于各種其他組合、修改和環(huán)境,并能夠在本文所述發(fā)明構想范圍內(nèi),通過上述教導或相關領域的技術或知識進行改動。而本領域人員所進行的改動和變化不脫離本發(fā)明的精神和范圍,則都應在本發(fā)明所附權利要求的保護范圍內(nèi)。

      當前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1