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

分布式存儲(chǔ)方法和分布式存儲(chǔ)裝置的制作方法

文檔序號(hào):6384702閱讀:162來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):分布式存儲(chǔ)方法和分布式存儲(chǔ)裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種分布式存儲(chǔ)方法和分布式存儲(chǔ)裝置。
背景技術(shù)
隨著計(jì)算機(jī)技術(shù)以及網(wǎng)絡(luò)技術(shù)的高速發(fā)展,分布式存儲(chǔ)系統(tǒng)得到了長(zhǎng)足的發(fā)展。傳統(tǒng)的分布式存儲(chǔ)系統(tǒng)將數(shù)據(jù)和相應(yīng)的屬性信息分布式地存儲(chǔ)到多個(gè)存儲(chǔ)節(jié)點(diǎn)中。通常,分布式存儲(chǔ)系統(tǒng)具有針對(duì)故障存儲(chǔ)節(jié)點(diǎn)的理論上允許的最大數(shù)量,即在該理論上允許的最大數(shù)量以下的存儲(chǔ)節(jié)點(diǎn)發(fā)生故障的情況下,該分布式存儲(chǔ)系統(tǒng)理論上仍然能夠利用未發(fā)生故障的節(jié)點(diǎn)進(jìn)行正常存取。另一方面,在傳統(tǒng)的分布式存儲(chǔ)系統(tǒng)中,為了確保數(shù)據(jù)讀寫(xiě)的一致性,通常采用了一些判斷規(guī)則。以下,將以W+R>N的判斷規(guī)則為例來(lái)進(jìn)行說(shuō)明。當(dāng)然,判斷規(guī)則并不局限于此。具體地,為了確保在傳統(tǒng)的分布式存儲(chǔ)系統(tǒng)中的數(shù)據(jù)讀寫(xiě)一致性,例如可采用W+R>N的判斷規(guī)則,其中W表示用于判斷數(shù)據(jù)寫(xiě)成功的閾值(后文簡(jiǎn)稱(chēng)為寫(xiě)閾值),即在一次寫(xiě)入操作中,當(dāng)針對(duì)至少W個(gè)存儲(chǔ)節(jié)點(diǎn)的寫(xiě)入操作成功時(shí),才認(rèn)為本次寫(xiě)入操作成功,否則回滾操作;R表示用于判斷數(shù)據(jù)讀成功的閾值(后文簡(jiǎn)稱(chēng)讀閾值),即在一次讀取操作中,當(dāng)從至少R個(gè)存儲(chǔ)節(jié)點(diǎn)獲得相同屬性(例如,版本)的數(shù)據(jù)時(shí),才認(rèn)為本次讀取操作成功,否則拒絕操作;N表示分布式存儲(chǔ)系統(tǒng)中的存儲(chǔ)節(jié)點(diǎn)的總數(shù)量。采用W+R>N的判斷規(guī)則能夠確保從分布式存儲(chǔ)系統(tǒng)讀取的數(shù)據(jù)與最新版本的成功寫(xiě)入的數(shù)據(jù)一致。然而,在W+R>N的判斷規(guī)則之下,W與R不能同時(shí)小于N/2,這使得,在分布式存儲(chǔ)系統(tǒng)中發(fā)生故障的存儲(chǔ)節(jié)點(diǎn)的數(shù)量處于存儲(chǔ)節(jié)點(diǎn)總數(shù)的一半(N/2)至理論上允許的最大數(shù)量的范圍內(nèi)時(shí),盡管如前所述理論上分布式存儲(chǔ)系統(tǒng)仍然能夠利用未發(fā)生故障的節(jié)點(diǎn)進(jìn)行正常存取,但卻因不能滿(mǎn)足W+R>N的判斷規(guī)則而無(wú)法進(jìn)行數(shù)據(jù)讀寫(xiě)。

發(fā)明內(nèi)容
有鑒于此,本發(fā)明旨在提供一種分布式存儲(chǔ)方法及裝置,其能夠確保即使在發(fā)生故障的存儲(chǔ)節(jié)點(diǎn)的數(shù)量處于存儲(chǔ)節(jié)點(diǎn)總數(shù)的一半(N/2)至理論上允許的最大數(shù)量的范圍內(nèi)時(shí)也能夠進(jìn)行正確可靠的數(shù)據(jù)讀寫(xiě)。為了實(shí)現(xiàn)上述目的,在第一方面,本發(fā)明提出了一種分布式存儲(chǔ)方法,其應(yīng)用于具有多個(gè)存儲(chǔ)節(jié)點(diǎn)的分布式存儲(chǔ)系統(tǒng),所述分布式存儲(chǔ)方法包括以下步驟設(shè)置步驟,用于設(shè)置附加存儲(chǔ)節(jié)點(diǎn);寫(xiě)入操作步驟,用于當(dāng)接收到寫(xiě)入指令時(shí),進(jìn)行如下寫(xiě)入操作將數(shù)據(jù)和相應(yīng)的屬性信息寫(xiě)入所述多個(gè)存儲(chǔ)節(jié)點(diǎn),并且將所述屬性信息寫(xiě)入所述附加存儲(chǔ)節(jié)點(diǎn),其中所述附加存儲(chǔ)節(jié)點(diǎn)不存儲(chǔ)所述數(shù)據(jù);讀取操作步驟,用于當(dāng)接收到讀取指令時(shí),進(jìn)行如下讀取操作從所述多個(gè)存儲(chǔ)節(jié)點(diǎn)讀取所述數(shù)據(jù)和相應(yīng)的屬性信息,并且從所述附加存儲(chǔ)節(jié)點(diǎn)讀取所述屬性信息;其中,當(dāng)寫(xiě)入成功的所述存儲(chǔ)節(jié)點(diǎn)的數(shù)量和寫(xiě)入成功的所述附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量之和超過(guò)寫(xiě)閾值時(shí),視為所述寫(xiě)入操作步驟所進(jìn)行的寫(xiě)入操作成功,否則視為寫(xiě)入操作失敗;以及當(dāng)從所述存儲(chǔ)節(jié)點(diǎn)和所述附加存儲(chǔ)節(jié)點(diǎn)讀取到的相同屬性信息的數(shù)量超過(guò)讀閾值時(shí),視為所述讀取操作步驟所進(jìn)行的讀取操作成功,否則,視為讀取操作失敗。結(jié)合第一方面,在第一種可能的實(shí)施方式中,在所述寫(xiě)入操作失敗的情況下,重新執(zhí)行被視為失敗的寫(xiě)入操作;以及在所述讀取操作失敗的情況下,重新執(zhí)行與被視為失敗的讀取操作相對(duì)應(yīng)的寫(xiě)入操作。結(jié)合第一方面或第一方面的第一種可能的實(shí)施方式,在第二種可能的實(shí)施方式中,所述寫(xiě)閾值和所述讀閾值之和大于所述存儲(chǔ)節(jié)點(diǎn)和所述附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量之和。結(jié)合第一方面或第一方面的第一種或第二種可能的實(shí)施方式,在第三種可能的實(shí)施方式中,在所述設(shè)置步驟中,根據(jù)期望允許的故障存儲(chǔ)節(jié)點(diǎn)數(shù)量和所述多個(gè)存儲(chǔ)節(jié)點(diǎn)的數(shù)量來(lái)設(shè)置所述附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量。結(jié)合第一方面的第三種可能的實(shí)施方式,在第四種可能的實(shí)施方式中,在所述設(shè)置步驟中,根據(jù)如下關(guān)系式設(shè)置所述附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量

