亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

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

文檔序號(hào):9667223閱讀:來(lái)源:國(guó)知局
發(fā)送的第二鎖請(qǐng)求消息,該第二鎖請(qǐng)求消息攜帶第二指示信息,該第二指示信息用于指示該第三緩存節(jié)點(diǎn)不是該第一緩存節(jié)點(diǎn)的備節(jié)點(diǎn);
[0091]鎖服務(wù)器根據(jù)該第二指示信息將該第二鎖請(qǐng)求消息放入鎖請(qǐng)求隊(duì)列。
[0092]具體而言,鎖服務(wù)器在確定主節(jié)點(diǎn)故障時(shí),會(huì)啟動(dòng)鎖恢復(fù)期,即靜默期。在鎖恢復(fù)期內(nèi),鎖服務(wù)器也會(huì)接收到其他多個(gè)緩存節(jié)點(diǎn)的申請(qǐng)鎖請(qǐng)求消息,例如可以接收到第三緩存節(jié)點(diǎn)發(fā)送的第二鎖請(qǐng)求消息,該第二鎖請(qǐng)求消息是第三緩存節(jié)點(diǎn)的申請(qǐng)鎖請(qǐng)求消息,該第二鎖請(qǐng)求消息攜帶第二指示信息,該第二指示信息用于指示該第三緩存節(jié)點(diǎn)不是該第一緩存節(jié)點(diǎn)的備節(jié)點(diǎn),該第二指示信息與第一指示信息的操作字或者標(biāo)記不同。鎖服務(wù)器根據(jù)該第二指示信息將該第二鎖請(qǐng)求消息加入到等待隊(duì)列。也就是說(shuō),分布式存儲(chǔ)系統(tǒng)中可以存在多個(gè)緩存節(jié)點(diǎn),當(dāng)其他緩存節(jié)點(diǎn)在鎖恢復(fù)期內(nèi)申請(qǐng)鎖時(shí),鎖服務(wù)器在接收到其他緩存節(jié)點(diǎn)的申請(qǐng)鎖請(qǐng)求消息后,會(huì)將多個(gè)鎖請(qǐng)求消息放入隊(duì)列,但不作處理。
[0093]應(yīng)理解,本發(fā)明實(shí)施例中,鎖恢復(fù)期的時(shí)間可以進(jìn)行設(shè)置,例如,可以設(shè)置為8秒或10秒,本發(fā)明對(duì)此不作限制。
[0094]可選地,在該鎖恢復(fù)期結(jié)束后,鎖服務(wù)器處理第三鎖請(qǐng)求消息,該第三鎖請(qǐng)求消息位于該鎖請(qǐng)求隊(duì)列的隊(duì)首。這里可以包括鎖空閑和非空閑兩種情況。下面分別進(jìn)行描述。
[0095]例如,可選地,在鎖非空閑的情況下,該處理第三鎖請(qǐng)求消息可以包括:
[0096]在該第二緩存節(jié)點(diǎn)占有該分布式鎖時(shí),鎖服務(wù)器向該第二緩存節(jié)點(diǎn)發(fā)送第一鎖召回消息,該第一鎖召回消息用于指示該第二緩存節(jié)點(diǎn)釋放該鎖;
[0097]鎖服務(wù)器接收該第二緩存節(jié)點(diǎn)發(fā)送的第一鎖釋放消息,該第一鎖釋放消息用于指示該第二緩存節(jié)點(diǎn)已釋放該鎖;
[0098]根據(jù)該第一鎖釋放消息向該第四緩存節(jié)點(diǎn)發(fā)送第二鎖響應(yīng)消息,該第四緩存節(jié)點(diǎn)為發(fā)送該第三鎖請(qǐng)求消息的緩存節(jié)點(diǎn),該第二鎖響應(yīng)消息用于指示該第四緩存節(jié)點(diǎn)占有該鎖。
[0099]具體而言,在鎖非空閑時(shí),鎖服務(wù)器向持鎖者即備節(jié)點(diǎn)發(fā)起鎖召回消息,例如向第二緩存節(jié)點(diǎn)發(fā)送第一鎖召回消息,該第一鎖召回消息用于指示該第二緩存節(jié)點(diǎn)釋放鎖。第二緩存節(jié)點(diǎn)在接收到該第一鎖召回消息后,會(huì)觸發(fā)臟數(shù)據(jù)下盤(pán),然后釋放鎖資源,并向鎖服務(wù)器發(fā)送第一鎖釋放消息,該第一鎖釋放消息用于指示第二緩存節(jié)點(diǎn)已經(jīng)釋放鎖。在召回鎖成功后,鎖服務(wù)器將鎖分配給處于鎖請(qǐng)求消息隊(duì)首的第四緩存節(jié)點(diǎn)。
[0100]這里,相應(yīng)地,第二緩存節(jié)點(diǎn)會(huì)接收到該鎖服務(wù)器發(fā)送的第一鎖召回消息,該第一鎖召回消息用于該鎖服務(wù)器指示該第二緩存節(jié)點(diǎn)釋放該鎖;
[0101]第二緩存節(jié)點(diǎn)根據(jù)該第一鎖召回消息釋放該鎖;
[0102]第二緩存節(jié)點(diǎn)根據(jù)該第一鎖召回消息向鎖服務(wù)器發(fā)送第一鎖釋放消息。
[0103]又例如,可選地,在鎖空閑的情況下,該處理第三鎖請(qǐng)求消息也可以包括:
[0104]在該鎖空閑時(shí),向該第四緩存節(jié)點(diǎn)發(fā)送第三鎖響應(yīng)消息,該第四緩存節(jié)點(diǎn)為發(fā)送該第三鎖請(qǐng)求消息的緩存節(jié)點(diǎn),該第三鎖響應(yīng)消息用于指示該第四緩存節(jié)點(diǎn)占有該鎖。
[0105]在鎖空閑時(shí),鎖服務(wù)器可以直接將鎖資源分配給處于隊(duì)首的申請(qǐng)鎖請(qǐng)求消息,例如在鎖空閑時(shí),鎖服務(wù)器直接將鎖分配給第四緩存節(jié)點(diǎn)。
[0106]可選地,在本發(fā)明實(shí)施例中,第一指示信息為第一操作字,第二指示信息為第二操作字,鎖服務(wù)器可以根據(jù)該第一操作字和該第二操作字區(qū)分備節(jié)點(diǎn)的鎖恢復(fù)請(qǐng)求消息和其他節(jié)點(diǎn)的鎖申請(qǐng)請(qǐng)求消息。例如,在物理實(shí)現(xiàn)中,第一指示信息和第二指示信息為不同的值,鎖服務(wù)器根據(jù)不同的值區(qū)分不同的指示信息。
[0107]應(yīng)理解,在本發(fā)明的各種實(shí)施例中,上述各過(guò)程的序號(hào)的大小并不意味著執(zhí)行順序的先后,各過(guò)程的執(zhí)行順序應(yīng)以其功能和內(nèi)在邏輯確定,而不應(yīng)對(duì)本發(fā)明實(shí)施例的實(shí)施過(guò)程構(gòu)成任何限定。
[0108]在本發(fā)明實(shí)施例中,前文的鎖服務(wù)器在分布式存儲(chǔ)系統(tǒng)中可以認(rèn)為是DLMS,并非說(shuō)該鎖服務(wù)器為分布式的,只是在分布式存儲(chǔ)系統(tǒng)中鎖服務(wù)器對(duì)應(yīng)的術(shù)語(yǔ)為DLMS。
[0109]因此,本發(fā)明實(shí)施例的對(duì)分布式存儲(chǔ)系統(tǒng)的鎖管理的方法,鎖服務(wù)器根據(jù)第二緩存節(jié)點(diǎn)發(fā)送的攜帶第一指示信息的第一鎖請(qǐng)求消息,將鎖資源分配給第二緩存節(jié)點(diǎn),使得第二緩存節(jié)點(diǎn)能夠優(yōu)先占有鎖資源,從而保證了數(shù)據(jù)的一致性。
[0110]下面將結(jié)合圖4詳細(xì)描述本發(fā)明實(shí)施例。這里采用DLMS描述鎖服務(wù)器。應(yīng)注意,這只是為了幫助本領(lǐng)域技術(shù)人員更好地理解本發(fā)明實(shí)施例,而非限制本發(fā)明實(shí)施例的范圍。
[0111]在本發(fā)明的一個(gè)實(shí)施例中,當(dāng)?shù)谝痪彺婀?jié)點(diǎn)故障時(shí),DLMS和第二緩存節(jié)點(diǎn)均能感知到第一緩存節(jié)點(diǎn)故障,DLMS在感知到第一緩存節(jié)點(diǎn)故障時(shí)啟動(dòng)鎖恢復(fù)期。在鎖恢復(fù)期內(nèi),第三緩存節(jié)點(diǎn)也向DLMS發(fā)起第二鎖請(qǐng)求消息,請(qǐng)求申請(qǐng)鎖資源。DLMS將第三緩存節(jié)點(diǎn)的第二鎖請(qǐng)求消息加入等待隊(duì)列,該第二鎖請(qǐng)求消息位于隊(duì)首。第二緩存節(jié)點(diǎn)向DLMS發(fā)送第一鎖請(qǐng)求消息。DLMS立即處理第二緩存節(jié)點(diǎn)發(fā)送的第一鎖請(qǐng)求消息,并向第二緩存節(jié)點(diǎn)回復(fù)第一鎖響應(yīng)消息,以告知第二緩存節(jié)點(diǎn)申請(qǐng)鎖成功。第二緩存節(jié)點(diǎn)在接收到第一鎖響應(yīng)消息后占有鎖,將備份臟數(shù)據(jù)下盤(pán),從而備份臟數(shù)據(jù)生效,可以被訪問(wèn)。在鎖恢復(fù)期到后,DLMS開(kāi)始處理處于隊(duì)列的隊(duì)首鎖請(qǐng)求消息。DLMS通過(guò)判斷鎖的狀態(tài)進(jìn)行下一步的操作。如果鎖空閑,DLMS可以直接將鎖分配給隊(duì)首的申請(qǐng)鎖請(qǐng)求消息對(duì)應(yīng)的緩存節(jié)點(diǎn),即第三緩存節(jié)點(diǎn);如果鎖非空閑,則DLMS向持鎖者即第二緩存節(jié)點(diǎn)發(fā)送第一鎖召回消息。第二緩存節(jié)點(diǎn)在收到該第一鎖召回消息后,觸發(fā)臟數(shù)據(jù)下盤(pán),并釋放鎖資源,同時(shí)向DLMS回復(fù)第一鎖釋放消息,告知DLMS已經(jīng)釋放鎖。DLMS在接收到第一鎖釋放消息后,將鎖分配給處于隊(duì)首的第三緩存節(jié)點(diǎn),同時(shí)向第三緩存節(jié)點(diǎn)發(fā)送第二鎖響應(yīng)消息,通知第三緩存節(jié)點(diǎn)可以占有鎖。
[0112]圖4是本發(fā)明實(shí)施例的對(duì)分布式存儲(chǔ)系統(tǒng)的鎖管理的一個(gè)具體例子的交互流程示意圖。本發(fā)明實(shí)施例中的各種術(shù)語(yǔ)的含義與前述各實(shí)施例相同。
[0113]301,DLMS確定第一緩存節(jié)點(diǎn)故障。
[0114]302,第二緩存節(jié)點(diǎn)確定第一緩存節(jié)點(diǎn)故障。
[0115]303,DLMS啟動(dòng)鎖恢復(fù)期。
[0116]304,第三緩存節(jié)點(diǎn)發(fā)送向DLMS第二鎖請(qǐng)求消息。
[0117]305,DLMS將第二鎖請(qǐng)求消息加入隊(duì)列。
[0118]306,第二緩存節(jié)點(diǎn)向DLMS發(fā)送第一鎖請(qǐng)求消息。
[0119]307,DLMS根據(jù)第一鎖請(qǐng)求消息向第二緩存節(jié)點(diǎn)發(fā)送第一鎖響應(yīng)消息。
[0120]308,第二緩存節(jié)點(diǎn)根據(jù)第一鎖響應(yīng)消息占有鎖。
[0121]309,在鎖恢復(fù)期到,DLMS判斷鎖非空閑。
[0122]可選地,如果DLMS判斷鎖空閑,則直接將鎖分配給第三緩存節(jié)點(diǎn)。
[0123]310,DLMS向第二緩存節(jié)點(diǎn)發(fā)送第一鎖召回消息。
[0124]311,第二緩存節(jié)點(diǎn)根據(jù)第一鎖召回消息釋放鎖。
[0125]312,第二緩存節(jié)點(diǎn)向DLMS發(fā)送第一鎖釋放消息。
[0126]313,DLMS向第三緩存節(jié)點(diǎn)發(fā)送第二鎖響應(yīng)消息。
[0127]應(yīng)理解,上述相應(yīng)信息的具體指示方式可參考前述各實(shí)施例,為了簡(jiǎn)潔,在此不再贅述。
[0128]因此,本發(fā)明實(shí)施例的對(duì)分布式存儲(chǔ)系統(tǒng)的鎖管理的方法,DLMS根據(jù)第二緩存節(jié)點(diǎn)發(fā)送的攜帶第一指示信息的第一鎖請(qǐng)求消息,將鎖資源分配給第二緩存節(jié)點(diǎn),使得第二緩存節(jié)點(diǎn)能夠優(yōu)先占有鎖資源,從而保證了數(shù)據(jù)的一致性。
[0129]本發(fā)明實(shí)施例中,在鎖恢復(fù)期內(nèi),備節(jié)點(diǎn)比其他并發(fā)業(yè)務(wù)的節(jié)點(diǎn)優(yōu)先獲得鎖資源,使得備節(jié)點(diǎn)上的備份臟數(shù)據(jù)可以被寫(xiě)入存儲(chǔ)器,從而保證了數(shù)據(jù)的一致性。另外,本發(fā)明實(shí)施例在現(xiàn)有系統(tǒng)上就可以實(shí)施,并不會(huì)對(duì)原有系統(tǒng)的結(jié)構(gòu)產(chǎn)生改變。
[0130]應(yīng)理解,在本發(fā)明的各種實(shí)施例中,上述各過(guò)程的序號(hào)的大小并不意味著執(zhí)行順序的先后,各過(guò)程的執(zhí)行順序應(yīng)以其功能和內(nèi)在邏輯確定,而不應(yīng)對(duì)本發(fā)明實(shí)施例的實(shí)施過(guò)程構(gòu)成任何限定。
[0131]上文中詳細(xì)描述了根據(jù)本發(fā)明實(shí)施例的鎖管理的方法。下面將描述根據(jù)本發(fā)明實(shí)施例的對(duì)分布式存儲(chǔ)系統(tǒng)的鎖服務(wù)器和第二緩存節(jié)點(diǎn),該分布式存儲(chǔ)系統(tǒng)包括鎖服務(wù)器和至少兩個(gè)緩存節(jié)點(diǎn)。
[0132]圖5示出了根據(jù)本發(fā)明實(shí)施例的鎖服務(wù)器500的示意性框圖。如圖5所示,該鎖服務(wù)器500包括:
[0133]確定模塊510,用于確定該至少兩個(gè)緩存節(jié)點(diǎn)中的第一緩存節(jié)點(diǎn)故障;
[0134]接收模塊520,用于接收該第二緩存節(jié)點(diǎn)發(fā)送的第一鎖請(qǐng)求消息,該第二緩存節(jié)點(diǎn)上緩存有該第一緩存節(jié)點(diǎn)備份的未寫(xiě)入存儲(chǔ)器的臟數(shù)據(jù),該第一鎖請(qǐng)求消息攜帶第一指示信息,該第一指示信息用于指示該第二緩存節(jié)點(diǎn)為該第一緩存節(jié)點(diǎn)的備節(jié)點(diǎn);
[0135]發(fā)送模塊530,用于根據(jù)該接收模塊接收的該第一鎖請(qǐng)求消息向該第二緩存節(jié)點(diǎn)發(fā)送第一鎖響應(yīng)消息,該第一鎖響應(yīng)消息用于指示該第二緩存節(jié)點(diǎn)占有鎖,以便于該第二緩存節(jié)點(diǎn)根據(jù)該鎖發(fā)送該臟數(shù)據(jù)給存儲(chǔ)器。
[0136]可選地,在本發(fā)明實(shí)施例中,該鎖服務(wù)器500還包括:
[0137]處理模塊,用于在確定該第一緩存節(jié)點(diǎn)故障時(shí),啟動(dòng)鎖恢復(fù)期;
[0138]該接收模塊520還用于在該鎖恢復(fù)期內(nèi),接收該至少兩個(gè)緩存節(jié)點(diǎn)中的第三緩存節(jié)點(diǎn)發(fā)送的第二鎖請(qǐng)求消息,該第二鎖請(qǐng)求消息攜帶第二指示信息,該第二指示信息用于指示該第三緩存節(jié)點(diǎn)不是該第一緩存節(jié)點(diǎn)的備節(jié)點(diǎn);
[0139]該處理模塊還用于將該第二鎖請(qǐng)求消息放入鎖請(qǐng)求隊(duì)列。
[0140]可選地,該處理模塊
當(dāng)前第3頁(yè)1 2 3 4 5 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1