国产精品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)中的臨界資源管理方法和裝置的制造方法

      文檔序號:8380789閱讀:616來源:國知局
      一種云存儲系統(tǒng)中的臨界資源管理方法和裝置的制造方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及存儲技術(shù),特別涉及一種云存儲系統(tǒng)中的臨界資源管理方法和裝置。
      【背景技術(shù)】
      [0002]在云存儲系統(tǒng)中,對臨界資源的申請一般通過分布式鎖來完成,分布式鎖從單機鎖進化而來。所述云存儲系統(tǒng),是指通過集群應(yīng)用、網(wǎng)絡(luò)技術(shù)和分布式文件系統(tǒng)等,將網(wǎng)絡(luò)中大量的存儲設(shè)備通過應(yīng)用軟件集合起來協(xié)同工作,共同對外提供數(shù)據(jù)存儲和業(yè)務(wù)訪問功能的系統(tǒng)。
      [0003]但是,上述方式在實際應(yīng)用中會存在一定的問題,如:
      [0004]針對每個申請占用臨界資源的進程(加鎖進程),均需要設(shè)置有相應(yīng)的通知接口,當(dāng)某一臨界資源被釋放(解鎖)時,需要通過通知接口通知到申請占用該臨界資源的所有進程,以便這些進程通過競爭等,選出一個進程來占用該臨界資源;從實現(xiàn)上來說比較復(fù)雜;
      [0005]另外,針對每個臨界資源,會分別對應(yīng)設(shè)置一個等待隊列,每個申請占用該臨界資源的進程均會加入到該等待隊列中進行等待,這樣,當(dāng)該臨界資源被釋放時,等待隊列中的所有進程都將會被喚醒去搶占這個臨界資源,其中只有一個會搶占成功,其余繼續(xù)等待,通常將大量進程同時被喚醒去搶占資源的現(xiàn)象稱為驚群現(xiàn)象,驚群現(xiàn)象的出現(xiàn)會造成系統(tǒng)性能急劇抖動,即導(dǎo)致系統(tǒng)性能極度不穩(wěn)定。

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

      [0006]有鑒于此,本發(fā)明提供了一種云存儲系統(tǒng)中的臨界資源管理方法和裝置,能夠降低實現(xiàn)復(fù)雜度,并能夠提高系統(tǒng)性能的穩(wěn)定性。
      [0007]為了達到上述目的,本發(fā)明的技術(shù)方案是這樣實現(xiàn)的:
      [0008]一種云存儲系統(tǒng)中的臨界資源管理方法,包括:
      [0009]當(dāng)任一進程X需要申請占用任一臨界資源y時,與管理節(jié)點之間建立會話連接,建立成功后,向所述管理節(jié)點發(fā)起占用所述臨界資源I的請求;
      [0010]所述管理節(jié)點利用預(yù)定值對所保存的所述臨界資源y對應(yīng)的標(biāo)志位上的值進行置換;如果置換出來的值與所述預(yù)定值相同,則確定所述臨界資源y已經(jīng)被占用,本次申請失敗,并通知所述進程X,否則,確定所述臨界資源y未被占用,本次申請成功,并通知所述進程X。
      [0011]一種云存儲系統(tǒng)中的臨界資源管理裝置,包括:第一處理模塊和第二處理模塊;
      [0012]所述第一處理模塊,用于當(dāng)接收到任一進程X發(fā)送來的占用任一臨界資源y的請求時,利用預(yù)定值對所述第二處理模塊中保存的、所述臨界資源y對應(yīng)的標(biāo)志位上的值進行置換;如果置換出來的值與所述預(yù)定值相同,則確定所述臨界資源y已經(jīng)被占用,本次申請失敗,并通知所述進程X,否則,確定所述臨界資源y未被占用,本次申請成功,并通知所述進程X。
      [0013]可見,本發(fā)明所述方案中提供了一種簡單的臨界資源申請方式,無需設(shè)置通知接口等,從而降低了方案的實現(xiàn)復(fù)雜度,而且縮短了申請時間,即減少了時延;另外,無需設(shè)置等待隊列,各進程處于自由競爭狀態(tài),從而避免了出現(xiàn)驚群現(xiàn)象,進而提高了系統(tǒng)性能的穩(wěn)定性。
      【附圖說明】
      [0014]圖1為本發(fā)明云存儲系統(tǒng)中的臨界資源管理方法實施例的流程圖。
      [0015]圖2為本發(fā)明云存儲系統(tǒng)中的臨界資源申請方法較佳實施例的流程圖。
      [0016]圖3為本發(fā)明云存儲系統(tǒng)中的臨界資源釋放方法較佳實施例的流程圖。
      [0017]圖4為本發(fā)明云存儲系統(tǒng)中的臨界資源管理裝置實施例的組成結(jié)構(gòu)示意圖。
      【具體實施方式】
      [0018]針對現(xiàn)有技術(shù)中存在的問題,本發(fā)明中提出了一種無鎖的、云存儲系統(tǒng)中的臨界資源管理方案,能夠降低實現(xiàn)復(fù)雜度,并能夠提高系統(tǒng)性能的穩(wěn)定性等。
      [0019]為了使本發(fā)明的技術(shù)方案更加清楚、明白,以下參照附圖并舉實施例,對本發(fā)明所述方案作進一步的詳細(xì)說明。
      [0020]圖1為本發(fā)明云存儲系統(tǒng)中的臨界資源管理方法實施例的流程圖。如圖1所示,包括以下步驟11?12。
      [0021]步驟11:當(dāng)任一進程X需要申請占用任一臨界資源y時,與管理節(jié)點之間建立會話連接,建立成功后,向管理節(jié)點發(fā)起占用臨界資源I的請求。
      [0022]需要說明的是,本實施例以及隨后的各實施例中,用進程X來表示任一進程,用臨界資源y來表示任一臨界資源,僅是為了方便表述,并不用于限制本發(fā)明的技術(shù)方案。
      [0023]步驟12:管理節(jié)點利用預(yù)定值對所保存的臨界資源y對應(yīng)的標(biāo)志位上的值進行置換;如果置換出來的值與預(yù)定值相同,則確定臨界資源y已經(jīng)被占用,本次申請失敗,并通知進程X,否則,確定臨界資源I未被占用,本次申請成功,并通知進程X。
      [0024]系統(tǒng)進行初始化時,會為每個臨界資源分別對應(yīng)設(shè)置一個標(biāo)志位,初始取值可為0,表示對應(yīng)的臨界資源未被占用,并可集合所有臨界資源的標(biāo)志位,利用一個map〈ReSID,F(xiàn)lag〉進行管理,其中,ResID表示臨界資源的標(biāo)識,F(xiàn)lag表示對應(yīng)的標(biāo)志位,當(dāng)然,同時需要用一個map〈 ResID , ResName〉來記錄各臨界資源的標(biāo)識與名稱(ResName)之間的對應(yīng)關(guān)系。
      [0025]后續(xù),根據(jù)系統(tǒng)中的臨界資源的增刪情況,可相應(yīng)地對兩個map進行修改。比如,當(dāng)系統(tǒng)中增加了一個新的臨界資源時,可將該臨界資源的ResID、Flag和ResName之間的對應(yīng)關(guān)系分別增加到兩個map中。
      [0026]如果進程X本次申請成功,則會斷開所述會話連接,并利用申請到的臨界資源y進行后續(xù)的相應(yīng)處理;如果本次申請失敗,也會斷開所述會話連接,并可選擇再次進行申請或先進行其它處理,待其它處理完成后,再進行申請。
      [0027]另外,在實際應(yīng)用中,進程X在與管理節(jié)點之間建立會話連接之前,還可先進行以下處理:進程X確定管理節(jié)點是否正常,如果是,則與管理節(jié)點之間建立會話連接。
      [0028]再有,管理節(jié)點利用預(yù)定值對臨界資源y對應(yīng)的標(biāo)志位上的值進行置換之前,還可進一步進行以下處理:管理節(jié)點設(shè)置內(nèi)存屏障,設(shè)置成功后,鎖定主板總線,鎖定成功后,利用預(yù)定值對臨界資源y對應(yīng)的標(biāo)志位上的值進行置換。
      [0029]假設(shè)進程X成功占用了臨界資源y,那么后續(xù),當(dāng)其需要釋放臨界資源y時,同樣,可與管理節(jié)點之間建立會話連接,建立成功后,向管理節(jié)點發(fā)起釋放臨界資源I的請求;相應(yīng)地,管理節(jié)點會將臨界資源I對應(yīng)的標(biāo)志位上的值設(shè)置為進行置換之前的值,并可在設(shè)置成功后,通知進程X。
      [0030]類似地,進程X在與管理節(jié)點之間建立會話連接之前,還可進一步進行以下處理:進程X確定管理節(jié)點是否正常,如果是,則與管理節(jié)點之間建立會話連接。
      [0031]管理節(jié)點在將臨界資源y對應(yīng)的標(biāo)志位上的值設(shè)置為進行置換之前的值之前,還可進一步進行以下處理:管理節(jié)點設(shè)置內(nèi)存屏障,設(shè)置成功后,鎖定主板總線,鎖定成功后,將臨界資源y對應(yīng)的標(biāo)志位上的值設(shè)置為進行置換之前的值。
      [0032]基于上述介紹,圖2為本發(fā)明云存儲系統(tǒng)中的臨界資源申請方法較佳實施例的流程圖。如圖2所示,包括以下步驟21?28。
      [0033]步驟21:進程X需要申請占用臨界資源y,與管理節(jié)點之間建立會話連接,并確定是否建立成功,如果是,則執(zhí)行步驟22,否則,執(zhí)行步驟27。
      [0034]假設(shè)默認(rèn)管理節(jié)點是正常的。
      [0035]進程X可通過一個全局唯一句柄來與管理節(jié)點之間建立會話連接。
      [0036]步驟22:管理節(jié)點設(shè)置內(nèi)存屏障,并確定是否設(shè)置成功,如果是,則執(zhí)行步驟23,否則,執(zhí)行步驟27。
      [0037]步驟23:管理節(jié)點鎖定主板總線,并確定是否鎖定成功,如果是,則執(zhí)行步驟24,否則,執(zhí)行步驟27。
      [0038]上述步驟22和23的具體實現(xiàn)均為現(xiàn)有技術(shù)。其中,通過設(shè)置內(nèi)存屏障,可使內(nèi)存和緩存(Cache)中的數(shù)據(jù)保持一致,不會因為Cache的存在而影響內(nèi)存一致性;鎖定主板總線,是為了在多核的系統(tǒng)中,禁止其它CPU核上的進程對同一內(nèi)存區(qū)域進行不必要的數(shù)據(jù)交換動作,本質(zhì)上是一種硬件級別的排它互斥操作。兩個步驟的最終目的均是為了保證同一時刻只有一個進程在對臨界資源y進行申請,待該進程處理完成后,才能進入對另一個進程的操作。
      [0039]步驟24:管理節(jié)點利用預(yù)定值I對臨界資源y對應(yīng)的標(biāo)志位上的值進行置換,并確定置換出來的值是否等于1,如果是,則執(zhí)行步驟25,否則,執(zhí)行步驟26。
      [0040]步驟25:管理節(jié)點確定臨界資源y已經(jīng)被占用,本次申請失敗,并通知進程X,之后執(zhí)行步驟27。
      [0041]步驟26:管理節(jié)點確定臨界資源y未被占用,本次申請成功,并通知進程X,之后執(zhí)行步驟28。
      [0042]可以看出,采用步驟24?26后,能夠?qū)崿F(xiàn)原子交換,即標(biāo)志位上的值要么改變,要么不改變,而且能夠保證當(dāng)本次申請失敗時,標(biāo)志位上的值還是原來的值。
      [0043]舉例說明:
      [0044]假設(shè)當(dāng)臨界資源y對應(yīng)的標(biāo)志位上的值為I時,表示臨界資源y已經(jīng)被占用,為O時表示未被占用,那么,管理節(jié)點會用預(yù)定值I將臨界資源I對應(yīng)的標(biāo)志位上的值X置換出來,X可能為1,也可能為O;如果X=l,則說明臨界資源y已經(jīng)被占用,本次申請失敗,由于是用I置換1,所以臨界資源I對應(yīng)的標(biāo)志位上的值保持不變,如果X=0,則說明臨界資源y未被占用,本次申請成功,相應(yīng)地,臨界資源I對應(yīng)的標(biāo)志位上的值將由O變?yōu)?,表示臨界資源y已經(jīng)被占用。
      [0045]步驟27:進程X斷開所述會話連接,并選擇再次進行申請或先進行其它處理。
      [0046]如果選擇再次進行申請,那么重復(fù)圖2所示流程即可。
      [0047]步驟28:進程X斷開所述會話連接,并利用申請到的臨界資源y進行相應(yīng)處理。
      [0048]圖3為本發(fā)明云存儲系統(tǒng)中的臨界資源釋放方法較佳實施例的流程圖。如圖3所示,包括以下步驟31?36。
      [0049]步驟31:進程X需要釋放臨界資源1,與管理節(jié)點之間建立會話連接,并確定
      當(dāng)前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1