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

一種具有容錯(cuò)性的數(shù)據(jù)操作方法及分布式的數(shù)據(jù)存儲(chǔ)系統(tǒng)與流程

文檔序號(hào):12010101閱讀:599來源:國知局
一種具有容錯(cuò)性的數(shù)據(jù)操作方法及分布式的數(shù)據(jù)存儲(chǔ)系統(tǒng)與流程
一種具有容錯(cuò)性的數(shù)據(jù)操作方法及分布式的數(shù)據(jù)存儲(chǔ)系統(tǒng)【技術(shù)領(lǐng)域】本發(fā)明涉及數(shù)據(jù)處理技術(shù),特別涉及一種具有容錯(cuò)性的數(shù)據(jù)操作方法及分布式的數(shù)據(jù)存儲(chǔ)系統(tǒng)。

背景技術(shù):
分布式的數(shù)據(jù)存儲(chǔ)系統(tǒng)使得數(shù)據(jù)存儲(chǔ)空間可以無限擴(kuò)大,在與互聯(lián)網(wǎng)相關(guān)的應(yīng)用中起著非常重要的作用。請(qǐng)參考圖1,圖1為現(xiàn)有技術(shù)中分布式的數(shù)據(jù)存儲(chǔ)系統(tǒng)的一個(gè)示意圖。如圖1所示,分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)A包括大量的數(shù)據(jù)存儲(chǔ)服務(wù)器,分別是X1、X2……Xn,這些數(shù)據(jù)存儲(chǔ)服務(wù)器上保存著各種各樣的數(shù)據(jù),例如X1中存放著數(shù)據(jù)表Y1,X2中存放著數(shù)據(jù)表X2等等。此外,系統(tǒng)A還包括一個(gè)元信息服務(wù)器B,在服務(wù)器B中保存著數(shù)據(jù)元信息,數(shù)據(jù)元信息中記錄了數(shù)據(jù)在系統(tǒng)中具體的存儲(chǔ)位置,例如記錄了數(shù)據(jù)表Y1存放在X1,數(shù)據(jù)表Y2存放在X2等等。下面以用戶發(fā)起的數(shù)據(jù)操作請(qǐng)求為建立數(shù)據(jù)表Y3為例,對(duì)現(xiàn)有技術(shù)的數(shù)據(jù)處理過程進(jìn)行介紹。元數(shù)據(jù)服務(wù)器B在獲取到用戶建立數(shù)據(jù)表Y3的請(qǐng)求后,假設(shè)確定X3為存放數(shù)據(jù)表Y3的數(shù)據(jù)存儲(chǔ)服務(wù)器,則元數(shù)據(jù)服務(wù)器B首先在X3上創(chuàng)建Y3,并且對(duì)自身存儲(chǔ)的數(shù)據(jù)元信息進(jìn)行更新,以增加“數(shù)據(jù)表X3存放在Y3上”的記錄。由此可見,元數(shù)據(jù)服務(wù)器對(duì)分布式的數(shù)據(jù)存儲(chǔ)系統(tǒng)而言非常重要,其中保存的數(shù)據(jù)元信息,是響應(yīng)用戶請(qǐng)求,實(shí)現(xiàn)對(duì)數(shù)據(jù)進(jìn)行讀取或刪改操作的基礎(chǔ)。在現(xiàn)有技術(shù)中,如果元數(shù)據(jù)服務(wù)器發(fā)送故障,則存在數(shù)據(jù)元信息丟失的風(fēng)險(xiǎn)。

