欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

對分布式存儲系統(tǒng)的鎖管理的方法和裝置的制造方法_2

文檔序號:9667223閱讀:來源:國知局
k Management Server,簡稱為“DLMS”)。主機,也可以稱為緩存節(jié)點,可以包括本地緩存、客戶端代理(ClientAgent,簡稱為 “CA”)和分布式鎖客戶端(Distributed Lock Management Client,簡稱為“DLMC”)。各個主機上的本地緩存可構(gòu)成分布式緩存子系統(tǒng)。各個主機上的DLMC與DLMS可構(gòu)成分布式鎖子系統(tǒng)??蛻舳税l(fā)起數(shù)據(jù)請求后,可能通過任一 CA接入來訪問分布式存儲系統(tǒng)中的數(shù)據(jù)(即存儲器中的數(shù)據(jù)),每個CA通過對應(yīng)的本地緩存利用緩存來提高訪問存儲資源的性能。保存于本地緩存中還未寫入磁盤中的數(shù)據(jù)稱之為臟數(shù)據(jù)。每個緩存節(jié)點在需要訪問存儲器(磁盤)或者將數(shù)據(jù)下盤時,均需要持有鎖,即調(diào)用圖中的分布式鎖客戶端DLMC的鎖接口,向DLMS申請鎖。在同一時刻只能有一個DLMC進行數(shù)據(jù)下盤的操作,因此需要向分布式鎖服務(wù)器申請鎖的使用權(quán)限,只有在申請到鎖后,才能進行后續(xù)數(shù)據(jù)的操作。
[0053]本發(fā)明的技術(shù)方案,可以應(yīng)用到分布式存儲系統(tǒng)中。分布式存儲系統(tǒng)中采用分布式鎖控制對共享資源的訪問。例如,在分布式存儲系統(tǒng)中的多個緩存節(jié)點對同一數(shù)據(jù)資源進行訪問時,對于同一個數(shù)據(jù)對象而言,會對應(yīng)一個鎖,為了避免多個緩存節(jié)點存在互斥,采用鎖進行協(xié)調(diào),從而控制不同緩存節(jié)點對同一數(shù)據(jù)對象的訪問。具體而言,對于不同的系統(tǒng)或者同一系統(tǒng)的不同主機之間要訪問同一個或同一組共享資源時,需要使用分布式鎖來防止不同的系統(tǒng)或者同一系統(tǒng)的不同主機之間的干擾,保證數(shù)據(jù)的一致性。為了描述方便,下文將以“鎖”代替“分布式鎖”。在分布式存儲系統(tǒng)中,緩存節(jié)點必須獲取到分布式鎖,才能進行數(shù)據(jù)的讀寫。DLMS可以控制鎖的分配,并能夠獲知到鎖處于空閑或非空閑態(tài)。在鎖空閑時,DLMS直接將鎖分配給申請鎖的緩存節(jié)點;在鎖非空閑時,DLMS觸發(fā)鎖召回機制將鎖召回,將鎖重新分配給新申請者。鎖召回機制即DLMS觸發(fā)原持鎖者先將其本地緩存中的臟數(shù)據(jù)下盤,從而保證新持鎖者即新的緩存節(jié)點獲取到鎖時,其他的緩存節(jié)點上已經(jīng)沒有臟數(shù)據(jù),使得新持鎖者此時訪問存儲資源即磁盤時可以獲得完整和一致性的數(shù)據(jù)內(nèi)容。
[0054]圖2示出了本發(fā)明實施例的分布式存儲系統(tǒng)數(shù)據(jù)一致性原理的示意性流程圖。下面結(jié)合圖2描述分布式存儲系統(tǒng)中使用分布式鎖實現(xiàn)跨節(jié)點同步訪問數(shù)據(jù)的一致性的原理。
[0055]101,向主緩存節(jié)點11發(fā)起寫數(shù)據(jù)請求。
[0056]102,主緩存節(jié)點11在收到寫數(shù)據(jù)請求后向鎖服務(wù)器13發(fā)起申請鎖請求。
[0057]103,鎖服務(wù)器13判斷鎖空閑時,將鎖分配給主緩存節(jié)點11。
[0058]104,鎖服務(wù)器13向主緩存節(jié)點11回復(fù)一個申請鎖成功消息,
[0059]105,主緩存節(jié)點11持有鎖后,寫數(shù)據(jù)入本地緩存,并將數(shù)據(jù)備份到備節(jié)點。
[0060]106,向備緩存節(jié)點12發(fā)起讀/寫數(shù)據(jù)請求。
[0061]107,備緩存節(jié)點12在收到讀/寫數(shù)據(jù)請求后也向鎖服務(wù)器13發(fā)起申請鎖請求。
[0062]108,鎖服務(wù)器13判斷鎖處于非空閑狀態(tài)。
[0063]109,鎖服務(wù)器13向持鎖者即主緩存節(jié)點11發(fā)起鎖召回請求。
[0064]110,主緩存節(jié)點11收到鎖召回請求后觸發(fā)臟數(shù)據(jù)下盤,然后釋放鎖。
[0065]111,鎖服務(wù)器13收到鎖召回成功消息。
[0066]112,鎖服務(wù)器13召回鎖后將鎖重新分配給新申請者即備緩存節(jié)點12。
[0067]113,鎖服務(wù)器13向備緩存節(jié)點12發(fā)送申請鎖成功消息。
[0068]114,備緩存節(jié)點12收到申請鎖成功消息后持有鎖,寫數(shù)據(jù)入本地緩存或者讀取磁盤數(shù)據(jù)到本地緩存。
[0069]在圖2中,當原持鎖者即主緩存節(jié)點11存在故障的場景下,備緩存節(jié)點12需要升主并激活備份臟數(shù)據(jù),則首先要從鎖服務(wù)器13獲取到鎖資源,才能實現(xiàn)臟數(shù)據(jù)的訪問,從而保證數(shù)據(jù)的一致性。其中,備緩存節(jié)點12即主緩存節(jié)點11的備份節(jié)點,備份臟數(shù)據(jù)即主緩存節(jié)點備份在備緩存節(jié)點上的臟數(shù)據(jù),臟數(shù)據(jù)即保存于緩存節(jié)點中而未寫入磁盤的數(shù)據(jù)。
[0070]為了描述方便,下文將以“主節(jié)點”代替“主緩存節(jié)點”,以“備節(jié)點”代替“備份緩存節(jié)點”。在這種跨節(jié)點或跨子系統(tǒng)的場景,主節(jié)點故障時,持有主節(jié)點備份臟數(shù)據(jù)的備節(jié)點需要升主并激活備份臟數(shù)據(jù)。本發(fā)明實施例的對分布式存儲系統(tǒng)的鎖管理的方法應(yīng)用于主節(jié)點故障的場景。
[0071]圖3示出了根據(jù)本發(fā)明實施例的對分布式存儲系統(tǒng)的鎖管理的方法的交互流程示意圖。下面結(jié)合圖3,對根據(jù)本發(fā)明實施例的對分布式存儲系統(tǒng)的鎖管理的方法進行詳細描述。圖3中的201至204為實施本發(fā)明實施例的對分布式存儲系統(tǒng)的鎖管理的方法必須執(zhí)行的流程,下面將該方法中的每個步驟進行詳細說明。如圖3所示,該分布式存儲系統(tǒng)中包括鎖服務(wù)器,第一緩存節(jié)點和第二緩存節(jié)點。在本發(fā)明實施例中,該分布式存儲系統(tǒng)可以包括多個緩存節(jié)點,例如,第一緩存節(jié)點為主節(jié)點,第二緩存節(jié)點為該主節(jié)點的備節(jié)點。
[0072]201,鎖服務(wù)器確定該至少兩個緩存節(jié)點中的第一緩存節(jié)點故障。
[0073]具體而言,第一緩存節(jié)點為主節(jié)點,當主節(jié)點故障時,鎖服務(wù)器能夠感知到主節(jié)點故障。
[0074]202,第二緩存節(jié)點確定該至少兩個緩存節(jié)點中的第一緩存節(jié)點故障。
[0075]同樣地,當主節(jié)點故障時,備節(jié)點也可以感知到主節(jié)點故障,并啟動備升主的過程。
[0076]203,第二緩存節(jié)點向該鎖服務(wù)器發(fā)送第一鎖請求消息,該第二緩存節(jié)點上緩存有該第一緩存節(jié)點備份的未寫入存儲器的臟數(shù)據(jù),該第一鎖請求消息攜帶第一指示信息,該第一指示信息用于指示該第二緩存節(jié)點為該第一緩存節(jié)點的備節(jié)點。
[0077]具體而言,在備節(jié)點啟動備升主過程后,備節(jié)點會向鎖服務(wù)器發(fā)送第一鎖請求消息,該備節(jié)點上具有主節(jié)點備份的臟數(shù)據(jù),該臟數(shù)據(jù)還未寫入到存儲器或磁盤里,該第一鎖請求消息攜帶第一指示信息,該第一指示信息用于指示該第二緩存節(jié)點為該第一緩存節(jié)點的備節(jié)點,則第一鎖請求消息即用于備節(jié)點請求鎖服務(wù)器恢復(fù)鎖。在物理實現(xiàn)中,第一指示信息可以通過操作字或者標記來指示。
[0078]204,鎖服務(wù)器根據(jù)該第一鎖請求消息向該第二緩存節(jié)點發(fā)送第一鎖響應(yīng)消息,該第一鎖響應(yīng)消息用于指示該第二緩存節(jié)點占有鎖,以便于該第二緩存節(jié)點根據(jù)該鎖發(fā)送該臟數(shù)據(jù)給存儲器。
[0079]具體而言,鎖服務(wù)器收到備節(jié)點發(fā)送的第一鎖請求消息后,向備節(jié)點回復(fù)一個第一鎖響應(yīng)消息,該第一鎖響應(yīng)消息即表示備節(jié)點可以占有鎖。此時,鎖服務(wù)器也有可能會收到其他緩存節(jié)點的申請鎖請求消息,但是通過第一指示信息,鎖服務(wù)器可以知道該鎖請求消息是備節(jié)點發(fā)起的恢復(fù)鎖請求消息,從而會立即處理備節(jié)點的鎖請求消息,使得備節(jié)點能夠優(yōu)先獲得鎖資源。換言之,鎖服務(wù)器能夠區(qū)分出其他節(jié)點的申請鎖請求消息與備節(jié)點的鎖恢復(fù)請求消息。比如,鎖服務(wù)器通過消息的操作字或者標記的不同來區(qū)分不同的鎖請求消息。
[0080]205,第二緩存節(jié)點占有鎖,根據(jù)該鎖發(fā)送該臟數(shù)據(jù)給存儲器。
[0081]備節(jié)點占有鎖后,根據(jù)鎖將主節(jié)點備份的臟數(shù)據(jù)發(fā)送給存儲器。具體而言,備節(jié)點在接收到鎖服務(wù)器發(fā)送的第一鎖響應(yīng)消息后根據(jù)該第一鎖響應(yīng)消息占有鎖資源,將主節(jié)點備份的臟數(shù)據(jù)寫入存儲器或磁盤,那么主節(jié)點在備節(jié)點上備份的臟數(shù)據(jù)即生效,從而可以被其他節(jié)點訪問,保證了數(shù)據(jù)的一致性。
[0082]在分布式存儲系統(tǒng)中,如果主節(jié)點的臟數(shù)據(jù)已經(jīng)成功下盤,則此時備節(jié)點上的備份的臟數(shù)據(jù)也一并刪除。主節(jié)點在故障時,不能實現(xiàn)臟數(shù)據(jù)的下盤,那么要下盤的臟數(shù)據(jù)只能通過備節(jié)點代替主節(jié)點去完成,因此備節(jié)點會向鎖服務(wù)器發(fā)送鎖恢復(fù)請求消息,即第一鎖請求消息,申請到鎖資源后,就可將主節(jié)點備份的臟數(shù)據(jù)寫入存儲器。
[0083]需要說明的是,在鎖恢復(fù)期內(nèi),即使有其他緩存節(jié)點向鎖服務(wù)器發(fā)起申請鎖請求消息,甚至于備節(jié)點向鎖服務(wù)器發(fā)送恢復(fù)鎖請求消息之前發(fā)起申請鎖請求消息,鎖服務(wù)器也不會處理其他緩存節(jié)點的請求,而是讓其他緩存節(jié)點的請求處于排隊等待狀態(tài),即掛起其他緩存節(jié)點的申請鎖請求消息。在這些情況下,鎖服務(wù)器優(yōu)先處理備節(jié)點發(fā)起的恢復(fù)鎖請求,也就是說,備節(jié)點可以插隊優(yōu)先獲得鎖資源,進行后續(xù)的數(shù)據(jù)讀寫操作。
[0084]在本發(fā)明實施例中,當主節(jié)點故障時,備節(jié)點和鎖服務(wù)器都能夠感知到主節(jié)點故障,兩者感知故障的時間不一定完全一樣,在實際中可能稍微有些延遲,但基本上是同時感知到的,這并不影響本發(fā)明實施例的鎖管理的方法的實施或應(yīng)用。例如,當備節(jié)點發(fā)送恢復(fù)鎖請求消息時,可能鎖服務(wù)器還沒有進入靜默期,但是只要鎖服務(wù)器進入靜默期,會立即處理備節(jié)點發(fā)送的恢復(fù)鎖請求消息。
[0085]應(yīng)理解,在分布式存儲系統(tǒng)中,可以有多個緩存節(jié)點,對于緩存節(jié)點的數(shù)目并不作限制。
[0086]還應(yīng)理解,在本發(fā)明實施例中,編號“第一”、“第二”…僅僅為了區(qū)分不同的對象,比如為了區(qū)分不同的緩存節(jié)點或者請求消息,并不對本發(fā)明實施例的范圍構(gòu)成限制,本發(fā)明并不限于此。
[0087]本發(fā)明實施例的對分布式存儲系統(tǒng)的鎖管理的方法,通過增加第一指示信息,使得第二緩存節(jié)點能夠優(yōu)先占有鎖資源,從而保證了數(shù)據(jù)的一致性,提高可靠性,并且,本發(fā)明實施例的對分布式存儲系統(tǒng)的鎖管理的方法在現(xiàn)有系統(tǒng)上就能實施,不會對原有系統(tǒng)的結(jié)構(gòu)產(chǎn)生改變。
[0088]可選地,在本發(fā)明實施例中,該方法還可以包括:
[0089]鎖服務(wù)器在確定該第一緩存節(jié)點故障時,啟動鎖恢復(fù)期;
[0090]在該鎖恢復(fù)期內(nèi),鎖服務(wù)器接收該至少兩個緩存節(jié)點中的第三緩存節(jié)點
當前第2頁1 2 3 4 5 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
绥宁县| 共和县| 五河县| 邻水| 元谋县| 黄平县| 宿州市| 洪雅县| 当雄县| 宾阳县| 红安县| 东阿县| 宁都县| 徐水县| 南宫市| 正定县| 潮安县| 丰镇市| 灵璧县| 阿城市| 丽江市| 宁阳县| 陆河县| 屏山县| 年辖:市辖区| 高邮市| 高邮市| 抚州市| 南涧| 交口县| 达拉特旗| 湘西| 龙川县| 青田县| 咸宁市| 大姚县| 新津县| 策勒县| 清镇市| 日照市| 米泉市|