国产精品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>

      一種數(shù)據(jù)塊更新方法及設備的制造方法

      文檔序號:10626986閱讀:327來源:國知局
      一種數(shù)據(jù)塊更新方法及設備的制造方法
      【專利摘要】本申請公開了一種數(shù)據(jù)塊更新方法,當需要對數(shù)據(jù)塊進行更新時,客戶端對數(shù)據(jù)塊的更新進行定序并分配版本,然后向存儲系統(tǒng)中當前包含該數(shù)據(jù)塊有效副本的所有副本服務器發(fā)送數(shù)據(jù)塊更新請求,隨后接收由正常副本服務器發(fā)送的響應消息,然后根據(jù)在預配置的超時時間內(nèi)從正常副本服務器所接收到的響應消息的數(shù)量以及預設的配置閾值確認是否將數(shù)據(jù)塊的版本修改為更新版本。從而在不增加副本服務器負載的前提下,保證了各個副本服務器中數(shù)據(jù)塊的一致性。
      【專利說明】
      一種數(shù)據(jù)塊更新方法及設備
      技術領域
      [0001]本申請涉及通信技術領域,特別涉及一種數(shù)據(jù)塊更新方法。本申請同時還涉及一種數(shù)據(jù)塊更新設備。
      【背景技術】
      [0002]在分布式存儲系統(tǒng)中(如:分布式文件系統(tǒng),分布式塊存儲系統(tǒng))為了達到對磁盤,網(wǎng)絡或服務器等故障的容錯,提高系統(tǒng)可用性及性能等目的,會將數(shù)據(jù)塊存儲多個副本。如何管理系統(tǒng)中多數(shù)據(jù)副本的一致性,是系統(tǒng)實現(xiàn)容錯性,高可用性及提高系統(tǒng)性能等目的的關鍵技術。
      [0003]為了解決存儲系統(tǒng)中多數(shù)據(jù)副本的一致性,現(xiàn)有的技術方案主要為:從多個副本服務器中選擇一個作為主副本服務器。每次請求先由主副本服務器接收和處理,然后再轉(zhuǎn)發(fā)至其他副本服務器處理,其他副本服務器處理完成后,然后由主副本服務器對請求進行響應。主副本服務器對該數(shù)據(jù)塊的所有更新請求,統(tǒng)一定序并分配版本,各副本服務器對更新請求的版本進行校驗,以此來保證數(shù)據(jù)更新的一致性。在主副本服務器發(fā)生宕機后,為了達到容錯和高可用的目的,需要在多個副本服務器之間進行重新選舉。在副本服務器總數(shù)為2N+1,且參與選舉的副本服務器數(shù)大于N+1時,選擇副本版本最高的服務器為主副本服務器。
      [0004]在實現(xiàn)本申請的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術至少存在以下技術問題:
      [0005]I)每次請求先由主副本服務器接收和處理,然后再轉(zhuǎn)發(fā)至其他副本服務器處理。在這個過程中,每次更新請求的處理流程增加了一次從主副本服務器向其他副本服務器轉(zhuǎn)發(fā)請求的RPC (遠程過程方法調(diào)用),會增加了一次網(wǎng)絡傳輸延遲,也增加了主副本服務器的負載,導致主副本服務器會首先成為系統(tǒng)瓶頸。
      [0006]2)為了實現(xiàn)主副本服務器宕機自動恢復的功能,需要從多個副本中選舉一個副本重新作為主副本。選舉過程只有在存在多數(shù)副本服務器的情況下才能進行,所以在副本服務器總數(shù)為2N+1時,能容忍同時宕機的副本服務器個數(shù)為N。

      【發(fā)明內(nèi)容】

      [0007]本申請?zhí)峁┝艘环N數(shù)據(jù)塊更新方法,用以保證存儲系統(tǒng)中多數(shù)據(jù)副本的一致性,該方法包括:
      [0008]當需要對數(shù)據(jù)塊進行更新時,所述客戶端向所述存儲系統(tǒng)中當前包含所述數(shù)據(jù)塊的有效副本的所有副本服務器發(fā)送數(shù)據(jù)塊更新請求,所述數(shù)據(jù)塊更新請求信息中攜帶所述數(shù)據(jù)塊的當前版本以及更新版本;
      [0009]所述客戶端接收由所述副本服務器中的正常副本服務器發(fā)送的響應消息,所述響應消息是由所述副本服務器在根據(jù)所述當前版本對本地維護的數(shù)據(jù)塊進行校驗成功并更新后生成的;
      [0010]所述客戶端根據(jù)預設的配置閾值、所發(fā)送的數(shù)據(jù)塊更新請求的數(shù)量以及在預配置的超時時間內(nèi)從正常副本服務器所接收到的響應消息的數(shù)量,確認是否將所述數(shù)據(jù)塊的版本修改為所述更新版本,所述配置閾值為保證更新操作正常進行所需的最少有效副本服務器的數(shù)值,所述正常副本服務器為在預設的時間閾值內(nèi)正常回復所述客戶端的副本服務器。
      [0011]相應地,本申請還提出了一種數(shù)據(jù)塊更新設備,所述設備作為客戶端應用于包括所述客戶端、管理服務器以及副本服務器的存儲系統(tǒng)中,該設備包括:
      [0012]發(fā)送模塊,用于當需要對數(shù)據(jù)塊進行更新時,所述客戶端向所述存儲系統(tǒng)中當前包含所述數(shù)據(jù)塊的有效副本的所有副本服務器發(fā)送數(shù)據(jù)塊更新請求,所述數(shù)據(jù)塊更新請求信息中攜帶所述數(shù)據(jù)塊的當前版本以及更新版本;
      [0013]接收模塊,用于接收由所述副本服務器中的正常副本服務器發(fā)送的響應消息,所述響應消息是由所述副本服務器在根據(jù)所述當前版本對本地維護的數(shù)據(jù)塊進行校驗成功并更新后生成的;
      [0014]確認模塊,用于根據(jù)預設的配置閾值、所發(fā)送的數(shù)據(jù)塊更新請求的數(shù)量以及在預配置的超時時間內(nèi)從正常副本服務器所接收到的響應消息的數(shù)量,確認是否將所述數(shù)據(jù)塊的版本修改為所述更新版本,所述配置閾值為保證更新操作正常進行所需的最少有效副本服務器的數(shù)值,所述正常副本服務器為在預設的時間閾值內(nèi)正常回復所述客戶端的副本服務器。
      [0015]由此可見,通過應用本申請的技術方案,當需要對數(shù)據(jù)塊進行更新時,客戶端對數(shù)據(jù)塊的更新進行定序并分配版本,然后向存儲系統(tǒng)中當前包含該數(shù)據(jù)塊有效副本的所有副本服務器發(fā)送數(shù)據(jù)塊更新請求,隨后接收由正常副本服務器發(fā)送的響應消息,然后根據(jù)在預配置的超時時間內(nèi)從正常副本服務器所接收到的響應消息的數(shù)量以及預設的配置閾值確認是否將數(shù)據(jù)塊的版本修改為更新版本。從而在不增加副本服務器負載的前提下,保證了各個副本服務器中數(shù)據(jù)塊的一致性。
      【附圖說明】
      [0016]圖1為本申請公開的一種數(shù)據(jù)塊更新方法的流程示意圖;
      [0017]圖2為本申請具體實施例所提出的一種用于內(nèi)部管理的網(wǎng)絡系統(tǒng)的架構(gòu)示意圖;
      [0018]圖3為本申請公開的一種數(shù)據(jù)塊更新設備的結(jié)構(gòu)示意圖。
      【具體實施方式】
      [0019]有鑒于【背景技術】中所提出的技術問題,本申請針對現(xiàn)有的用于公司內(nèi)部數(shù)據(jù)管理的存儲系統(tǒng)提出了一種數(shù)據(jù)塊更新方法,該方法應用于包括客戶端、管理服務器以及副本服務器的存儲系統(tǒng)中,通過將多個副本服務器作為對等的副本服務器,并由客戶端對一個數(shù)據(jù)塊的更新進行定序并分配新版本,保證數(shù)據(jù)更新的一致性。為了便于后續(xù)能夠清楚進行闡述,以下首先結(jié)合圖2將存儲系統(tǒng)中所包含的主要設備及其介紹如下:
      [0020]客戶端:在公司內(nèi)部進行數(shù)據(jù)庫更新的過程中,工程師所使用的更新軟件需要鏈接客戶端的軟件庫,并調(diào)用相應的讀寫接口實現(xiàn)數(shù)據(jù)讀取與更新操作。相應地,該客戶端作為特殊的軟件庫需要提供如下功能:
      [0021]1.提供讀寫接口 ;
      [0022]2.對數(shù)據(jù)塊更新請求定序,維護數(shù)據(jù)塊的版本;
      [0023]3.與管理服務器通信,獲得數(shù)據(jù)塊的每個副本所在副本服務器的地址,將數(shù)據(jù)塊的版本持久化到管理服務器;
      [0024]4.與副本服務器通信,進行數(shù)據(jù)塊副本的讀寫。
      [0025]管理服務器:管理數(shù)據(jù)塊的副本信息,副本服務器信息及數(shù)據(jù)塊副本與副本服務器的對應關系信息,這三部分信息均持久化。
      [0026]副本服務器:管理數(shù)據(jù)塊的本地副本,提供對所管理數(shù)據(jù)塊副本的讀寫操作。
      [0027]基于以上配置,本申請?zhí)岢龅姆椒ㄈ鐖D1所示,包括以下流程:
      [0028]S101,當需要對數(shù)據(jù)塊進行更新時,所述客戶端向所述存儲系統(tǒng)中當前包含所述數(shù)據(jù)塊的有效副本的所有副本服務器發(fā)送數(shù)據(jù)塊更新請求,所述數(shù)據(jù)塊更新請求信息中攜帶所述數(shù)據(jù)塊的當前版本以及更新版本。
      [0029]由于本申請中提供的技術方案中將多個副本服務器作為對等的副本服務器,因此本申請由客戶端對一個數(shù)據(jù)塊的更新進行定序并分配版本,副本服務器保存每個數(shù)據(jù)副本的版本并對請求進行版本校驗,并只處理版本校驗通過的請求??蛻舳瞬怀志没北镜陌姹拘畔?,在副本服務器出現(xiàn)系統(tǒng)故障或網(wǎng)絡故障無法正常處理客戶端請求時,或者在關閉對該數(shù)據(jù)塊的操作時,則需將當前數(shù)據(jù)塊的有效副本的版本持久化到管理服務器,只有副本服務器上數(shù)據(jù)副本的版本大于管理服務器相應數(shù)據(jù)副本的版本時,則副本服務器上的副本為有效副本。
      [0030]基于上述說明,在本申請優(yōu)選的實施例中,當需要對數(shù)據(jù)塊進行更新時,所述客戶端對所述數(shù)據(jù)塊進行定序處理,并為所述數(shù)據(jù)塊分配所述更新版本,所述更新版本相對于所述當前版本單調(diào)遞增,所述客戶端將所述更新版本以及所述當前版本攜帶在所述數(shù)據(jù)塊更新請求中發(fā)送至所述存儲系統(tǒng)中當前所有的副本服務器。
      [0031]S102,所述客戶端接收由所述副本服務器中的正常副本服務器發(fā)送的響應消息,所述響應消息是由所述副本服務器在根據(jù)所述當前版本對本地維護的數(shù)據(jù)塊進行校驗成功并更新后生成的。
      [0032]S103,所述客戶端根據(jù)預設的配置閾值、所發(fā)送的數(shù)據(jù)塊更新請求的數(shù)量以及在預配置的超時時間內(nèi)從正常副本服務器所接收到的響應消息的數(shù)量,確認是否將所述數(shù)據(jù)塊的版本修改為所述更新版本,所述配置閾值為保證更新操作正常進行所需的最少有效副本服務器的數(shù)值,所述正常副本服務器為在預設的時間閾值內(nèi)正?;貜退隹蛻舳说母北痉掌?。
      [0033]在本申請優(yōu)選的實施例中,該步驟針對以下不同情況將分別采取不同的處理措施:
      [0034](I)若所述客戶端在所述超時時間內(nèi)所接收的響應消息的數(shù)量等于所述客戶端所發(fā)送的數(shù)據(jù)塊更新請求的數(shù)量,所述客戶端確認所述數(shù)據(jù)塊更新請求處理成功,并將所述數(shù)據(jù)塊的版本修改為所述更新版本。
      [0035]在響應消息數(shù)量等于請求消息數(shù)量時,可以不用更新版本持久化到所述管理服務器,因為滿足數(shù)據(jù)副本的版本大于等于管理服務器持久化的副本版本時即為有效副本的條件。
      [0036](2)若所述客戶端在所述超時時間內(nèi)所接收的響應消息的數(shù)量大于或等于所述配置閾值,且小于所述客戶端所發(fā)送的數(shù)據(jù)塊更新請求的數(shù)量,所述客戶端確認所述數(shù)據(jù)塊更新請求處理成功,將所述數(shù)據(jù)塊的版本修改為所述更新版本,以及將所述正常副本服務器中進行副本更新后的版本持久化到所述管理服務器。
      [0037]在預配置的超時時間內(nèi),收到正常副本服務器發(fā)送的響應消息數(shù)小于發(fā)送的消息數(shù),大于等于預配置閥值則版本更新為更新版本,響應請求成功,但是該版本需要向管理服務器持久化。
      [0038](3)若所述客戶端在所述超時時間內(nèi)所接收的響應消息的數(shù)量小于所述配置閾值,所述客戶端確認所述數(shù)據(jù)塊更新請求處理失敗,通過所述管理服務器重新設置有效副本服務器,并在所述有效副本服務器的數(shù)量大于所述配置閾值后重新向所述存儲系統(tǒng)中當前包含所述數(shù)據(jù)塊的有效副本的所有副本服務器發(fā)送所述數(shù)據(jù)塊更新請求。
      [0039]在預配置的超時時間內(nèi),收到正常副本服務器發(fā)送的響應消息數(shù)小于預配置閥值,則不能更新版本,相應請求失敗或著進行請求重試。
      [0040](4)若所述客戶端所接收的響應消息的數(shù)量為零,所述客戶端重新向所述存儲系統(tǒng)中當前包含所述數(shù)據(jù)塊的有效副本的所有副本服務器發(fā)送數(shù)據(jù)塊更新請求,并將重試失敗次數(shù)加一。
      [0041]在本申請優(yōu)選的實施例中,對于情況(3)所采取的具體處理流程如下:
      [0042]步驟a)根據(jù)所述數(shù)據(jù)塊向所述管理服務器申請新的副本服務器;
      [0043]步驟b)向所述管理服務器發(fā)送用于將所述正常副本服務器的數(shù)據(jù)副本復制至所述新的副本服務器的數(shù)據(jù)復制請求;
      [0044]步驟c)將完成所述數(shù)據(jù)復制請求的新的副本服務器作為所述有效副本服務器。
      [0045]以上流程實現(xiàn)了不需要主副本服務器就能向其它副本服務器轉(zhuǎn)發(fā)請求,以及減少一次轉(zhuǎn)發(fā)RPC帶來的延遲。從而避免了主副本服務器負載高于其它副本服務器而首先達到系統(tǒng)瓶頸的問題。同時,為了在不失數(shù)據(jù)一致性的情況下設置有效副本來自動恢復,本申請在當所述客戶端發(fā)生宕機后,還將采取以下操作:
      [0046]步驟a)所述客戶端向所述管理服務器查詢已持久化至所述管理服務器的數(shù)據(jù)塊的有效版本,以及所述數(shù)據(jù)塊對應的各數(shù)據(jù)塊副本所在的副本服務器的地址;
      [0047]步驟b)所述客戶端根據(jù)所述地址向查詢各所述副本服務器所保存的數(shù)據(jù)塊副本的版本;
      [0048]步驟c)所述客戶端將版本大于從所述管理服務器端查詢到的數(shù)據(jù)塊的數(shù)據(jù)塊副本作為有效副本,并丟棄除所述有效副本以外的其他數(shù)據(jù)塊副本;
      [0049]步驟d)所述客戶端向所述管理服務器端更新持久化所述有效副本的版本,所述有效副本的版本大于等于所述管理服務器中的數(shù)據(jù)塊在更新前的版本。
      [0050]通過以上流程,所述管理服務器能夠根據(jù)所述各副本服務器上數(shù)據(jù)塊的副本版本以及自身保留所述數(shù)據(jù)塊的有效副本版本刪除所述副本服務器中低版本的數(shù)據(jù)副本。
      [0051]為了進一步闡述本申請的技術思想,現(xiàn)結(jié)合具體的應用場景,對本申請的技術方案進行說明。
      [0052]—、數(shù)據(jù)塊更新流程
      [0053]I)由發(fā)起請求的客戶端,對一個數(shù)據(jù)塊的更新進行定序并分配新版本,版本單調(diào)遞增,并同時向各副本服務器發(fā)起更新請求,請求包含數(shù)據(jù)塊的當前版本及更新版本。
      [0054]2)各副本服務器收到請求后,對版本進行校驗,只有當副本服務器本地維護的數(shù)據(jù)塊版本等于更新請求中當前版本時才接收請求和處理,并在完成處理后,更新本地維護的數(shù)據(jù)塊版本為請求中的新版本,然后響應客戶端。
      [0055]3)客戶端收到正常副本服務器響應的個數(shù)大于等于預配置閥值時,認為更新請求處理成功,修改數(shù)據(jù)塊版本為請求中分配的版本。預配置閥值表示保證更新操作正常進行所需的最少有效副本數(shù)。
      [0056]在以上步驟3)中,若副本服務器在一定時間內(nèi)未正?;貜涂蛻舳耍瑒t認為該副本服務器異常,對異常副本服務器的處理分為三種情況:
      [0057]I)當客戶端收到正常副本服務器響應的個數(shù)大于等于預配置閥值時,則客戶端認為請求處理成功,并直接丟棄異常副本服務器上的副本,然后將正常副本服務器上副本更新后的版本持久化管理服務器;
      [0058]2)當客戶端收到正常副本服務器響應的個數(shù)小于預配置閥值但是大于O時,則客戶端認為請求處理失敗,直接丟棄異常副本服務器上的副本。然后,客戶端向管理服務器對該數(shù)據(jù)塊申請新的副本服務器,并發(fā)起從正常副本服務器上數(shù)據(jù)副本向新副本服務器的數(shù)據(jù)復制請求。新副本服務器在數(shù)據(jù)復制完成后重新恢復為可服務的有效副本服務器。直到有效副本服務器個數(shù)大于等于最少有效副本數(shù)得預配置閥值后,允許客戶端繼續(xù)處理對該數(shù)據(jù)塊的更新請求。
      [0059]3)當客戶端收到正常副本服務器響應的個數(shù)為O時,則客戶端進行重試,直到收到正常副本服務器響應,然后進行以上情況I)或情況2)。
      [0060]需要說明的是,客戶端不持久化數(shù)據(jù)副本的版本信息,有效副本的版本均持久化到管理服務器,客戶端宕機后需要從管理服務器恢復數(shù)據(jù)塊的版本信息。管理服務器實現(xiàn)為高可用的中心服務節(jié)點,管理服務器宕機后由備管理服務器恢復狀態(tài)并接管服務。這些都屬于本申請的保護范圍。
      [0061 ] 二、客戶端宕機處理流程
      [0062]I)客戶端向管理服務器端查詢持久化到管理服務器端的數(shù)據(jù)塊的有效版本及各副本所在的副本服務器地址。
      [0063]2)客戶端向各副本服務器查詢該副本服務器所保存的數(shù)據(jù)塊副本的版本。
      [0064]3)選擇副本服務器查詢到副本的版本大于等于從管理服務器端查詢到的數(shù)據(jù)塊的有效版本為有效副本,同時丟棄版本小于管理服務器查詢到的數(shù)據(jù)塊的有效版本的副本。
      [0065]4)向管理服務器端更新持久化所選擇的有效副本的版本,該版本會大于等于管理服務器更新前的版本。
      [0066]5)管理服務器會周期性掃描各副本服務器上數(shù)據(jù)塊的副本版本并與其保留的有效副本版本進行對比,如果副本服務器上數(shù)據(jù)副本的版本低于其有效版本,且副本數(shù)高于最少有效副本數(shù)的預配置閥值,則會向副本服務器發(fā)起刪除操作,刪掉低版本的數(shù)據(jù)副本。
      [0067]為達到以上技術目的,本申請還提出了一種數(shù)據(jù)塊更新設備,所述設備作為客戶端應用于包括所述客戶端、管理服務器以及副本服務器的存儲系統(tǒng)中,如圖3所示,該設備包括:
      [0068]發(fā)送模塊310,用于當需要對數(shù)據(jù)塊進行更新時,所述客戶端向所述存儲系統(tǒng)中當前包含所述數(shù)據(jù)塊的有效副本的所有副本服務器發(fā)送數(shù)據(jù)塊更新請求,所述數(shù)據(jù)塊更新請求信息中攜帶所述數(shù)據(jù)塊的當前版本以及更新版本;
      [0069]接收模塊320,用于接收由所述副本服務器中的正常副本服務器發(fā)送的響應消息,所述響應消息是由所述副本服務器在根據(jù)所述當前版本對本地維護的數(shù)據(jù)塊進行校驗成功并更新后生成的;
      [0070]確認模塊330,用于根據(jù)預設的配置閾值、所發(fā)送的數(shù)據(jù)塊更新請求的數(shù)量以及在預配置的超時時間內(nèi)從正常副本服務器所接收到的響應消息的數(shù)量,確認是否將所述數(shù)據(jù)塊的版本修改為所述更新版本,所述配置閾值為保證更新操作正常進行所需的最少有效副本服務器的數(shù)值,所述正常副本服務器為在預設的時間閾值內(nèi)正?;貜退隹蛻舳说母北痉掌?。
      [0071]在具體的應用場景中,所述發(fā)送模塊具體用于:
      [0072]當需要對數(shù)據(jù)塊進行更新時,對所述數(shù)據(jù)塊進行定序處理,并為所述數(shù)據(jù)塊分配所述更新版本,所述更新版本相對于所述當前版本單調(diào)遞增;將所述更新版本以及所述當前版本攜帶在所述數(shù)據(jù)塊更新請求中發(fā)送至所述存儲系統(tǒng)中當前所有的副本服務器。
      [0073]在具體的應用場景中,所述確認模塊具體用于:
      [0074]若所述接收模塊在所述超時時間內(nèi)所接收的響應消息的數(shù)量等于所述客戶端所發(fā)送的數(shù)據(jù)塊更新請求的數(shù)量,確認所述數(shù)據(jù)塊更新請求處理成功,并將所述數(shù)據(jù)塊的版本修改為所述更新版本;
      [0075]若所述接收模塊在所述超時時間內(nèi)所接收的響應消息的數(shù)量大于或等于所述配置閾值,且小于所述客戶端所發(fā)送的數(shù)據(jù)塊更新請求的數(shù)量,確認所述數(shù)據(jù)塊更新請求處理成功,將所述數(shù)據(jù)塊的版本修改為所述更新版本,以及將所述正常副本服務器中進行副本更新后的版本持久化到所述管理服務器;
      [0076]若所述接收模塊在所述超時時間內(nèi)所接收的響應消息的數(shù)量小于所述配置閾值,確認所述數(shù)據(jù)塊更新請求處理失敗,通過所述管理服務器重新設置有效副本服務器,并在所述有效副本服務器的數(shù)量大于所述配置閾值后重新向所述存儲系統(tǒng)中當前包含所述數(shù)據(jù)塊的有效副本的所有副本服務器發(fā)送所述數(shù)據(jù)塊更新請求;
      [0077]若所述接收模塊所接收的響應消息的數(shù)量為零,重新向所述存儲系統(tǒng)中當前包含所述數(shù)據(jù)塊的有效副本的所有副本服務器發(fā)送數(shù)據(jù)塊更新請求,并將重試失敗次數(shù)加一。
      [0078]在具體的應用場景中,還包括:
      [0079]重試模塊,用于在所述重試失敗次數(shù)超過預設的閾值時,向所述管理服務器查詢當前包含所述數(shù)據(jù)塊的所有副本服務器,對查詢到到副本服務器進行校驗,并將校驗成功的副本服務器作為有效服務器;向所述有效副本服務器重新發(fā)送數(shù)據(jù)塊更新請求。
      [0080]在具體的應用場景中,所述確認模塊具體用于:
      [0081]根據(jù)所述數(shù)據(jù)塊向所述管理服務器申請新的副本服務器;
      [0082]向所述管理服務器發(fā)送用于將所述正常副本服務器的數(shù)據(jù)副本復制至所述新的副本服務器的數(shù)據(jù)復制請求;
      [0083]將完成所述數(shù)據(jù)復制請求的新的副本服務器作為所述有效副本服務器。
      [0084]在具體的應用場景中,還包括:
      [0085]故障處理模塊,用于當所述客戶端發(fā)生宕機后,向所述管理服務器查詢已持久化至所述管理服務器的數(shù)據(jù)塊的有效版本,以及所述數(shù)據(jù)塊對應的各數(shù)據(jù)塊副本所在的副本服務器的地址;根據(jù)所述地址向查詢各所述副本服務器所保存的數(shù)據(jù)塊副本的版本;將版本大于從所述管理服務器端查詢到的數(shù)據(jù)塊的數(shù)據(jù)塊副本作為有效副本,并丟棄除所述有效副本以外的其他數(shù)據(jù)塊副本;向所述管理服務器端更新持久化所述有效副本的版本,所述有效副本的版本大于等于所述管理服務器中的數(shù)據(jù)塊在更新前的版本
      [0086]通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到本申請可以通過硬件實現(xiàn),也可以借助軟件加必要的通用硬件平臺的方式來實現(xiàn)。基于這樣的理解,本申請的技術方案可以以軟件產(chǎn)品的形式體現(xiàn)出來,該軟件產(chǎn)品可以存儲在一個非易失性存儲介質(zhì)(可以是CD-ROM,U盤,移動硬盤等)中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網(wǎng)絡設備等)執(zhí)行本申請各個實施場景所述的方法。
      [0087]本領域技術人員可以理解附圖只是一個優(yōu)選實施場景的示意圖,附圖中的模塊或流程并不一定是實施本申請所必須的。
      [0088]本領域技術人員可以理解實施場景中的裝置中的模塊可以按照實施場景描述進行分布于實施場景的裝置中,也可以進行相應變化位于不同于本實施場景的一個或多個裝置中。上述實施場景的模塊可以合并為一個模塊,也可以進一步拆分成多個子模塊。
      [0089]上述本申請序號僅僅為了描述,不代表實施場景的優(yōu)劣。
      [0090]以上公開的僅為本申請的幾個具體實施場景,但是,本申請并非局限于此,任何本領域的技術人員能思之的變化都應落入本申請的保護范圍。
      【主權(quán)項】
      1.一種數(shù)據(jù)塊更新方法,其特征在于,所述方法應用于包括客戶端、管理服務器以及副本服務器的存儲系統(tǒng)中,該方法包括: 當需要對數(shù)據(jù)塊進行更新時,所述客戶端向所述存儲系統(tǒng)中當前包含所述數(shù)據(jù)塊的有效副本的所有副本服務器發(fā)送數(shù)據(jù)塊更新請求,所述數(shù)據(jù)塊更新請求信息中攜帶所述數(shù)據(jù)塊的當前版本以及更新版本; 所述客戶端接收由所述副本服務器中的正常副本服務器發(fā)送的響應消息,所述響應消息是由所述副本服務器在根據(jù)所述當前版本對本地維護的數(shù)據(jù)塊進行校驗成功并更新后生成的; 所述客戶端根據(jù)預設的配置閾值、所發(fā)送的數(shù)據(jù)塊更新請求的數(shù)量以及在預配置的超時時間內(nèi)從正常副本服務器所接收到的響應消息的數(shù)量,確認是否將所述數(shù)據(jù)塊的版本修改為所述更新版本,所述配置閾值為保證更新操作正常進行所需的最少有效副本服務器的數(shù)值,所述正常副本服務器為在預設的時間閾值內(nèi)正?;貜退隹蛻舳说母北痉掌?。2.如權(quán)利要求1所述的方法,其特征在于,當需要對數(shù)據(jù)塊進行更新時,所述客戶端向所述存儲系統(tǒng)中當前包含所述數(shù)據(jù)塊的有效副本的所有副本服務器發(fā)送數(shù)據(jù)塊更新請求,具體為: 當需要對數(shù)據(jù)塊進行更新時,所述客戶端對所述數(shù)據(jù)塊進行定序處理,并為所述數(shù)據(jù)塊分配所述更新版本,所述更新版本相對于所述當前版本單調(diào)遞增; 所述客戶端將所述更新版本以及所述當前版本攜帶在所述數(shù)據(jù)塊更新請求中發(fā)送至所述存儲系統(tǒng)中當前所有的副本服務器。3.如權(quán)利要求1所述的方法,其特征在于,所述客戶端根據(jù)預設的配置閾值、所發(fā)送的數(shù)據(jù)塊更新請求的數(shù)量以及在預配置的超時時間內(nèi)從正常副本服務器所接收到的響應消息的數(shù)量,確認是否將所述數(shù)據(jù)塊的版本修改為所述更新版本,具體為: 若所述客戶端在所述超時時間內(nèi)所接收的響應消息的數(shù)量等于所述客戶端所發(fā)送的數(shù)據(jù)塊更新請求的數(shù)量,所述客戶端確認所述數(shù)據(jù)塊更新請求處理成功,并將所述數(shù)據(jù)塊的版本修改為所述更新版本; 若所述客戶端在所述超時時間內(nèi)所接收的響應消息的數(shù)量大于或等于所述配置閾值,且小于所述客戶端所發(fā)送的數(shù)據(jù)塊更新請求的數(shù)量,所述客戶端確認所述數(shù)據(jù)塊更新請求處理成功,將所述數(shù)據(jù)塊的版本修改為所述更新版本,以及將所述正常副本服務器中進行副本更新后的版本持久化到所述管理服務器; 若所述客戶端在所述超時時間內(nèi)所接收的響應消息的數(shù)量小于所述配置閾值,所述客戶端確認所述數(shù)據(jù)塊更新請求處理失敗,通過所述管理服務器重新設置有效副本服務器,并在所述有效副本服務器的數(shù)量大于所述配置閾值后重新向所述存儲系統(tǒng)中當前包含所述數(shù)據(jù)塊的有效副本的所有副本服務器發(fā)送所述數(shù)據(jù)塊更新請求; 若所述客戶端所接收的響應消息的數(shù)量為零,所述客戶端重新向所述存儲系統(tǒng)中當前包含所述數(shù)據(jù)塊的有效副本的所有副本服務器發(fā)送數(shù)據(jù)塊更新請求,并將重試失敗次數(shù)加 O4.如權(quán)利要求3所述的方法,其特征在于,還包括: 若所述重試失敗次數(shù)超過預設的閾值,所述客戶端向所述管理服務器查詢當前包含所述數(shù)據(jù)塊的所有副本服務器, 所述客戶端對查詢到到副本服務器進行校驗,并將校驗成功的副本服務器作為有效服務器; 所述客戶端向所述有效副本服務器重新發(fā)送數(shù)據(jù)塊更新請求。5.如權(quán)利要求3所述的方法,其特征在于,所述通過所述管理服務器重新設置有效副本服務器,具體為: 根據(jù)所述數(shù)據(jù)塊向所述管理服務器申請新的副本服務器; 向所述管理服務器發(fā)送用于將所述正常副本服務器的數(shù)據(jù)副本復制至所述新的副本服務器的數(shù)據(jù)復制請求; 將完成所述數(shù)據(jù)復制請求的新的副本服務器作為所述有效副本服務器。6.如權(quán)利要求1所述的方法,其特征在于,在所述客戶端根據(jù)預設的配置閾值、所發(fā)送的數(shù)據(jù)塊更新請求的數(shù)量以及在預配置的超時時間內(nèi)從正常副本服務器所接收到的響應消息的數(shù)量,確認是否將所述數(shù)據(jù)塊的版本修改為所述更新版本之后,還包括: 當所述客戶端發(fā)生宕機時,所述客戶端向所述管理服務器查詢已持久化至所述管理服務器的數(shù)據(jù)塊的有效版本,以及所述數(shù)據(jù)塊對應的各數(shù)據(jù)塊副本所在的副本服務器的地址; 所述客戶端根據(jù)所述地址向查詢各所述副本服務器所保存的數(shù)據(jù)塊副本的版本; 所述客戶端將版本大于從所述管理服務器端查詢到的數(shù)據(jù)塊的數(shù)據(jù)塊副本作為有效副本,并丟棄除所述有效副本以外的其他數(shù)據(jù)塊副本; 所述客戶端向所述管理服務器端更新持久化所述有效副本的版本,所述有效副本的版本大于等于所述管理服務器中的數(shù)據(jù)塊在更新前的版本。7.一種數(shù)據(jù)塊更新設備,其特征在于,所述設備作為客戶端應用于包括所述客戶端、管理服務器以及副本服務器的存儲系統(tǒng)中,該設備包括: 發(fā)送模塊,用于當需要對數(shù)據(jù)塊進行更新時,所述客戶端向所述存儲系統(tǒng)中當前包含所述數(shù)據(jù)塊的有效副本的所有副本服務器發(fā)送數(shù)據(jù)塊更新請求,所述數(shù)據(jù)塊更新請求信息中攜帶所述數(shù)據(jù)塊的當前版本以及更新版本; 接收模塊,用于接收由所述副本服務器中的正常副本服務器發(fā)送的響應消息,所述響應消息是由所述副本服務器在根據(jù)所述當前版本對本地維護的數(shù)據(jù)塊進行校驗成功并更新后生成的; 確認模塊,用于根據(jù)預設的配置閾值、所發(fā)送的數(shù)據(jù)塊更新請求的數(shù)量以及在預配置的超時時間內(nèi)從正常副本服務器所接收到的響應消息的數(shù)量,確認是否將所述數(shù)據(jù)塊的版本修改為所述更新版本,所述配置閾值為保證更新操作正常進行所需的最少有效副本服務器的數(shù)值,所述正常副本服務器為在預設的時間閾值內(nèi)正?;貜退隹蛻舳说母北痉掌鳌?.如權(quán)利要求7所述的設備,其特征在于,所述發(fā)送模塊具體用于: 當需要對數(shù)據(jù)塊進行更新時,對所述數(shù)據(jù)塊進行定序處理,并為所述數(shù)據(jù)塊分配所述更新版本,所述更新版本相對于所述當前版本單調(diào)遞增;將所述更新版本以及所述當前版本攜帶在所述數(shù)據(jù)塊更新請求中發(fā)送至所述存儲系統(tǒng)中當前所有的副本服務器。9.如權(quán)利要求7所述的設備,其特征在于,所述確認模塊具體用于: 若所述接收模塊在所述超時時間內(nèi)所接收的響應消息的數(shù)量等于所述客戶端所發(fā)送的數(shù)據(jù)塊更新請求的數(shù)量,確認所述數(shù)據(jù)塊更新請求處理成功,并將所述數(shù)據(jù)塊的版本修改為所述更新版本; 若所述接收模塊在所述超時時間內(nèi)所接收的響應消息的數(shù)量大于或等于所述配置閾值,且小于所述客戶端所發(fā)送的數(shù)據(jù)塊更新請求的數(shù)量,確認所述數(shù)據(jù)塊更新請求處理成功,將所述數(shù)據(jù)塊的版本修改為所述更新版本,以及將所述正常副本服務器中進行副本更新后的版本持久化到所述管理服務器; 若所述接收模塊在所述超時時間內(nèi)所接收的響應消息的數(shù)量小于所述配置閾值,確認所述數(shù)據(jù)塊更新請求處理失敗,通過所述管理服務器重新設置有效副本服務器,并在所述有效副本服務器的數(shù)量大于所述配置閾值后重新向所述存儲系統(tǒng)中當前包含所述數(shù)據(jù)塊的有效副本的所有副本服務器發(fā)送所述數(shù)據(jù)塊更新請求; 若所述接收模塊所接收的響應消息的數(shù)量為零,重新向所述存儲系統(tǒng)中當前包含所述數(shù)據(jù)塊的有效副本的所有副本服務器發(fā)送數(shù)據(jù)塊更新請求,并將重試失敗次數(shù)加一。10.如權(quán)利要求9所述的設備,其特征在于,還包括: 重試模塊,用于在所述重試失敗次數(shù)超過預設的閾值時,向所述管理服務器查詢當前包含所述數(shù)據(jù)塊的所有副本服務器,對查詢到到副本服務器進行校驗,并將校驗成功的副本服務器作為有效服務器;向所述有效副本服務器重新發(fā)送數(shù)據(jù)塊更新請求。11.如權(quán)利要求9所述的設備,其特征在于,所述確認模塊具體用于: 根據(jù)所述數(shù)據(jù)塊向所述管理服務器申請新的副本服務器; 向所述管理服務器發(fā)送用于將所述正常副本服務器的數(shù)據(jù)副本復制至所述新的副本服務器的數(shù)據(jù)復制請求; 將完成所述數(shù)據(jù)復制請求的新的副本服務器作為所述有效副本服務器。12.如權(quán)利要求7所述的設備,其特征在于,還包括: 故障處理模塊,用于當所述客戶端發(fā)生宕機后,向所述管理服務器查詢已持久化至所述管理服務器的數(shù)據(jù)塊的有效版本,以及所述數(shù)據(jù)塊對應的各數(shù)據(jù)塊副本所在的副本服務器的地址;根據(jù)所述地址向查詢各所述副本服務器所保存的數(shù)據(jù)塊副本的版本;將版本大于從所述管理服務器端查詢到的數(shù)據(jù)塊的數(shù)據(jù)塊副本作為有效副本,并丟棄除所述有效副本以外的其他數(shù)據(jù)塊副本;向所述管理服務器端更新持久化所述有效副本的版本,所述有效副本的版本大于等于所述管理服務器中的數(shù)據(jù)塊在更新前的版本。
      【文檔編號】H04L29/08GK105991752SQ201510101466
      【公開日】2016年10月5日
      【申請日】2015年3月6日
      【發(fā)明人】董元元, 吳錦波, 徐立, 閆衛(wèi)斌, 田磊磊, 石超
      【申請人】阿里巴巴集團控股有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1