技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題是提供一種具有容錯(cuò)性的數(shù)據(jù)操作方法及分布式的數(shù)據(jù)存儲(chǔ)系統(tǒng),以提高在分布式的數(shù)據(jù)存儲(chǔ)系統(tǒng)中機(jī)器發(fā)生故障時(shí)系統(tǒng)的穩(wěn)定性。本發(fā)明為解決技術(shù)問題而采用的技術(shù)方案是提供一種具有容錯(cuò)性的數(shù)據(jù)操作方法,其特征在于,所述方法應(yīng)用于分布式的數(shù)據(jù)存儲(chǔ)系統(tǒng),所述數(shù)據(jù)存儲(chǔ)系統(tǒng)包括至少三臺(tái)元信息服務(wù)器及一臺(tái)選主服務(wù)器,所述方法包括由所述選主服務(wù)器在所述至少三臺(tái)元信息服務(wù)器中確定主服務(wù)器和從服務(wù)器的步驟以及由所述主服務(wù)器和所述從服務(wù)器共同根據(jù)用戶的數(shù)據(jù)操作請(qǐng)求進(jìn)行數(shù)據(jù)操作的步驟,其中由所述選主服務(wù)器在所述三臺(tái)元信息服務(wù)器中確定主服務(wù)器和從服務(wù)器的步驟包括:A1.所述至少三臺(tái)元信息服務(wù)器通過心跳協(xié)議定期與所述選主服務(wù)器進(jìn)行通訊,且每次通訊中各臺(tái)元信息服務(wù)器向所述選主服務(wù)器發(fā)送自身標(biāo)識(shí)值;A2.所述選主服務(wù)器為自身標(biāo)識(shí)值最大的元信息服務(wù)器提供第一設(shè)定時(shí)長的授權(quán),以使得在所述第一設(shè)定時(shí)長內(nèi)自身標(biāo)識(shí)值最大的元信息服務(wù)器成為主服務(wù)器,其余元信息服務(wù)器成為從服務(wù)器;A3.在所述第一設(shè)定時(shí)長到期前,所述主服務(wù)器向所述選主服務(wù)器請(qǐng)求延期,且當(dāng)所述選主服務(wù)器收到延期請(qǐng)求后,為所述主服務(wù)器提供第二設(shè)定時(shí)長的授權(quán),以使得所述主服務(wù)器在所述第二設(shè)定時(shí)長內(nèi)繼續(xù)有效;A4.如果所述選主服務(wù)器在所述第一設(shè)定時(shí)長到期后未收到所述主服務(wù)器的延期請(qǐng)求,則返回所述A2;由所述主服務(wù)器和所述從服務(wù)器共同根據(jù)用戶的數(shù)據(jù)操作請(qǐng)求進(jìn)行數(shù)據(jù)操作的步驟包括:B1.所述主服務(wù)器獲取用戶的數(shù)據(jù)操作請(qǐng)求,并將所述請(qǐng)求發(fā)送至所述從服務(wù)器;B2.所述從服務(wù)器在收到所述請(qǐng)求后,將自身標(biāo)識(shí)值增加一個(gè)單位,并向所述主服務(wù)器發(fā)送應(yīng)答;B3.所述主服務(wù)器收到至少一個(gè)從服務(wù)器的應(yīng)答后,執(zhí)行所述請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)操作,并更新自身保存的與所述數(shù)據(jù)操作相關(guān)的元信息,以及,在將自身標(biāo)識(shí)值增加一個(gè)單位后向所述從服務(wù)器發(fā)送同步元信息的通知;B4.所述從服務(wù)器收到所述通知后,將自身保存的元信息同步為所述主服務(wù)器更新后的元信息,以及,在將自身標(biāo)識(shí)值增加一個(gè)單位后向所述主服務(wù)器發(fā)送應(yīng)答;B5.所述主服務(wù)器在收到至少一個(gè)從服務(wù)器的應(yīng)答后,將自身標(biāo)識(shí)值增加一個(gè)單位,并向用戶返回操作成功的應(yīng)答。根據(jù)本發(fā)明之一優(yōu)選實(shí)施例,所述數(shù)據(jù)操作包括寫入數(shù)據(jù)、讀取數(shù)據(jù)、刪除數(shù)據(jù)或查找數(shù)據(jù)。根據(jù)本發(fā)明之一優(yōu)選實(shí)施例,在所述A3后,如果所述主服務(wù)器未收到所述第二設(shè)定時(shí)長的授權(quán),則將自身切換為從服務(wù)器。根據(jù)本發(fā)明之一優(yōu)選實(shí)施例,當(dāng)所述主服務(wù)器在所述B1至所述B5的執(zhí)行過程中發(fā)生故障時(shí),所述方法進(jìn)一步包括:由所述選主服務(wù)器在未發(fā)生故障的元信息服務(wù)器中重新確立主服務(wù)器和從服務(wù)器,且重新確立的主服務(wù)器和從服務(wù)器再次執(zhí)行所述B1至所述B5。本發(fā)明還提供了一種分布式的數(shù)據(jù)存儲(chǔ)系統(tǒng),其特征在于,所述數(shù)據(jù)存儲(chǔ)系統(tǒng)包括至少三臺(tái)元信息服務(wù)器及一臺(tái)選主服務(wù)器,所述選主服務(wù)器用于在所述至少三臺(tái)元信息服務(wù)器中確定主服務(wù)器和從服務(wù)器,所述主服務(wù)器和所述從服務(wù)器用于共同根據(jù)用戶的數(shù)據(jù)操作請(qǐng)求進(jìn)行數(shù)據(jù)操作,其中所述選主服務(wù)器在所述至少三臺(tái)元信息服務(wù)器中確定主服務(wù)器和從服務(wù)器的方式包括:C1.所述三臺(tái)元信息服務(wù)器通過心跳協(xié)議定期與所述選主服務(wù)器進(jìn)行通訊,且每次通訊中各臺(tái)元信息服務(wù)器向所述選主服務(wù)器發(fā)送自身標(biāo)識(shí)值;C2.所述選主服務(wù)器為自身標(biāo)識(shí)值最大的元信息服務(wù)器提供第一設(shè)定時(shí)長的授權(quán),以使得在所述第一設(shè)定時(shí)長內(nèi)自身標(biāo)識(shí)值最大的元信息服務(wù)器成為主服務(wù)器,其余元信息服務(wù)器成為從服務(wù)器;C3.在所述第一設(shè)定時(shí)長到期前,所述主服務(wù)器向所述選主服務(wù)器請(qǐng)求延期,且當(dāng)所述選主服務(wù)器收到延期請(qǐng)求后,為所述主服務(wù)器提供第二設(shè)定時(shí)長的授權(quán),以使得所述主服務(wù)器在所述第二設(shè)定時(shí)長內(nèi)繼續(xù)有效;C4.如果所述選主服務(wù)器在所述第一設(shè)定時(shí)長到期后未收到所述主服務(wù)器的延期請(qǐng)求,則返回C2;所述主服務(wù)器和所述從服務(wù)器共同根據(jù)用戶的數(shù)據(jù)操作請(qǐng)求進(jìn)行數(shù)據(jù)操作的方式包括:D1.所述主服務(wù)器獲取用戶的數(shù)據(jù)操作請(qǐng)求,并將所述請(qǐng)求發(fā)送至所述從服務(wù)器;D2.所述從服務(wù)器在收到所述請(qǐng)求后,將自身標(biāo)識(shí)值增加一個(gè)單位,并向所述主服務(wù)器發(fā)送應(yīng)答;D3.所述主服務(wù)器收到至少一個(gè)從服務(wù)器的應(yīng)答后,執(zhí)行所述請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)操作,并更新自身保存的與所述數(shù)據(jù)操作相關(guān)的元信息,以及,在將自身標(biāo)識(shí)值增加一個(gè)單位后向所述從服務(wù)器發(fā)送同步元信息的通知;D4.所述從服務(wù)器收到所述通知后,將自身保存的元信息同步為所述主服務(wù)器更新后的元信息,以及,在將自身標(biāo)識(shí)值增加一個(gè)單位后向所述主服務(wù)器發(fā)送應(yīng)答;D5.所述主服務(wù)器在收到至少一個(gè)從服務(wù)器的應(yīng)答后,將自身標(biāo)識(shí)值增加一個(gè)單位,并向用戶返回操作成功的應(yīng)答。根據(jù)本發(fā)明之一優(yōu)選實(shí)施例,所述數(shù)據(jù)操作包括寫入數(shù)據(jù)、讀取數(shù)據(jù)、刪除數(shù)據(jù)或查找數(shù)據(jù)。根據(jù)本發(fā)明之一優(yōu)選實(shí)施例,在所述C3后,如果所述主服務(wù)器未收到所述第二設(shè)定時(shí)長的授權(quán),則將自身切換為從服務(wù)器。根據(jù)本發(fā)明之一優(yōu)選實(shí)施例,當(dāng)所述主服務(wù)器在所述D1至所述D5的執(zhí)行過程中發(fā)生故障時(shí),所述選主服務(wù)器進(jìn)一步用于在未發(fā)生故障的元信息服務(wù)器中重新確立主服務(wù)器和從服務(wù)器,且重新確立的主服務(wù)器和從服務(wù)器進(jìn)一步用于再次執(zhí)行所述D1至所述D5。由以上技術(shù)方案可以看出,本發(fā)明中通過選主服務(wù)器在若干臺(tái)元信息服務(wù)器中確定主服務(wù)器和從服務(wù)器的機(jī)制,可以保證主服務(wù)器在發(fā)生故障時(shí),系統(tǒng)仍然能夠運(yùn)行,此外,主服務(wù)器和從服務(wù)器之間的數(shù)據(jù)交互方式,能夠保證至少有兩臺(tái)元數(shù)據(jù)服務(wù)器上的元數(shù)據(jù)信息的完整性,從而大大提高了分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)的穩(wěn)定性?!靖綀D說明】圖1為現(xiàn)有技術(shù)中分布式的數(shù)據(jù)存儲(chǔ)系統(tǒng)的一個(gè)示意圖;圖2為本發(fā)明中具有容錯(cuò)性的數(shù)據(jù)操作方法的流程示意圖;圖3為本發(fā)明中分布式的數(shù)據(jù)存儲(chǔ)系統(tǒng)的結(jié)構(gòu)示意框圖。【具體實(shí)施方式】為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)描述。請(qǐng)參考圖2,圖2為本發(fā)明中具有容錯(cuò)性的數(shù)據(jù)操作方法的流程示意圖,該方法應(yīng)用于分布式的數(shù)據(jù)存儲(chǔ)系統(tǒng)。如圖1所示,該方法包括兩大步驟,分別是由選主服務(wù)器在至少三臺(tái)元信息服務(wù)器中確立主服務(wù)器和從服務(wù)器的步驟,以及由主服務(wù)器和從服務(wù)器共同根據(jù)用戶的數(shù)據(jù)操作請(qǐng)求進(jìn)行數(shù)據(jù)操作的步驟。其中由選主服務(wù)器在至少三臺(tái)元信息服務(wù)器中確立主服務(wù)器和從服務(wù)器的步驟具體包括:步驟S1:所述至少三臺(tái)元信息服務(wù)器通過心跳協(xié)議定期與選主服務(wù)器進(jìn)行通訊,且每次通訊中各臺(tái)元信息服務(wù)器向選主服務(wù)器發(fā)送自身標(biāo)識(shí)值。步驟S2:選主服務(wù)器為自身標(biāo)識(shí)值最大的元信息服務(wù)器提供第一設(shè)定時(shí)長的授權(quán),以使得在第一設(shè)定時(shí)長內(nèi)自身標(biāo)識(shí)值最大的元信息服務(wù)器成為主服務(wù)器,其余元信息服務(wù)器成為從服務(wù)器。步驟S3:在第一設(shè)定時(shí)長到期前,主服務(wù)器向選主服務(wù)器請(qǐng)求延期,且當(dāng)選主服務(wù)器收到延期請(qǐng)求后,為主服務(wù)器提供第二設(shè)定時(shí)長的授權(quán),以使得主服務(wù)器在第二設(shè)定時(shí)長內(nèi)繼續(xù)有效。步驟S4:如果選主服務(wù)器在第一設(shè)定時(shí)長到期后未收到選主服務(wù)器的延期請(qǐng)求,則返回步驟S2。其中,心跳協(xié)議用于機(jī)器節(jié)點(diǎn)之間連續(xù)交換信息,以確保連接的機(jī)器節(jié)點(diǎn)可以感知對(duì)方的正常運(yùn)行。步驟S1中,元信息服務(wù)器通過心跳協(xié)議,可以定期向選主服務(wù)器發(fā)送數(shù)據(jù)包,在每次發(fā)送的數(shù)據(jù)包中包含了一個(gè)與自身相關(guān)的標(biāo)識(shí)值。該標(biāo)識(shí)值的大小表示的是對(duì)應(yīng)元信息服務(wù)器中維護(hù)的數(shù)據(jù)元信息的新舊程度,每臺(tái)元信息服務(wù)器相關(guān)的標(biāo)識(shí)值,初始值是相同的,例如可以設(shè)定為0,標(biāo)識(shí)值如何發(fā)生改變,將在后續(xù)介紹主服務(wù)器和從服務(wù)器共同根據(jù)用戶的數(shù)據(jù)操作請(qǐng)求進(jìn)行數(shù)據(jù)操作的步驟中進(jìn)行說明。在步驟S2中,選主服務(wù)器將在多臺(tái)元信息服務(wù)器中確定一臺(tái)主服務(wù)器,其余的元信息服務(wù)器將作為從服務(wù)器。在后續(xù)介紹主服務(wù)器和從服務(wù)器共同根據(jù)用戶的數(shù)據(jù)操作請(qǐng)求進(jìn)行數(shù)據(jù)操作的步驟中還可以看出,主服務(wù)器將用于直接與用戶請(qǐng)求進(jìn)行交互,而從服務(wù)器與主服務(wù)器之間將進(jìn)行相互交互,以保證分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)的穩(wěn)定性。在步驟S2中,選主服務(wù)器是根據(jù)各臺(tái)元信息服務(wù)器發(fā)送的自身標(biāo)識(shí)值決定選取哪臺(tái)元信息服務(wù)器作為主服務(wù)器的,其中自身標(biāo)識(shí)值最大的元信息服務(wù)器將作為主服務(wù)器。作為一種實(shí)施方式,如果各臺(tái)元信息服務(wù)器自身的標(biāo)識(shí)值相同,例如初始時(shí)均為0,則可以從這若干臺(tái)元信息服務(wù)器中任意選取一臺(tái)作為主服務(wù)器。在確立了主服務(wù)器之后,其他的元信息服務(wù)器就成為了從服務(wù)器,也就是說,在本方法適用的分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中,主服務(wù)器是唯一的,而從服務(wù)器的數(shù)量在兩臺(tái)以上。步驟S2中,選主服務(wù)器在確定了主服務(wù)器后,還會(huì)生成一個(gè)在第一設(shè)定時(shí)長內(nèi)有效的授權(quán)(作為一種實(shí)施方式,第一設(shè)定時(shí)長可以是一個(gè)隨機(jī)的長度),并且將該授權(quán)提供給主服務(wù)器,這樣,在第一設(shè)定時(shí)長內(nèi),這臺(tái)元信息服務(wù)器作為主服務(wù)器都是有效的。在步驟S3中,如果主服務(wù)器處于正常工作的狀態(tài),就會(huì)在第一設(shè)定時(shí)長到期前,向選主服務(wù)器發(fā)送延期的請(qǐng)求,選主服務(wù)器收到延期請(qǐng)求后,與第一次提供授權(quán)時(shí)類似的,可以隨機(jī)產(chǎn)生一個(gè)長度作為第二設(shè)定時(shí)長,生成在該時(shí)長內(nèi)有效的授權(quán)再次提供給主服務(wù)器,使得主服務(wù)器能夠繼續(xù)作為主服務(wù)器運(yùn)行。如果主服務(wù)器發(fā)生了故障,則在第一設(shè)定時(shí)長到期后,由于不能發(fā)送延期申請(qǐng),則選主服務(wù)器就不能收到延期請(qǐng)求,在步驟S4中,選主服務(wù)器將返回到步驟S2,也就是再次在所有正常工作的元信息服務(wù)器中,根據(jù)各臺(tái)元信息服務(wù)器自身的標(biāo)識(shí)符確定其中的一臺(tái)作為主服務(wù)器。在步驟S2執(zhí)行后,由于主服務(wù)器和從服務(wù)器已經(jīng)確定,因此,本發(fā)明中由主服務(wù)器和從服務(wù)器共同根據(jù)用戶的數(shù)據(jù)操作請(qǐng)求進(jìn)行數(shù)據(jù)操作的步驟就能夠執(zhí)行,也就是說,在本發(fā)明的方法初始執(zhí)行時(shí),當(dāng)主服務(wù)器一旦確定,本發(fā)明方法應(yīng)用的分布式數(shù)據(jù)存儲(chǔ)系統(tǒng),就具備了響應(yīng)用戶數(shù)據(jù)操作的能力。具體地,由主服務(wù)器和從服務(wù)器共同根據(jù)用戶的數(shù)據(jù)操作請(qǐng)求進(jìn)行數(shù)據(jù)操作的步驟包括:步驟Sa:主服務(wù)器獲取用戶的數(shù)據(jù)操作請(qǐng)求,并將該請(qǐng)求發(fā)送至從服務(wù)器。步驟Sb:從服務(wù)器在收到上述請(qǐng)求后,將自身標(biāo)識(shí)值增加一個(gè)單位,并向主服務(wù)器發(fā)送應(yīng)答。步驟Sc:主服務(wù)器收到至少一個(gè)從服務(wù)器的應(yīng)答后,執(zhí)行上述請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)操作,并更新自身保持的與上述數(shù)據(jù)操作相關(guān)的元信息,以及,在將自身標(biāo)識(shí)值增加一個(gè)單位后向從服務(wù)器發(fā)送同步元信息的通知。步驟Sd:從服務(wù)器收到上述通知后,將自身保持的元信息同步為主服務(wù)器更新后的元信息,以及,在將自身標(biāo)識(shí)值增加一個(gè)單位后向主服務(wù)器發(fā)送應(yīng)答。步驟Se:主服務(wù)器在收到至少一個(gè)從服務(wù)器的應(yīng)答后,將自身標(biāo)識(shí)值增加一個(gè)單位,并向用戶返回操作成功的應(yīng)答。在上述說明中,用戶的數(shù)據(jù)操作包括多種類型,例如寫入數(shù)據(jù)、讀取數(shù)據(jù)、刪除數(shù)據(jù)或查找數(shù)據(jù)。下面以寫入數(shù)據(jù)為例對(duì)上述步驟進(jìn)行說明。假設(shè)用戶發(fā)送的請(qǐng)求為建立數(shù)據(jù)表Y,在步驟Sa中,主服務(wù)器在接收到用戶的該請(qǐng)求后,首先將該請(qǐng)求發(fā)送給從服務(wù)器。步驟Sb中,從服務(wù)器此時(shí)如果在正常運(yùn)行,則首先將自身標(biāo)識(shí)值增加一個(gè)單位,再向主服務(wù)器發(fā)送應(yīng)答。步驟Sc中,主服務(wù)器需要收到至少一臺(tái)從服務(wù)器的應(yīng)答,才能進(jìn)行后續(xù)操作,因?yàn)槿绻鞣?wù)器沒有收到任何一臺(tái)從服務(wù)器的應(yīng)答,則說明從服務(wù)器均發(fā)生了故障,作為一種實(shí)施方式,這種情況下,主服務(wù)器可以向分布式存儲(chǔ)系統(tǒng)的管理人員發(fā)出警示。如果主服務(wù)器收到了至少一臺(tái)從服務(wù)器的應(yīng)答,則在步驟Sc中,主服務(wù)器首先執(zhí)行用戶請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)操作。例如用戶請(qǐng)求建立數(shù)據(jù)表Y,則主服務(wù)器在分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)的一臺(tái)數(shù)據(jù)存儲(chǔ)服務(wù)器X上建立數(shù)據(jù)表Y。與本次建立數(shù)據(jù)表Y相關(guān)的元信息也會(huì)隨之被主服務(wù)器更新,也就是說,主服務(wù)器需要在原來保存的元信息中添加一條“數(shù)據(jù)表Y存放在數(shù)據(jù)存儲(chǔ)服務(wù)器X上”的記錄。主服務(wù)器在執(zhí)行完上述動(dòng)作以后,會(huì)將自身標(biāo)識(shí)值也增加一個(gè)單位,然后向從服務(wù)器發(fā)送同步元信息的通知。步驟Sd中,從服務(wù)器在收到主服務(wù)器發(fā)送的通知后,也會(huì)將自身保存的元信息同步為與主服務(wù)器更新后一致的元信息,例如在自身保存的元信息中添加“數(shù)據(jù)表Y存放在數(shù)據(jù)存儲(chǔ)服務(wù)器X上”的記錄。此后,從服務(wù)器也會(huì)將自身標(biāo)識(shí)值增加一個(gè)單位,再向主服務(wù)器發(fā)送應(yīng)答。步驟Se中,主服務(wù)器在收到至少一個(gè)從服務(wù)器的應(yīng)答后,也將自身標(biāo)識(shí)值增加一個(gè)單位,并向用戶返回操作成功的應(yīng)答。如果主服務(wù)器一個(gè)從服務(wù)器的應(yīng)答都沒有收到,則說明從服務(wù)器均發(fā)生了故障,作為一種實(shí)施方式,主服務(wù)器可以向分布式存儲(chǔ)系統(tǒng)的管理人員發(fā)出警示。由上述說明可以看出,本發(fā)明的方法中,想要正常響應(yīng)用戶的數(shù)據(jù)操作,需要至少兩臺(tái)元信息服務(wù)器正常工作,即一臺(tái)主服務(wù)器和至少一臺(tái)從服務(wù)器。并且只有在主服務(wù)器和至少一臺(tái)從服務(wù)器中的元信息一致更新時(shí),才會(huì)向用戶的請(qǐng)求返回操作成功的應(yīng)答。這樣,本發(fā)明的數(shù)據(jù)操作方法,能夠保證數(shù)據(jù)元信息至少在系統(tǒng)中存在一個(gè)正確的備份,如果主服務(wù)器發(fā)生故障,保存了正確的元信息備份的從服務(wù)器可以被選主服務(wù)器選為新的主服務(wù)器,從而向用戶提供服務(wù)。從步驟Sa至Se的介紹中也可以看出,元信息服務(wù)器維護(hù)的自身標(biāo)識(shí)值,可以起到標(biāo)識(shí)自身保存的元信息的新舊程度的作用,自身標(biāo)識(shí)值越大,則說明自身保存的元信息越新。假設(shè)有從服務(wù)器W1和W2,在步驟Sd中,W1和W2在分別同步自身保存的元信息的過程中,W1同步完成,而W2未同步完成時(shí),主服務(wù)器發(fā)生了故障,這樣,W2的元信息就是不完整的,同時(shí)它自身的標(biāo)識(shí)值也會(huì)比W1自身的標(biāo)識(shí)值小,這樣,選主服務(wù)器再次選擇主服務(wù)器時(shí),就會(huì)將W1作為主服務(wù)器,這種機(jī)制大大增加了系統(tǒng)的穩(wěn)定性。值得注意的是,在前面的介紹中,將標(biāo)識(shí)值增加一個(gè)單位,可以是加1,也可以是加2,也就是說,一個(gè)單位的絕對(duì)數(shù)值并不受限定,但是如果一個(gè)單位的絕對(duì)值為2,則在每次將標(biāo)識(shí)值增加一個(gè)單位時(shí),均必須增加絕對(duì)值2。以上,對(duì)本發(fā)明中應(yīng)用于分布式的數(shù)據(jù)存儲(chǔ)系統(tǒng)的數(shù)據(jù)操作方法進(jìn)行了完整介紹。作為其他實(shí)施例,在選主服務(wù)器確定主服務(wù)器和從服務(wù)器時(shí),在步驟S3后,如果主服務(wù)器未收到第二設(shè)定時(shí)長的授權(quán),還可以將自身切換為從服務(wù)器。因?yàn)檫x主服務(wù)器也存在發(fā)生故障的可能,主服務(wù)器將自身切換為從服務(wù)器,則選主服務(wù)器恢復(fù)后可以依據(jù)前面介紹的方式,在各臺(tái)元信息服務(wù)器中重新選定主服務(wù)器。作為其他實(shí)施例,如果主服務(wù)器在執(zhí)行步驟Sa至Se的過程中發(fā)生了故障,則本發(fā)明的方法進(jìn)一步包括:由選主服務(wù)器在未發(fā)生故障的元信息服務(wù)器中重新確立主服務(wù)器和從服務(wù)器,且重新確立的主服務(wù)器和從服務(wù)器再次執(zhí)行步驟Sa至Se。主服務(wù)器在執(zhí)行步驟Sa至Se的過程中發(fā)生了故障,就不能對(duì)用戶的請(qǐng)求正確返回應(yīng)答,此時(shí)選主服務(wù)器會(huì)依據(jù)前面所說的方式,在未發(fā)生故障的元信息服務(wù)器,即之前的從服務(wù)器中重新確立一個(gè)主服務(wù)器和其它的從服務(wù)器。被重新確立的主服務(wù)器和從服務(wù)器通過再次執(zhí)行Sa至Se,就能夠?yàn)橛脩舴祷卣_的應(yīng)答。上述過程對(duì)用戶屏蔽了系統(tǒng)故障,用戶并不知道有服務(wù)器發(fā)生了故障,不需要再次向系統(tǒng)發(fā)送請(qǐng)求就能夠得到正確的返回,極大增強(qiáng)了系統(tǒng)的穩(wěn)定性。請(qǐng)參考圖3,圖3是本發(fā)明中分布式的數(shù)據(jù)存儲(chǔ)系統(tǒng)的結(jié)構(gòu)示意框圖。如圖3所示,該系統(tǒng)包括至少三臺(tái)元信息服務(wù)器和一臺(tái)選主服務(wù)器。其中選主服務(wù)器用于在上述至少三臺(tái)元信息服務(wù)器中確定主服務(wù)器和從服務(wù)器。而主服務(wù)器和從服務(wù)器用于共同根據(jù)用戶的數(shù)據(jù)操作請(qǐng)求進(jìn)行數(shù)據(jù)操作。其中,選主服務(wù)器在所述至少三臺(tái)元信息服務(wù)器中確定主服務(wù)器和從服務(wù)器的方式包括:G1.所述三臺(tái)元信息服務(wù)器通過心跳協(xié)議定期與選主服務(wù)器進(jìn)行通訊,且每次通訊中各臺(tái)元信息服務(wù)器向選主服務(wù)器發(fā)送自身標(biāo)識(shí)值。G2.選主服務(wù)器為自身標(biāo)識(shí)值最大的元信息服務(wù)器提供第一設(shè)定時(shí)長的授權(quán),以使得在第一設(shè)定時(shí)長內(nèi)自身標(biāo)識(shí)值最大的元信息服務(wù)器成為主服務(wù)器,其余元信息服務(wù)器成為從服務(wù)器。G3.在第一設(shè)定時(shí)長到期前,主服務(wù)器向選主服務(wù)器請(qǐng)求延期,且當(dāng)選主服務(wù)器收到延期請(qǐng)求后,為主服務(wù)器提供第二設(shè)定時(shí)長的授權(quán),以使得主服務(wù)器在第二設(shè)定時(shí)長內(nèi)繼續(xù)有效。G4.如果選主服務(wù)器在第一設(shè)定時(shí)長到期后未收到主服務(wù)器的延期請(qǐng)求,則返回G2。其中,主服務(wù)器和從服務(wù)器共同根據(jù)用戶的數(shù)據(jù)操作請(qǐng)求進(jìn)行數(shù)據(jù)操作的方式包括:Ga.主服務(wù)器獲取用戶的數(shù)據(jù)操作請(qǐng)求,并將該請(qǐng)求發(fā)送至從服務(wù)器。Gb.從服務(wù)器在收到所述請(qǐng)求后,將自身標(biāo)識(shí)值增加一個(gè)單位,并向主服務(wù)器發(fā)送應(yīng)答。Gc.主服務(wù)器收到至少一個(gè)從服務(wù)器的應(yīng)答后,執(zhí)行上述請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)操作,并更新自身保存的與該數(shù)據(jù)操作相關(guān)的元信息,以及,在將自身標(biāo)識(shí)值增加一個(gè)單位后向從服務(wù)器發(fā)送同步元信息的通知。Gd.從服務(wù)器收到所述通知后,將自身保存的元信息同步為主服務(wù)器更新后的元信息,以及,在將自身標(biāo)識(shí)值增加一個(gè)單位后向主服務(wù)器發(fā)送應(yīng)答。Ge.主服務(wù)器在收到至少一個(gè)從服務(wù)器的應(yīng)答后,將自身標(biāo)識(shí)值增加一個(gè)單位,并向用戶返回操作成功的應(yīng)答。根據(jù)一個(gè)實(shí)施例,上述介紹中提到的數(shù)據(jù)操作,包括寫入數(shù)據(jù)、讀取數(shù)據(jù)、刪除數(shù)據(jù)或查找數(shù)據(jù)。根據(jù)一個(gè)實(shí)施例,選主服務(wù)器在所述至少三臺(tái)元信息服務(wù)器中確定主服務(wù)器和從服務(wù)器的方式中,在G3執(zhí)行后,如果主服務(wù)器未收到所述第二設(shè)定時(shí)長的授權(quán),則將自身切換為從服務(wù)器。根據(jù)一個(gè)實(shí)施例,當(dāng)主服務(wù)器在Ga至Ge的執(zhí)行過程中發(fā)生故障時(shí),選主服務(wù)器進(jìn)一步用于在未發(fā)生故障的元信息服務(wù)器中重新確立主服務(wù)器和從服務(wù)器,且重新確立的主服務(wù)器和從服務(wù)器進(jìn)一步用于再次執(zhí)行Ga至所述Ge。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1