x>2y-N其中X表示所述附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量、y表示所述期望允許的故障存儲(chǔ)節(jié)點(diǎn)數(shù)量,N表示所述多個(gè)存儲(chǔ)節(jié)點(diǎn)的數(shù)量。結(jié)合第一方面或第一方面的第一種至第四種可能的實(shí)施方式,在第五種可能的實(shí)施方式中,根據(jù)期望允許的故障存儲(chǔ)節(jié)點(diǎn)數(shù)量、所述附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量和所述多個(gè)存儲(chǔ)節(jié)點(diǎn)的數(shù)量來(lái)設(shè)置所述寫(xiě)閾值和所述讀閾值。結(jié)合第一方面的第五種可能的實(shí)施方式,在第六種可能的實(shí)施方式中,根據(jù)如下關(guān)系式設(shè)置所述讀閾值和寫(xiě)閾值0<ff ^ N-y+x,0〈R ( N-y+x,ff+R>N+x其中W表示所述寫(xiě)閾值、R表示所述讀閾值、N表示所述多個(gè)存儲(chǔ)節(jié)點(diǎn)的數(shù)量、y表示所述期望允許的故障存儲(chǔ)節(jié)點(diǎn)數(shù)量、X表示所述附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量。結(jié)合第一方面或第一方面的第一種至第六種可能的實(shí)施方式,在第七種可能的實(shí)施方式中,設(shè)置所述寫(xiě)閾值與所述讀閾值相等。結(jié)合第一方面的第七種可能的實(shí)施方式,在第八種可能的實(shí)施方式中,根據(jù)如下關(guān)系式設(shè)置所述寫(xiě)閾值和所述讀閾值ff=R=N-y+x其中W表示所述寫(xiě)閾值、R表示所述讀閾值、N表示所述多個(gè)存儲(chǔ)節(jié)點(diǎn)的數(shù)量、y表示所述期望允許的故障存儲(chǔ)節(jié)點(diǎn)數(shù)量、X表示所述附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量。結(jié)合第一方面或第一方面的第一種至第八種可能的實(shí)施方式,在第九種可能的實(shí)施方式中,所述屬性信息是所述數(shù)據(jù)的版本信息和時(shí)間戳信息其中之一。在第二方面,本發(fā)明提出了一種分布式存儲(chǔ)裝置,其應(yīng)用于具有多個(gè)存儲(chǔ)節(jié)點(diǎn)的分布式存儲(chǔ)系統(tǒng),所述分布式存儲(chǔ)裝置包括設(shè)置部件,用于設(shè)置附加存儲(chǔ)節(jié)點(diǎn);寫(xiě)入操作部件,用于當(dāng)接收到寫(xiě)入指令時(shí),進(jìn)行如下寫(xiě)入操作將數(shù)據(jù)和相應(yīng)的屬性信息寫(xiě)入所述多個(gè)存儲(chǔ)節(jié)點(diǎn),并且將所述屬性信息寫(xiě)入所述附加存儲(chǔ)節(jié)點(diǎn),其中所述附加存儲(chǔ)節(jié)點(diǎn)不存儲(chǔ)所述數(shù)據(jù);讀取操作部件,用于當(dāng)接收到讀取指令時(shí),進(jìn)行如下讀取操作從所述多個(gè)存儲(chǔ)節(jié)點(diǎn)讀取所述數(shù)據(jù)和相應(yīng)的屬性信息,并且從所述附加存儲(chǔ)節(jié)點(diǎn)讀取所述屬性信息;寫(xiě)入操作成功判斷部件,用于當(dāng)寫(xiě)入成功的所述存儲(chǔ)節(jié)點(diǎn)的數(shù)量和寫(xiě)入成功的所述附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量之和超過(guò)寫(xiě)閾值時(shí),視為所述寫(xiě)入操作部件所進(jìn)行的寫(xiě)入操作成功,否則視為寫(xiě)入操作失?。灰约白x取操作成功判斷部件,用于當(dāng)從所述存儲(chǔ)節(jié)點(diǎn)和所述附加存儲(chǔ)節(jié)點(diǎn)讀取到的相同屬性信息的數(shù)量超過(guò)讀閾值時(shí),視為所述讀取操作部件所進(jìn)行的讀取操作成功,否則,視為讀取操作失敗。結(jié)合第二方面,在第一種可能的實(shí)施方式中,該裝置還包括讀寫(xiě)失敗控制部件;在所述寫(xiě)入操作失敗的情況下,所述讀寫(xiě)失敗控制部件指示所述寫(xiě)入操作部件重新執(zhí)行被視為失敗的寫(xiě)入操作;以及在所述讀取操作失敗的情況下,所述讀寫(xiě)失敗控制部件指示所述寫(xiě)入操作部件重新執(zhí)行與被視為失敗的讀取操作相對(duì)應(yīng)的寫(xiě)入操作。結(jié)合第二方面或第二方面的第一種可能的實(shí)施方式,在第二種可能的實(shí)施方式中,所述寫(xiě)閾值和所述讀閾值之和大于所述存儲(chǔ)節(jié)點(diǎn)和所述附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量之和。結(jié)合第二方面或第二方面的第一種或第二種可能的實(shí)施方式,在第三種可能的實(shí)施方式中,所述設(shè)置部件根據(jù)期望允許的故障存儲(chǔ)節(jié)點(diǎn)數(shù)量和所述多個(gè)存儲(chǔ)節(jié)點(diǎn)的數(shù)量來(lái)設(shè)置所述附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量。結(jié)合第二方面的第三種可能的實(shí)施方式,在第四種可能的實(shí)施方式中,所述設(shè)置部件根據(jù)如下關(guān)系式設(shè)置所述附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量x>2y-N其中X表示所述附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量、y表示所述期望允許的故障存儲(chǔ)節(jié)點(diǎn)數(shù)量,N表示所述多個(gè)存儲(chǔ)節(jié)點(diǎn)的數(shù)量。結(jié)合第二方面或第二方面的第一種至第四種可能的實(shí)施方式,在第五種可能的實(shí)施方式中,所述設(shè)置部件根據(jù)期望允許的故障存儲(chǔ)節(jié)點(diǎn)數(shù)量、所述附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量和所述多個(gè)存儲(chǔ)節(jié)點(diǎn)的數(shù)量來(lái)設(shè)置所述寫(xiě)閾值和所述讀閾值。結(jié)合第二方面的第五種可能的實(shí)施方式,在第六種可能的實(shí)施方式中,所述設(shè)置部件根據(jù)如下關(guān)系式設(shè)置所述讀閾值和寫(xiě)閾值0<ff ≤ N-y+x,0〈R ≤ N-y+x,ff+R>N+x其中W表示所述寫(xiě)閾值、R表示所述讀閾值、N表示所述多個(gè)存儲(chǔ)節(jié)點(diǎn)的數(shù)量、y表示所述期望允許的故障存儲(chǔ)節(jié)點(diǎn)數(shù)量、X表示所述附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量。結(jié)合第二方面或第二方面的第一種至第六種可能的實(shí)施方式,在第七種可能的實(shí)施方式中,所述設(shè)置部件設(shè)置所述寫(xiě)閾值與所述讀閾值相等。結(jié)合第二方面的第七種可能 的實(shí)施方式,在第八種可能的實(shí)施方式中,所述設(shè)置部件根據(jù)如下關(guān)系式設(shè)置所述寫(xiě)閾值和所述讀閾值W=R=N-y+x其中W表示所述寫(xiě)閾值、R表示所述讀閾值、N表示所述多個(gè)存儲(chǔ)節(jié)點(diǎn)的數(shù)量、y表示所述期望允許的故障存儲(chǔ)節(jié)點(diǎn)數(shù)量、X表示所述附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量。結(jié)合第二方面或第二方面的第一種至第八種可能的實(shí)施方式,在第九種可能的實(shí)施方式中,所述屬性信息是所述數(shù)據(jù)的版本信息和時(shí)間戳信息其中之一。根據(jù)下面參考附圖對(duì)示例性實(shí)施例的詳細(xì)說(shuō)明,本發(fā)明的其它特征及方面將變得清楚。


包含在說(shuō)明書(shū)中并且構(gòu)成說(shuō)明書(shū)的一部分的說(shuō)明書(shū)附圖與說(shuō)明書(shū)一起示出了本發(fā)明的示例性實(shí)施例、特征和方面,并且用于解釋本發(fā)明的原理。圖1示例性示出根據(jù)本發(fā)明第一實(shí)施例的分布式存儲(chǔ)裝置。圖2示例性示出用于第一實(shí)施例的分布式存儲(chǔ)裝置的分布式存儲(chǔ)方法。圖3示例性示出根據(jù)本發(fā)明第一實(shí)施例的分布式存儲(chǔ)裝置的變形例。圖4示例性示出根據(jù)第二實(shí)施例的鏡像保護(hù)模式下的數(shù)據(jù)讀寫(xiě)過(guò)程。圖5示例性示出根據(jù)第三實(shí)施例的EC保護(hù)模式下的數(shù)據(jù)讀寫(xiě)過(guò)程。圖6示例性示出了本發(fā)明的另一個(gè)實(shí)施例的一種分布式存儲(chǔ)裝置的結(jié)構(gòu)框圖。
具體實(shí)施例方式以下將參考附圖詳細(xì)說(shuō)明本發(fā)明的各種示例性實(shí)施例、特征和方面。附圖中相同的附圖標(biāo)記表示功能相同或相似的元件。盡管在附圖中示出了實(shí)施例的各種方面,但是除非特別指出,不必按比例繪制附圖。在這里專(zhuān)用的詞“示例性”意為“用作例子、實(shí)施例或說(shuō)明性”。這里作為“示例性”所說(shuō)明的任何實(shí)施例不必解釋為優(yōu)于或好于其它實(shí)施例。另外,為了更好的說(shuō)明本發(fā)明,在下文的具體實(shí)施方式
中給出了眾多的具體細(xì)節(jié)。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,沒(méi)有這些具體細(xì)節(jié),本發(fā)明同樣可以實(shí)施。在另外一些實(shí)例中,對(duì)于大家熟知的方法、手段、元件和電路未作詳細(xì)描述,以便于凸顯本發(fā)明的主旨。第一實(shí)施例圖1示例性示出根據(jù)本發(fā)明第一實(shí)施例的分布式存儲(chǔ)裝置I。根據(jù)第一實(shí)施例的分布式存儲(chǔ)裝置I應(yīng)用于具有多個(gè)存儲(chǔ)節(jié)點(diǎn)的分布式存儲(chǔ)系統(tǒng)。根據(jù)第一實(shí)施例的分布式存儲(chǔ)裝置I包括設(shè)置單元10、寫(xiě)入操作單元20、讀取操作單元30、寫(xiě)入操作成功判斷單元40和讀取操作成功判斷單元50。具體地,設(shè)置單元10被配置為設(shè)置附加存儲(chǔ)節(jié)點(diǎn),其中該附加存儲(chǔ)節(jié)點(diǎn)可以?xún)H寫(xiě)入屬性信息,而存儲(chǔ)節(jié)點(diǎn)需要寫(xiě)入數(shù)據(jù)和相應(yīng)的屬性信息。寫(xiě)入操作單元20被配置為當(dāng)接收到寫(xiě)入指令時(shí),進(jìn)行如下寫(xiě)入操作將數(shù)據(jù)和相應(yīng)的屬性信息寫(xiě)入所述多個(gè)存儲(chǔ)節(jié)點(diǎn)內(nèi),并且將屬性信息寫(xiě)入設(shè)置單元10所設(shè)置的附加存儲(chǔ)節(jié)點(diǎn)內(nèi),其中所述附加存儲(chǔ)節(jié)點(diǎn)不存儲(chǔ)所述數(shù)據(jù)。需要說(shuō)明的是,該寫(xiě)入指令可以來(lái)自外部用戶(hù),也可以是分布式存儲(chǔ)系統(tǒng)自身所發(fā)出的。讀取操作單元30被配置為當(dāng)接收到讀取指令時(shí),進(jìn)行如下讀取操作從所述多個(gè)存儲(chǔ)節(jié)點(diǎn)讀取數(shù)據(jù)和相應(yīng)的屬性信息,并且從設(shè)置單元10所設(shè)置的附加存儲(chǔ)節(jié)點(diǎn)讀取屬性信息。需要說(shuō)明的是,該讀取指令可以來(lái)自外部用戶(hù),也可以是分布式存儲(chǔ)系統(tǒng)自身所發(fā)出的。寫(xiě)入操作成功判斷單元40被配置為當(dāng)寫(xiě)入成功的存儲(chǔ)節(jié)點(diǎn)的數(shù)量和寫(xiě)入成功的附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量之和超過(guò)寫(xiě)閾值時(shí),視為寫(xiě)入操作成功,否則視為寫(xiě)入操作失敗。此外,讀取操作成功判斷單元50被配置為當(dāng)從存儲(chǔ)節(jié)點(diǎn)和附加存儲(chǔ)節(jié)點(diǎn)讀取到的相同屬性信息的數(shù)量超過(guò)讀閾值時(shí),視為讀取操作成功,否則,視為讀取操作失敗。以下將說(shuō)明用于上述分布式存儲(chǔ)裝置I的分布式存儲(chǔ)方法。圖2示例性示出用于第一實(shí)施例的分布式存儲(chǔ)裝置I的分布式存儲(chǔ)方法。該分布式存儲(chǔ)方法同樣應(yīng)用于具有多個(gè)存儲(chǔ)節(jié)點(diǎn)的上述分布式存儲(chǔ)系統(tǒng)100。在步驟SlOO中,設(shè)置附加存儲(chǔ)節(jié)點(diǎn)。在步驟S200中,判斷接收到寫(xiě)入指令還是讀取指令。在步驟S200中判斷為接收到寫(xiě)入指令的情況下,在步驟S300中進(jìn)行寫(xiě)入操作,具體地,將數(shù)據(jù)和相應(yīng)的屬性信息寫(xiě)入多個(gè)存儲(chǔ)節(jié)點(diǎn),并且將屬性信息寫(xiě)入附加存儲(chǔ)節(jié)點(diǎn),其中所述附加存儲(chǔ)節(jié)點(diǎn)不存儲(chǔ)所述數(shù)據(jù)。在步驟S400中,進(jìn)行寫(xiě)入操作成功判斷,具體地,當(dāng)在步驟S300中寫(xiě)入成功的存儲(chǔ)節(jié)點(diǎn)的數(shù)量和寫(xiě)入成功的附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量之和超過(guò)寫(xiě)閾值時(shí),視為寫(xiě)入操作成功,否則視為寫(xiě)入操作失敗。此外,在步驟S200中判斷為接收到讀取指令的情況下,在步驟S500中進(jìn)行讀取操作,具體地,從多個(gè)存儲(chǔ)節(jié)點(diǎn)讀取數(shù)據(jù)和相應(yīng)的屬性信息,并且從附加存儲(chǔ)節(jié)點(diǎn)讀取屬性信息。此外,在步驟S600中,進(jìn)行讀取操作成功判斷,具體地,當(dāng)在步驟S500中從存儲(chǔ)節(jié)點(diǎn)和附加存儲(chǔ)節(jié)點(diǎn)讀取到的相同屬性信息的數(shù)量超過(guò)讀閾值時(shí),視為讀取操作成功,否則,視為讀取操作失敗。在根據(jù)第一實(shí)施例的分布式存儲(chǔ)裝置和方法中設(shè)置了用于存儲(chǔ)屬性信息的附加存儲(chǔ)節(jié)點(diǎn),并相應(yīng)地定義了讀寫(xiě)入操作成功的判斷標(biāo)準(zhǔn),因此能夠確保即使在發(fā)生故障的存儲(chǔ)節(jié)點(diǎn)的數(shù)量處于存儲(chǔ)節(jié)點(diǎn)總數(shù)的一半(N/2)至理論上允許的最大數(shù)量的范圍內(nèi)時(shí)也能夠進(jìn)行正確可靠的數(shù)據(jù)讀寫(xiě)。圖3示例性示出根據(jù)本發(fā)明第一實(shí)施例的分布式存儲(chǔ)裝置I的變形例。在圖3所示的變形例中,在分布式存儲(chǔ)裝置I中,除了與圖1相同的部件以外(以下將不再重復(fù)說(shuō)明與圖1相同的部件的說(shuō)明),還包括讀寫(xiě)失敗控制部件60。該讀寫(xiě)失敗控制部件60進(jìn)行如下操作在所述寫(xiě)入操作失敗的情況下,所述讀寫(xiě)失敗控制部件指示所述寫(xiě)入操作部件重新執(zhí)行被視為失敗的寫(xiě)入操作;以及在所述讀取操作失敗的情況下,所述讀寫(xiě)失敗控制部件指示所述寫(xiě)入操作部件重新執(zhí)行與被視為失敗的讀取操作相對(duì)應(yīng)的寫(xiě)入操作。相應(yīng)地,在分布式存儲(chǔ)方法中,在寫(xiě)入操作失敗或讀取操作失敗的情況下,還可以進(jìn)行如下操作在所述寫(xiě)入操作失敗的情況下,重新執(zhí)行被視為失敗的寫(xiě)入操作;以及在所述讀取操作失敗的情況下,重新執(zhí)行與被視為失敗的讀取操作相對(duì)應(yīng)的寫(xiě)入操作。在以上說(shuō)明中,與被視為失敗的讀取操作相對(duì)應(yīng)的寫(xiě)入操作是指寫(xiě)入該讀取操作所讀取的數(shù)據(jù)和相應(yīng)屬性信息的寫(xiě)入操作,可選地,在執(zhí)行該相對(duì)應(yīng)的寫(xiě)入操作之前,可從多個(gè)存儲(chǔ)節(jié)點(diǎn)中刪除所述讀取操作要讀取的數(shù)據(jù)和相應(yīng)屬性信息,從附加存儲(chǔ)節(jié)點(diǎn)中刪除所述讀取操作要讀取的屬性信息,之后再重新將上述數(shù)據(jù)和相應(yīng)的屬性信息的寫(xiě)入存儲(chǔ)節(jié)點(diǎn),將屬性信息寫(xiě)入附加存儲(chǔ)節(jié)點(diǎn)。在另一種可能的實(shí)施方式中,寫(xiě)閾值和讀閾值之和可大于存儲(chǔ)節(jié)點(diǎn)和附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量之和。在另一種可能的實(shí)施方式中,可根據(jù)期望允許的故障存儲(chǔ)節(jié)點(diǎn)數(shù)量y和所述多個(gè)存儲(chǔ)節(jié)點(diǎn)的數(shù)量N來(lái)設(shè)置所述附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量X;所謂期望允許的故障存儲(chǔ)節(jié)點(diǎn)數(shù)量y是指期望在系統(tǒng)中有I個(gè)節(jié)點(diǎn)發(fā)生故障時(shí),系統(tǒng)仍能夠可靠準(zhǔn)確地讀寫(xiě)數(shù)據(jù),并且該期望允許的故障存儲(chǔ)節(jié)點(diǎn)數(shù)量y不大于理論上允許的最大數(shù)量。例如,可根據(jù)如下關(guān)系式設(shè)置附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量x>2y-N其中X表示附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量、y表示期望允許的故障存儲(chǔ)節(jié)點(diǎn)數(shù)量,N表示多個(gè)存儲(chǔ)節(jié)點(diǎn)的數(shù)量。在另一種可能的實(shí)施方式中,可根據(jù)期望允許的故障存儲(chǔ)節(jié)點(diǎn)數(shù)量y、附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量X和多個(gè)存儲(chǔ)節(jié)點(diǎn)的數(shù)量N來(lái)設(shè)置寫(xiě)閾值和讀閾值。例如,可根據(jù)如下關(guān)系式設(shè)置寫(xiě)閾值和讀閾值0<ff ≤ N-y+x,0〈R ( N-y+x,ff+R>N+x其中W表示所述寫(xiě)閾值、R表示所述讀閾值、N表示所述多個(gè)存儲(chǔ)節(jié)點(diǎn)的數(shù)量、y表示所述期望允許的故障存儲(chǔ)節(jié)點(diǎn)數(shù)量、X表示所述附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量??蛇x地,也可將寫(xiě)閾值設(shè)置為等于讀閾值;例如,可根據(jù)如下關(guān)系式設(shè)置寫(xiě)閾值和讀閾值ff=R=N-y+x其中W表示寫(xiě)閾值、R表示讀閾值、N表示多個(gè)存儲(chǔ)節(jié)點(diǎn)的數(shù)量、y表示期望允許的故障存儲(chǔ)節(jié)點(diǎn)數(shù)量、X表示附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量。第二實(shí)施例在以下的第二實(shí)施例和第三實(shí)施例中,將以具體的系統(tǒng)配置和裝置配置為例說(shuō)明數(shù)據(jù)讀寫(xiě)的過(guò)程。以下將以鏡像保護(hù)模式為例,說(shuō)明總共配置有N個(gè)存儲(chǔ)節(jié)點(diǎn)和X個(gè)附加存儲(chǔ)節(jié)點(diǎn)的分布式存儲(chǔ)系統(tǒng)中的N-1個(gè)存儲(chǔ)節(jié)點(diǎn)發(fā)生故障的情況下的數(shù)據(jù)讀寫(xiě)過(guò)程。鏡像保護(hù)模式是應(yīng)用于分布式存儲(chǔ)系統(tǒng)的諸多保護(hù)模式的一種,在鏡像保護(hù)模式下,將每次寫(xiě)入的數(shù)據(jù)及其屬性信息復(fù)制為N份分別存儲(chǔ)在N個(gè)存儲(chǔ)節(jié)點(diǎn)中。在鏡像保護(hù)模式下,分布式存儲(chǔ)系統(tǒng)應(yīng)當(dāng)允許在N-1個(gè)(理論上允許的最大值)以下的存儲(chǔ)節(jié)點(diǎn)發(fā)生故障的情況下仍能夠進(jìn)行數(shù)據(jù)讀寫(xiě)。然而,在傳統(tǒng)的分布式存儲(chǔ)系統(tǒng)中,在N/2至N-1個(gè)存儲(chǔ)節(jié)點(diǎn)發(fā)生故障的情況下,將由于不能滿(mǎn)足用以確保數(shù)據(jù)讀寫(xiě)一致性的W+R>N的判斷規(guī)則而無(wú)法進(jìn)行數(shù)據(jù)讀寫(xiě)。例如,在數(shù)據(jù)采用2X的鏡像保護(hù)模式下;一份數(shù)據(jù)選擇了 2個(gè)節(jié)點(diǎn)存儲(chǔ)(即N=2);按照業(yè)界W+R>N的方法,只能采用W=I且R=2或者W=2且R=I ;如果I個(gè)節(jié)點(diǎn)故障,數(shù)據(jù)讀寫(xiě)操作會(huì)出現(xiàn)無(wú)法滿(mǎn)足寫(xiě)閾值或者讀閾值的情況,也就是數(shù)據(jù)無(wú)法讀寫(xiě)。本發(fā)明第二實(shí)施例旨在于在NX鏡像保護(hù)模式下在N/2至N-1個(gè)節(jié)點(diǎn)發(fā)生故障仍可以正確可靠地進(jìn)行數(shù)據(jù)讀寫(xiě)。換句話(huà)說(shuō),在鏡像保護(hù)模式下,如果即使在理論上允許的最大數(shù)量(N-1)的節(jié)點(diǎn)發(fā)生故障的情況下都可以正確可靠的進(jìn)行數(shù)據(jù)讀寫(xiě),則意味著在其它情況下(例如,發(fā)生故障的節(jié)點(diǎn)的數(shù)量少于N-1的情況),顯然也可以正確可靠地進(jìn)行數(shù)據(jù)讀寫(xiě)。圖4示例性示出根據(jù)第二實(shí)施例的鏡像保護(hù)模式下的數(shù)據(jù)讀寫(xiě)過(guò)程。在圖4中,分布式存儲(chǔ)系統(tǒng)100中具有的存儲(chǔ)節(jié)點(diǎn)的數(shù)量N=3(存儲(chǔ)節(jié)點(diǎn)廣3),并且分布式存儲(chǔ)裝置I中的設(shè)置單元10設(shè)置了 2個(gè)附加存儲(chǔ)節(jié)點(diǎn)(即,附加存儲(chǔ)節(jié)點(diǎn)4和5)。這時(shí),由于分布式存儲(chǔ)系統(tǒng)100總共包含有5個(gè)節(jié)點(diǎn),因此在滿(mǎn)足判斷規(guī)則W+R>5的前提下,例如,可設(shè)置ff=3, R=3。在4的時(shí)刻t0處,存儲(chǔ)節(jié)點(diǎn)f 3均正常存儲(chǔ)數(shù)據(jù),且數(shù)據(jù)的版本信息均為版本A,附加存儲(chǔ)節(jié)點(diǎn)4和5中存儲(chǔ)的版本信息也為版本A。在時(shí)刻tl處,存儲(chǔ)節(jié)點(diǎn)I和2發(fā)生故障,此時(shí)在寫(xiě)入操作單元20接收到寫(xiě)入指令時(shí),進(jìn)行如下的寫(xiě)入操作將版本B的數(shù)據(jù)寫(xiě)入存儲(chǔ)節(jié)點(diǎn)3,并且將相應(yīng)的屬性信息“版本B”同時(shí)寫(xiě)入附加存儲(chǔ)節(jié)點(diǎn)4和5。在W=3的情況下,寫(xiě)入操作成功判斷單元40判斷為寫(xiě)入成功。在時(shí)刻t2處,在存儲(chǔ)節(jié)點(diǎn)I和2恢復(fù)正常的情況下,由于同步的延遲性,這兩個(gè)節(jié)點(diǎn)存儲(chǔ)的仍是版本A的數(shù)據(jù),此時(shí)在讀取操作單元30接收到讀取指令時(shí),進(jìn)行如下的讀取操作讀取到存儲(chǔ)節(jié)點(diǎn)I和2中存儲(chǔ)有版本A,以及存儲(chǔ)節(jié)點(diǎn)3以及附加存儲(chǔ)節(jié)點(diǎn)4和5中存儲(chǔ)有版本B。因此,在R=3的情況下,讀取操作成功判斷單元50判斷為對(duì)存儲(chǔ)節(jié)點(diǎn)3以及附加存儲(chǔ)節(jié)點(diǎn)4和5讀取成功,從而獲得與版本B相對(duì)應(yīng)的正確數(shù)據(jù)?;谝陨戏治隹芍阽R像保護(hù)模式下,確保了即使在理論上允許的最大數(shù)量的節(jié)點(diǎn)(N-1個(gè)節(jié)點(diǎn))發(fā)生故障時(shí)也能夠進(jìn)行正確可靠的數(shù)據(jù)讀寫(xiě)。盡管本實(shí)施例以N-1個(gè)節(jié)點(diǎn)發(fā)生故障為例,事實(shí)上,利用本實(shí)施例的裝置在N/2 N-1,或者0 N-1個(gè)節(jié)點(diǎn)發(fā)生故障的情況下均可進(jìn)行正確可靠的數(shù)據(jù)讀寫(xiě)。以上是以存儲(chǔ)節(jié)點(diǎn)I和2發(fā)生故障為例;當(dāng)然,在存儲(chǔ)節(jié)點(diǎn)2和3發(fā)生故障或者甚至附加存儲(chǔ)節(jié)點(diǎn)4和5發(fā)生故障(換句話(huà)說(shuō),任意兩個(gè)節(jié)點(diǎn)發(fā)生故障)時(shí),均可以實(shí)現(xiàn)上述效果。此外,可根據(jù)期望允許的故障存儲(chǔ)節(jié)點(diǎn)數(shù)量y和總存儲(chǔ)節(jié)點(diǎn)數(shù)N來(lái)設(shè)置附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量x??稍跐M(mǎn)足x>2y_N的條件下設(shè)置附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量X。例如,在期望允許N/2以上個(gè)故障存儲(chǔ)節(jié)點(diǎn)(y=N/2)的情況下,可設(shè)置x>0 ;在期望允許N-1個(gè)故障節(jié)點(diǎn)(y=N-l)的情況下,可設(shè)置x>N-2 ;在期望允許的故障存儲(chǔ)節(jié)點(diǎn)的數(shù)量小于N/2的情況下,可以不設(shè)置附加存儲(chǔ)節(jié)點(diǎn)。以上以W=R=N_y+x (y=x=N_l)為例進(jìn)行了說(shuō)明。當(dāng)然,在鏡像保護(hù)模式下,在W與R的值不相等的情況下,也可以實(shí)現(xiàn)本發(fā)明。以下將對(duì)W和R的值不相同的情況進(jìn)行簡(jiǎn)要說(shuō)明;另外,鑒于W與R的值不相同時(shí)的數(shù)據(jù)讀寫(xiě)過(guò)程與圖4類(lèi)似,因此不再輔以附圖進(jìn)行說(shuō)明。具體地,以N=3且x=2的分布式存儲(chǔ)系統(tǒng)為例,在滿(mǎn)足判斷規(guī)則W+R>5的前提下,也可設(shè)置W=1,R=5。在這種情況下,在時(shí)刻tl處,存儲(chǔ)節(jié)點(diǎn)I和2發(fā)生故障,此時(shí)在寫(xiě)入操作單元20接收到寫(xiě)入指令時(shí),進(jìn)行如下的寫(xiě)入操作將數(shù)據(jù)和相應(yīng)的屬性信息“版本B”寫(xiě)入存儲(chǔ)節(jié)點(diǎn)3,并且將相應(yīng)的屬性信息“版本B”同時(shí)寫(xiě)入附加存儲(chǔ)節(jié)點(diǎn)4和5。在W=I的情況下,寫(xiě)入操作成功判斷單元40判斷為寫(xiě)入成功。在時(shí)刻t2處,在存儲(chǔ)節(jié)點(diǎn)I和2恢復(fù)正常的情況下,由于同步的延遲性,這兩個(gè)節(jié)點(diǎn)存儲(chǔ)的仍是版本A的數(shù)據(jù),此時(shí)在讀取操作單元30接收到讀取指令時(shí),進(jìn)行如下的讀取操作讀取到存儲(chǔ)節(jié)點(diǎn)I和2中存儲(chǔ)有版本A,以及存儲(chǔ)節(jié)點(diǎn)3以及附加存儲(chǔ)節(jié)點(diǎn)4和5中存儲(chǔ)有版本B。因此,在R=5的情況下,讀取操作成功判斷單元50判斷為讀取失敗。參考第一實(shí)施例中對(duì)于讀取操作失敗時(shí)所進(jìn)行的操作可知,需要重新執(zhí)行與被視為失敗的讀取操作相對(duì)應(yīng)的寫(xiě)入操作,即在重新進(jìn)行時(shí)刻t I處的寫(xiě)入操作。以此類(lèi)推,循環(huán)地進(jìn)行上述寫(xiě)入和操作讀取操作,直到滿(mǎn)足寫(xiě)入和讀取成功的條件為止(即在所有5個(gè)節(jié)點(diǎn)均未發(fā)生故障的情況下進(jìn)行了寫(xiě)入操作和讀取操作為止),才判斷為進(jìn)行了可靠的數(shù)據(jù)讀寫(xiě)。由此可知,在W〈R的情況下,系統(tǒng)可能需要經(jīng)過(guò)多次讀寫(xiě)循環(huán)以保證數(shù)據(jù)讀寫(xiě)的
可靠性。當(dāng)然,上述示例也可設(shè)置為W>R。可基于類(lèi)似的方式實(shí)現(xiàn)本發(fā)明。事實(shí)上可以在滿(mǎn)足W+R>N+x的判斷規(guī)則下根據(jù)期望允許的故障存儲(chǔ)節(jié)點(diǎn)數(shù)量y、附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量X和總存儲(chǔ)節(jié)點(diǎn)數(shù)N來(lái)設(shè)置W和R的數(shù)值,例如,可在滿(mǎn)足0〈W ( N-y+x、0〈R ( N-y+x且W+R>N+x的條件下選擇W和R的值。在選擇了滿(mǎn)足這種條件下的各種W和R的值的情況下,以與上述選擇W=R=N-y+x (y=x=N-l)的方式相類(lèi)似的方式來(lái)進(jìn)行數(shù)據(jù)讀寫(xiě);在這種情況下,盡管W和R的值可以選擇為不相同,但仍能夠?qū)崿F(xiàn)與上述W=R=N_y+x (y=x=N-l)的情況相同的有益效果。第三實(shí)施例在本實(shí)施例,將以EC保護(hù)模式為例來(lái)說(shuō)明數(shù)據(jù)讀寫(xiě)的過(guò)程。在EC保護(hù)模式下,分布式存儲(chǔ)系統(tǒng)配置n+m=N個(gè)存儲(chǔ)節(jié)點(diǎn),并且將每次寫(xiě)入操作的數(shù)據(jù)分解為n份原始數(shù)據(jù)而存儲(chǔ)在n個(gè)存儲(chǔ)節(jié)點(diǎn)中,同時(shí)將通過(guò)適當(dāng)?shù)腅C算法而得到的m份校驗(yàn)數(shù)據(jù)存儲(chǔ)在剩余的m個(gè)存儲(chǔ)節(jié)點(diǎn)中,其中滿(mǎn)足m ( n。這樣,分布式存儲(chǔ)系統(tǒng)只要得到任意的n份數(shù)據(jù),就可以通過(guò)常用的EC還原算法計(jì)算得到原始的數(shù)據(jù)。理論上,在EC保護(hù)模式下,分布式存儲(chǔ)系統(tǒng)允許在n=m且m個(gè)(即N/2個(gè))存儲(chǔ)節(jié)點(diǎn)發(fā)生故障的情況下仍能夠進(jìn)行數(shù)據(jù)讀寫(xiě)。然而,在傳統(tǒng)的分布式存儲(chǔ)系統(tǒng)中,在N/2個(gè)存儲(chǔ)節(jié)點(diǎn)發(fā)生故障的情況下,將由于不能滿(mǎn)足W+R>N的數(shù)據(jù)讀寫(xiě)一致性判斷規(guī)則而無(wú)法進(jìn)行數(shù)據(jù)讀寫(xiě)。例如,在n = m的情況下,一般采用W=n+1, R=n的組合或者W=n, R = n + I的組合;在m個(gè)節(jié)點(diǎn)故障的條件下,數(shù)據(jù)會(huì)出現(xiàn)無(wú)法滿(mǎn)足寫(xiě)條件或者讀條件的情況,也就是數(shù)據(jù)無(wú)法讀寫(xiě)。以下將以配置有n+m個(gè)存儲(chǔ)節(jié)點(diǎn)和y個(gè)附加存儲(chǔ)節(jié)點(diǎn)的分布式存儲(chǔ)系統(tǒng)100在n=m且m個(gè)節(jié)點(diǎn)發(fā)生故障的情況為例說(shuō)明利用本實(shí)施例在EC保護(hù)模式下的數(shù)據(jù)讀寫(xiě)過(guò)程。換句話(huà)說(shuō),在EC保護(hù)模式下,如果即使在n=m且理論上允許的最大數(shù)量的節(jié)點(diǎn)(m個(gè)節(jié)點(diǎn))發(fā)生故障的情況下都可以正確可靠地進(jìn)行數(shù)據(jù)讀寫(xiě),則意味著在其它情況下(例如,n>m或者發(fā)生故障的節(jié)點(diǎn)的數(shù)量少于m的情況),顯然也可以正確可靠地進(jìn)行數(shù)據(jù)讀寫(xiě)。圖5示例性示出根據(jù)第三實(shí)施例的EC保護(hù)模式下的數(shù)據(jù)讀寫(xiě)過(guò)程。在圖5中,分布式存儲(chǔ)系統(tǒng)100中具有的存儲(chǔ)節(jié)點(diǎn)的數(shù)量為4 (存儲(chǔ)節(jié)點(diǎn)廣4,且n=m=2),并且分布式存儲(chǔ)裝置I中的設(shè)置單元10設(shè)置了 I個(gè)附加存儲(chǔ)節(jié)點(diǎn)(即,附加存儲(chǔ)節(jié)點(diǎn)5)。這時(shí),由于分布式存儲(chǔ)系統(tǒng)100總共包含有5個(gè)節(jié)點(diǎn),需要滿(mǎn)足判斷規(guī)則W+R>5,例如,可設(shè)W=3,R=3。在圖5的時(shí)刻t0處,存儲(chǔ)節(jié)點(diǎn)廣4均正常存儲(chǔ)數(shù)據(jù),且數(shù)據(jù)的版本信息均為版本A,附加存儲(chǔ)節(jié)點(diǎn)5中存儲(chǔ)的版本信息也為版本A。在時(shí)刻tl處,存儲(chǔ)節(jié)點(diǎn)3和4發(fā)生故障,此時(shí)在寫(xiě)入操作單元20接收到寫(xiě)入指令時(shí),進(jìn)行如下的寫(xiě)入操作將版本B的數(shù)據(jù)寫(xiě)入存儲(chǔ)節(jié)點(diǎn)I和2,并且將版本B同時(shí)寫(xiě)入附加存儲(chǔ)節(jié)點(diǎn)5。因此,在W=3的情況下,寫(xiě)入操作成功判斷單元40判斷為寫(xiě)入成功。在時(shí)刻t2處,在存儲(chǔ)節(jié)點(diǎn)3和4恢復(fù)正常的情況下,由于同步的延遲性,這兩個(gè)節(jié)點(diǎn)存儲(chǔ)的仍是版本A的數(shù)據(jù),此時(shí)在讀取操作單元30接收到讀取指令時(shí),進(jìn)行如下的讀取操作讀取到存儲(chǔ)節(jié)點(diǎn)3和4中存儲(chǔ)有版本A,以及讀取到存儲(chǔ)節(jié)點(diǎn)I和2以及附加存儲(chǔ)節(jié)點(diǎn)5中存儲(chǔ)有版本B。因此,在R=3的情況下,讀取操作成功判斷單元50判斷針對(duì)存儲(chǔ)節(jié)點(diǎn)I和2以及附加存儲(chǔ)節(jié)點(diǎn)5的讀取操作成功。由此以上分析可知,在EC保護(hù)模式下,確保了在n=m且理論上允許的最大數(shù)量的節(jié)點(diǎn)(m個(gè)節(jié)點(diǎn))發(fā)生故障時(shí)也能夠進(jìn)行正確可靠的數(shù)據(jù)讀寫(xiě)。以上是以存儲(chǔ)節(jié)點(diǎn)3和4發(fā)生故障為例;當(dāng)然,在存儲(chǔ)節(jié)點(diǎn)I和2發(fā)生故障或者甚至存儲(chǔ)節(jié)點(diǎn)I和附加存儲(chǔ)節(jié)點(diǎn)5發(fā)生故障(換句話(huà)說(shuō),任意兩個(gè)節(jié)點(diǎn)發(fā)生故障),均可以實(shí)現(xiàn)上述效果以上是以在EC保護(hù)模式下配置4個(gè)存儲(chǔ)節(jié)點(diǎn)和I個(gè)附加存儲(chǔ)節(jié)點(diǎn)為例進(jìn)行了說(shuō)明。然而,所配置的存儲(chǔ)節(jié)點(diǎn)的數(shù)量并不局限于4,也可以配置除4以外的其它數(shù)量的存儲(chǔ)節(jié)點(diǎn)??筛鶕?jù)期望允許的故障存儲(chǔ)節(jié)點(diǎn)數(shù)量y和總存儲(chǔ)節(jié)點(diǎn)數(shù)N來(lái)設(shè)置附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量x??稍跐M(mǎn)足x>2y-N的條件下設(shè)置附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量X。例如,在期望允許N/2個(gè)故障存儲(chǔ)節(jié)點(diǎn)(y=N/2)時(shí),可設(shè)置x>0,在期望允許的故障存儲(chǔ)節(jié)點(diǎn)的數(shù)量小于N/2時(shí),可以不設(shè)置附加存儲(chǔ)節(jié)點(diǎn)。以上以W=R=N_y+x (y=N/2, x=l)為例進(jìn)行了說(shuō)明。當(dāng)然,在EC保護(hù)模式下,在W與R的值不相等的情況下,也可以實(shí)現(xiàn)本發(fā)明。以下將對(duì)W和R的值不相同的情況進(jìn)行簡(jiǎn)要說(shuō)明;另外,鑒于W與R的值不相同時(shí)的數(shù)據(jù)讀寫(xiě)過(guò)程與圖5類(lèi)似,因此不再輔以附圖進(jìn)行說(shuō)明。具體地,在n=m=2且x=l的分布式存儲(chǔ)系統(tǒng)中,在滿(mǎn)足判斷規(guī)則W+R>5的前提下,也可設(shè)置W=1,R=5。在這種情況下,在時(shí)刻t I處,存儲(chǔ)節(jié)點(diǎn)3和4發(fā)生故障,此時(shí)在寫(xiě)入操作單元20接收到寫(xiě)入指令時(shí),進(jìn)行如下的寫(xiě)入操作將數(shù)據(jù)和屬性信息“版本B”寫(xiě)入存儲(chǔ)節(jié)點(diǎn)I和2,并且將“版本B”同時(shí)寫(xiě)入附加存儲(chǔ)節(jié)點(diǎn)5。因此,在W=I的情況下,寫(xiě)入操作成功判斷單元40判斷為寫(xiě)入成功。在時(shí)刻t2處,在存儲(chǔ)節(jié)點(diǎn)3和4恢復(fù)正常的情況下,由于同步的延遲性,這兩個(gè)節(jié)點(diǎn)存儲(chǔ)的仍是版本A的數(shù)據(jù),此時(shí)在讀取操作單元30接收到讀取指令時(shí),進(jìn)行如下的讀取操作讀取到存儲(chǔ)節(jié)點(diǎn)3和4中存儲(chǔ)有版本A,以及讀取到存儲(chǔ)節(jié)點(diǎn)I和2以及附加存儲(chǔ)節(jié)點(diǎn)5中存儲(chǔ)有版本B。因此,在R=5的情況下,讀取操作成功判斷單元50判斷讀取操作失敗。參考第一實(shí)施例中對(duì)于讀取操作失敗時(shí)所進(jìn)行的操作可知,需要重新執(zhí)行與被視為失敗的讀取操作相對(duì)應(yīng)的寫(xiě)入操作,即重新進(jìn)行時(shí)刻t I處的寫(xiě)入操作。以此類(lèi)推,循環(huán)地進(jìn)行上述寫(xiě)入和讀取操作,直到滿(mǎn)足讀取成功的條件為止(即在所有5個(gè)節(jié)點(diǎn)均未發(fā)生故障的情況下進(jìn)行了寫(xiě)入操作和讀取操作為止),才判斷為進(jìn)行了可靠的數(shù)據(jù)讀寫(xiě)。
由此可知,在W〈R的情況下,可能需要經(jīng)過(guò)多次讀寫(xiě)循環(huán)以實(shí)現(xiàn)正確可靠的數(shù)據(jù)讀寫(xiě)。當(dāng)然,上述示例也可設(shè)置為W>R。基于類(lèi)似的方式實(shí)現(xiàn)本發(fā)明。事實(shí)上可以在滿(mǎn)足W+R>N+x的前提下根據(jù)期望允許的故障存儲(chǔ)節(jié)點(diǎn)數(shù)量1、附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量X和總存儲(chǔ)節(jié)點(diǎn)數(shù)N來(lái)設(shè)置W和R的數(shù)值,例如,可在滿(mǎn)足0〈W ( N-y+x, 0〈R ( N-y+x且W+R>N+x的條件下選擇W和R的值。在選擇了滿(mǎn)足這種條件下的各種W和R的值的情況下,以與上述選擇ff=R=N-y+x (y=N/2, x=l)的方式相類(lèi)似的方式來(lái)進(jìn)行數(shù)據(jù)讀寫(xiě);在這種情況下,盡管W和R的值可以選擇為不相同,但仍能夠?qū)崿F(xiàn)與上述W=R=N_y+x (y=N/2, x=l)的情況相同的有益效果。第四實(shí)施例在以上第一實(shí)施例 第三實(shí)施例中,均以各節(jié)點(diǎn)所包括的屬性信息是版本信息為例進(jìn)行了說(shuō)明。當(dāng)然,該屬性信息還可以是時(shí)間戳信息等的能夠表示數(shù)據(jù)特有屬性的屬性信息。用戶(hù)可以根據(jù)期望選擇向分布式存儲(chǔ)系統(tǒng)中的各節(jié)點(diǎn)寫(xiě)入適當(dāng)?shù)膶傩孕畔?。第五?shí)施例在以上第一實(shí)施例 第四實(shí)施例中,附加存儲(chǔ)節(jié)點(diǎn)至少存儲(chǔ)了屬性信息;然而,所述附加存儲(chǔ)節(jié)點(diǎn)可以?xún)H存儲(chǔ)屬性信息,這樣可以減少分布式存儲(chǔ)系統(tǒng)的存儲(chǔ)開(kāi)銷(xiāo)。盡管上述各實(shí)施例以鏡像保護(hù)模式或EC保護(hù)模式為例進(jìn)行說(shuō)明,事實(shí)上,根據(jù)本發(fā)明各實(shí)施例的方法與系統(tǒng)可應(yīng)用于任何保護(hù)模式下。圖6示例性示出了本發(fā)明的另一個(gè)實(shí)施例的一種分布式存儲(chǔ)裝置的結(jié)構(gòu)框圖。所述分布式存儲(chǔ)裝置500可以是包含計(jì)算能力的主機(jī)服務(wù)器,或者是個(gè)人計(jì)算機(jī)PC,或者是可攜帶的便攜式計(jì)算機(jī)或終端等等,本發(fā)明具體實(shí)施例并不對(duì)計(jì)算節(jié)點(diǎn)的具體實(shí)現(xiàn)做限定。所述分布式存儲(chǔ)裝置包括處理器(processor)510、通信接口(Communications Interface) 520、存儲(chǔ)器(memory array) 530 和總線(xiàn) 540。處理器510、通信接口 520、以及存儲(chǔ)器530通過(guò)總線(xiàn)540完成相互間的通信。通信接口 520用于與網(wǎng)元通信,比如虛擬機(jī)管理中心、共享存儲(chǔ)等。處理器510用于執(zhí)行程序。具體地,程序可以包括程序代碼,所述程序代碼包括計(jì)算機(jī)操作指令。處理器510可能是一個(gè)中央處理器CPU,或者是特定集成電路ASIC (ApplicationSpecific Integrated Circuit),或者是被配置成實(shí)施本發(fā)明實(shí)施例的一個(gè)或多個(gè)集成電路。存儲(chǔ)器530用于存放文件。存儲(chǔ)器530可能包含高速RAM存儲(chǔ)器,也可能還包括非易失性存儲(chǔ)器(non-volatile memory),例如至少一個(gè)磁盤(pán)存儲(chǔ)器,存儲(chǔ)器530也可以是包括多個(gè)存儲(chǔ)節(jié)點(diǎn)的存儲(chǔ)器陣列。程序具體可用于執(zhí)行以下步驟設(shè)置步驟,用于設(shè)置附加存儲(chǔ)節(jié)點(diǎn);寫(xiě)入操作步驟,用于當(dāng)接收到寫(xiě)入指令時(shí),進(jìn)行如下寫(xiě)入操作將數(shù)據(jù)和相應(yīng)的屬性信息寫(xiě)入所述多個(gè)存儲(chǔ)節(jié)點(diǎn),并且將所述屬性信息寫(xiě)入所述附加存儲(chǔ)節(jié)點(diǎn),其中所述附加存儲(chǔ)節(jié)點(diǎn)不存儲(chǔ)所述數(shù)據(jù);
讀取操作步驟,用于當(dāng)接收到讀取指令時(shí),進(jìn)行如下讀取操作從所述多個(gè)存儲(chǔ)節(jié)點(diǎn)讀取所述數(shù)據(jù)和相應(yīng)的屬性信息,并且從所述附加存儲(chǔ)節(jié)點(diǎn)讀取所述屬性信息;其中,當(dāng)寫(xiě)入成功的所述存儲(chǔ)節(jié)點(diǎn)的數(shù)量和寫(xiě)入成功的所述附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量之和超過(guò)寫(xiě)閾值時(shí),視為所述寫(xiě)入操作步驟所進(jìn)行的寫(xiě)入操作成功,否則視為寫(xiě)入操作失??;以及當(dāng)從所述存儲(chǔ)節(jié)點(diǎn)和所述附加存儲(chǔ)節(jié)點(diǎn)讀取到的相同屬性信息的數(shù)量超過(guò)讀閾值時(shí),視為所述讀取操作步驟所進(jìn)行的讀取操作成功,否則,視為讀取操作失敗。在上述程序所執(zhí)行的處理中,在所述寫(xiě)入操作失敗的情況下,重新執(zhí)行被視為失敗的寫(xiě)入操作;以及在所述讀取操作失敗的情況下,重新執(zhí)行與被視為失敗的讀取操作相對(duì)應(yīng)的寫(xiě)入操作。上述程序所執(zhí)行的處理中,所述寫(xiě)閾值和所述讀閾值之和大于所述存儲(chǔ)節(jié)點(diǎn)和所述附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量之和。上述程序所執(zhí)行的處理中,在所述設(shè)置步驟中,根據(jù)期望允許的故障存儲(chǔ)節(jié)點(diǎn)數(shù)量和所述多個(gè)存儲(chǔ)節(jié)點(diǎn)的數(shù)量來(lái)設(shè)置所述附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量。上述程序所執(zhí)行的處理中,在所述設(shè)置步驟中,根據(jù)如下關(guān)系式設(shè)置所述附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量x>2y-N其中X表示所述附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量、y表示所述期望允許的故障存儲(chǔ)節(jié)點(diǎn)數(shù)量,N表示所述多個(gè)存儲(chǔ)節(jié)點(diǎn)的數(shù)量。上述程序 所執(zhí)行的處理中,根據(jù)期望允許的故障存儲(chǔ)節(jié)點(diǎn)數(shù)量、所述附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量和所述多個(gè)存儲(chǔ)節(jié)點(diǎn)的數(shù)量來(lái)設(shè)置所述寫(xiě)閾值和所述讀閾值。上述程序所執(zhí)行的處理中,根據(jù)如下關(guān)系式設(shè)置所述讀閾值和寫(xiě)閾值0<ff ^ N-y+x,0〈R ^ N-y+x,ff+R>N+x其中W表示所述寫(xiě)閾值、R表示所述讀閾值、N表示所述多個(gè)存儲(chǔ)節(jié)點(diǎn)的數(shù)量、y表示所述期望允許的故障存儲(chǔ)節(jié)點(diǎn)數(shù)量、X表示所述附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量。上述程序所執(zhí)行的處理中,在所述設(shè)置步驟中,設(shè)置所述寫(xiě)閾值與所述讀閾值相
坐寸o上述程序所執(zhí)行的處理中,在所述設(shè)置步驟中,根據(jù)如下關(guān)系式設(shè)置所述寫(xiě)閾值和所述讀閾值ff=R=N-y+x其中W表示所述寫(xiě)閾值、R表示所述讀閾值、N表示所述多個(gè)存儲(chǔ)節(jié)點(diǎn)的數(shù)量、y表示所述期望允許的故障存儲(chǔ)節(jié)點(diǎn)數(shù)量、X表示所述附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量。上述程序所執(zhí)行的處理中,所述屬性信息是所述數(shù)據(jù)的版本信息和時(shí)間戳信息其中之一。本領(lǐng)域普通技術(shù)人員可以意識(shí)到,本文所描述的實(shí)施例中的各示例性單元及算法步驟,能夠以電子硬件、或者計(jì)算機(jī)軟件和電子硬件的結(jié)合來(lái)實(shí)現(xiàn)。這些功能究竟以硬件還是軟件形式來(lái)實(shí)現(xiàn),取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專(zhuān)業(yè)技術(shù)人員可以針對(duì)特定的應(yīng)用選擇不同的方法來(lái)實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。如果以計(jì)算機(jī)軟件的形式來(lái)實(shí)現(xiàn)所述功能并作為獨(dú)立的產(chǎn)品銷(xiāo)售或使用時(shí),則在一定程度上可認(rèn)為本發(fā)明的技術(shù)方案的全部或部分(例如對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分)是以計(jì)算機(jī)軟件產(chǎn)品的形式體現(xiàn)的。該計(jì)算機(jī)軟件產(chǎn)品通常存儲(chǔ)在計(jì)算機(jī)可讀取的存儲(chǔ)介質(zhì)中,包括若干指令用以使得計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī)、服務(wù)器、或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各實(shí)施例方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括U盤(pán)、移動(dòng)硬盤(pán)、只讀存儲(chǔ)器(ROM, Read-Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM, Random Access Memory)、磁碟或者光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)。以上所述,僅為本發(fā)明的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)所述以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1.一種分布式存儲(chǔ)方法,其應(yīng)用于具有多個(gè)存儲(chǔ)節(jié)點(diǎn)的分布式存儲(chǔ)系統(tǒng),所述分布式存儲(chǔ)方法包括以下步驟 設(shè)置步驟,用于設(shè)置附加存儲(chǔ)節(jié)點(diǎn); 寫(xiě)入操作步驟,用于當(dāng)接收到寫(xiě)入指令時(shí),進(jìn)行如下寫(xiě)入操作將數(shù)據(jù)和相應(yīng)的屬性信息寫(xiě)入所述多個(gè)存儲(chǔ)節(jié)點(diǎn),并且將所述屬性信息寫(xiě)入所述附加存儲(chǔ)節(jié)點(diǎn),其中所述附加存儲(chǔ)節(jié)點(diǎn)不存儲(chǔ)所述數(shù)據(jù); 讀取操作步驟,用于當(dāng)接收到讀取指令時(shí),進(jìn)行如下讀取操作從所述多個(gè)存儲(chǔ)節(jié)點(diǎn)讀取所述數(shù)據(jù)和相應(yīng)的屬性信息,并且從所述附加存儲(chǔ)節(jié)點(diǎn)讀取所述屬性信息; 其中,當(dāng)寫(xiě)入成功的所述存儲(chǔ)節(jié)點(diǎn)的數(shù)量和寫(xiě)入成功的所述附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量之和超過(guò)寫(xiě)閾值時(shí),視為所述寫(xiě)入操作步驟所進(jìn)行的寫(xiě)入操作成功,否則視為寫(xiě)入操作失?。灰约? 當(dāng)從所述存儲(chǔ)節(jié)點(diǎn)和所述附加存儲(chǔ)節(jié)點(diǎn)讀取到的相同屬性信息的數(shù)量超過(guò)讀閾值時(shí),視為所述讀取操作步驟所進(jìn)行的讀取操作成功,否則,視為讀取操作失敗。
2.根據(jù)權(quán)利要求1所述的分布式存儲(chǔ)方法,其中,該方法還包括 在所述寫(xiě)入操作失敗的情況下,重新執(zhí)行被視為失敗的寫(xiě)入操作;以及 在所述讀取操作失敗的情況下,重新執(zhí)行與被視為失敗的讀取操作相對(duì)應(yīng)的寫(xiě)入操作。
3.根據(jù)權(quán)利要求1或2所述的分布式存儲(chǔ)方法,其中,所述寫(xiě)閾值和所述讀閾值之和大于所述存儲(chǔ)節(jié)點(diǎn)和所述附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量之和。
4.根據(jù)權(quán)利要求1至3中任一項(xiàng)所述的分布式存儲(chǔ)方法,其中,在所述設(shè)置步驟中,根據(jù)期望允許的故障存儲(chǔ)節(jié)點(diǎn)數(shù)量和所述多個(gè)存儲(chǔ)節(jié)點(diǎn)的數(shù)量來(lái)設(shè)置所述附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量。
5.根據(jù)權(quán)利要求4所述的分布式存儲(chǔ)方法,其中,在所述設(shè)置步驟中,根據(jù)如下關(guān)系式設(shè)置所述附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量x>2y-N 其中X表示所述附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量、I表示所述期望允許的故障存儲(chǔ)節(jié)點(diǎn)數(shù)量,N表示所述多個(gè)存儲(chǔ)節(jié)點(diǎn)的數(shù)量。
6.根據(jù)權(quán)利要求1至5中任一項(xiàng)所述的分布式存儲(chǔ)方法,其中,該方法還包括根據(jù)期望允許的故障存儲(chǔ)節(jié)點(diǎn)數(shù)量、所述附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量和所述多個(gè)存儲(chǔ)節(jié)點(diǎn)的數(shù)量來(lái)設(shè)置所述寫(xiě)閾值和所述讀閾值。
7.根據(jù)權(quán)利要求6所述的分布式存儲(chǔ)方法,其中,根據(jù)如下關(guān)系式設(shè)置所述讀閾值和寫(xiě)閾值0<ff ^ N-y+x,0〈R ^ N-y+x,ff+R>N+x 其中W表示所述寫(xiě)閾值、R表示所述讀閾值、N表示所述多個(gè)存儲(chǔ)節(jié)點(diǎn)的數(shù)量、y表示所述期望允許的故障存儲(chǔ)節(jié)點(diǎn)數(shù)量、X表示所述附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量。
8.根據(jù)權(quán)利要求1至7中任一項(xiàng)所述的分布式存儲(chǔ)方法,其中,設(shè)置所述寫(xiě)閾值與所述讀閾值相等。
9.根據(jù)權(quán)利要求8所述的分布式存儲(chǔ)方法,其中,根據(jù)如下關(guān)系式設(shè)置所述寫(xiě)閾值和所述讀閾值ff=R=N-y+x 其中W表示所述寫(xiě)閾值、R表示所述讀閾值、N表示所述多個(gè)存儲(chǔ)節(jié)點(diǎn)的數(shù)量、y表示所述期望允許的故障存儲(chǔ)節(jié)點(diǎn)數(shù)量、X表示所述附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量。
10.根據(jù)權(quán)利要求1至9中任一項(xiàng)所述的分布式存儲(chǔ)方法,其中,所述屬性信息是所述數(shù)據(jù)的版本信息和時(shí)間戳信息其中之一。
11.一種分布式存儲(chǔ)裝置,其應(yīng)用于具有多個(gè)存儲(chǔ)節(jié)點(diǎn)的分布式存儲(chǔ)系統(tǒng),所述分布式存儲(chǔ)裝置包括 設(shè)置部件,用于設(shè)置附加存儲(chǔ)節(jié)點(diǎn); 寫(xiě)入操作部件,用于當(dāng)接收到寫(xiě)入指令時(shí),進(jìn)行如下寫(xiě)入操作將數(shù)據(jù)和相應(yīng)的屬性信息寫(xiě)入所述多個(gè)存儲(chǔ)節(jié)點(diǎn),并且將所述屬性信息寫(xiě)入所述附加存儲(chǔ)節(jié)點(diǎn),其中所述附加存儲(chǔ)節(jié)點(diǎn)不存儲(chǔ)所述數(shù)據(jù); 讀取操作部件,用于當(dāng)接收到讀取指令時(shí),進(jìn)行如下讀取操作從所述多個(gè)存儲(chǔ)節(jié)點(diǎn)讀取所述數(shù)據(jù)和相應(yīng)的屬性信息,并且從所述附加存儲(chǔ)節(jié)點(diǎn)讀取所述屬性信息; 寫(xiě)入操作成功判斷部件,用于當(dāng)寫(xiě)入成功的所述存儲(chǔ)節(jié)點(diǎn)的數(shù)量和寫(xiě)入成功的所述附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量之和超過(guò)寫(xiě)閾值時(shí),視為所述寫(xiě)入操作部件所進(jìn)行的寫(xiě)入操作成功,否則視為寫(xiě)入操作失?。灰约? 讀取操作成功判斷部件,用于當(dāng)從所述存儲(chǔ)節(jié)點(diǎn)和所述附加存儲(chǔ)節(jié)點(diǎn)讀取到的相同屬性信息的數(shù)量超過(guò)讀閾值時(shí),視為所述讀取操作部件所進(jìn)行的讀取操作成功,否則,視為讀取操作失敗。
12.根據(jù)權(quán)利要求11所述的分布式存儲(chǔ)裝置,其中,該裝置還包括讀寫(xiě)失敗控制部件; 在所述寫(xiě)入操作失敗的情況下,所述讀寫(xiě)失敗控制部件指示所述寫(xiě)入操作部件重新執(zhí)行被視為失敗的寫(xiě)入操作;以及 在所述讀取操作失敗的情況下,所述讀寫(xiě)失敗控制部件指示所述寫(xiě)入操作部件重新執(zhí)行與被視為失敗的讀取操作相對(duì)應(yīng)的寫(xiě)入操作。
13.根據(jù)權(quán)利要求11或12所述的分布式存儲(chǔ)裝置,其中,所述寫(xiě)閾值和所述讀閾值之和大于所述存儲(chǔ)節(jié)點(diǎn)和所述附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量之和。
14.根據(jù)權(quán)利要求11至13中任一項(xiàng)所述的分布式存儲(chǔ)裝置,其中,所述設(shè)置部件根據(jù)期望允許的故障存儲(chǔ)節(jié)點(diǎn)數(shù)量和所述多個(gè)存儲(chǔ)節(jié)點(diǎn)的數(shù)量來(lái)設(shè)置所述附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量。
15.根據(jù)權(quán)利要求14所述的分布式存儲(chǔ)裝置,其中,所述設(shè)置部件根據(jù)如下關(guān)系式設(shè)置所述附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量x>2y-N 其中X表示所述附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量、I表示所述期望允許的故障存儲(chǔ)節(jié)點(diǎn)數(shù)量,N表示所述多個(gè)存儲(chǔ)節(jié)點(diǎn)的數(shù)量。
16.根據(jù)權(quán)利要求11至15中任一項(xiàng)所述的分布式存儲(chǔ)裝置,其中,所述設(shè)置部件根據(jù)期望允許的故障存儲(chǔ)節(jié)點(diǎn)數(shù)量、所述附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量和所述多個(gè)存儲(chǔ)節(jié)點(diǎn)的數(shù)量來(lái)設(shè)置所述寫(xiě)閾值和所述讀閾值。
17.根據(jù)權(quán)利要求16所述的分布式存儲(chǔ)裝置,其中,所述設(shè)置部件根據(jù)如下關(guān)系式設(shè)置所述讀閾值和寫(xiě)閾值0<ff ≤ N-y+x,0〈R ≤ N-y+x,ff+R>N+x 其中W表示所述寫(xiě)閾值、R表示所述讀閾值、N表示所述多個(gè)存儲(chǔ)節(jié)點(diǎn)的數(shù)量、y表示所述期望允許的故障存儲(chǔ)節(jié)點(diǎn)數(shù)量、X表示所述附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量。
18.根據(jù)權(quán)利要求11至17中任一項(xiàng)所述的分布式存儲(chǔ)裝置,其中,所述設(shè)置部件設(shè)置所述寫(xiě)閾值與所述讀閾值相等。
19.根據(jù)權(quán)利要求18所述的分布式存儲(chǔ)裝置,其中,所述設(shè)置部件根據(jù)如下關(guān)系式設(shè)置所述寫(xiě)閾值和所述讀閾值ff=R=N-y+x 其中W表示所述寫(xiě)閾值、R表示所述讀閾值、N表示所述多個(gè)存儲(chǔ)節(jié)點(diǎn)的數(shù)量、y表示所述期望允許的故障存儲(chǔ)節(jié)點(diǎn)數(shù)量、X表示所述附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量。
20.根據(jù)權(quán)利要求11至19中任一項(xiàng)所述的分布式存儲(chǔ)裝置,其中,所述屬性信息是所述數(shù)據(jù)的版本信息和時(shí)間戳信息其中之一。
全文摘要
一種分布式存儲(chǔ)方法和分布式存儲(chǔ)裝置。該方法應(yīng)用于具有多個(gè)存儲(chǔ)節(jié)點(diǎn)的分布式存儲(chǔ)系統(tǒng),包括設(shè)置附加存儲(chǔ)節(jié)點(diǎn);當(dāng)接收到寫(xiě)入指令時(shí)進(jìn)行如下寫(xiě)入操作將數(shù)據(jù)和相應(yīng)屬性信息寫(xiě)入所述多個(gè)存儲(chǔ)節(jié)點(diǎn),并將屬性信息寫(xiě)入附加存儲(chǔ)節(jié)點(diǎn),其中附加存儲(chǔ)節(jié)點(diǎn)不存儲(chǔ)該數(shù)據(jù);當(dāng)接收到讀取指令時(shí),進(jìn)行如下讀取操作從所述多個(gè)存儲(chǔ)節(jié)點(diǎn)讀取數(shù)據(jù)和相應(yīng)屬性信息,并從附加存儲(chǔ)節(jié)點(diǎn)讀取屬性信息;其中,當(dāng)寫(xiě)入成功的存儲(chǔ)節(jié)點(diǎn)的數(shù)量和寫(xiě)入成功的附加存儲(chǔ)節(jié)點(diǎn)的數(shù)量之和超過(guò)寫(xiě)閾值時(shí),視為寫(xiě)入操作成功,否則視為寫(xiě)入操作失??;以及當(dāng)從存儲(chǔ)節(jié)點(diǎn)和附加存儲(chǔ)節(jié)點(diǎn)讀取到的相同屬性信息的數(shù)量超過(guò)讀閾值時(shí),視為讀取操作成功,否則,視為讀取操作失敗。
文檔編號(hào)G06F3/06GK103064635SQ20121055472
公開(kāi)日2013年4月24日 申請(qǐng)日期2012年12月19日 優(yōu)先權(quán)日2012年12月19日
發(fā)明者方新 申請(qǐng)人:華為技術(shù)有限公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1