高速分布存儲(chǔ)器系統(tǒng)中的多客戶端多存儲(chǔ)器控制的制作方法
【專利摘要】一種用于提供存儲(chǔ)器操作給客戶端組(CG)中的客戶端的多客戶端多存儲(chǔ)器控制器(2),所述多客戶端多存儲(chǔ)器控制器(2)能夠訪問由按行和列排列的虛擬存儲(chǔ)器單元(VMU)表示的存儲(chǔ)器設(shè)備陣列(MDA),其中所述行數(shù)等于客戶端組(CG)中客戶端的數(shù)目(n),以及列數(shù)等于所述客戶端組(CG)中客戶端的數(shù)目(m),所述客戶端組用于將數(shù)據(jù)寫入至所述存儲(chǔ)器設(shè)備陣列(MDA)中;所述多客戶端多存儲(chǔ)器控制器(2)用于,為了響應(yīng)從所述客戶端組(CG)中第一客戶端(3-i)接收的客戶端寫入請(qǐng)求(WR),將所述第一客戶端的更新信息作為副本數(shù)據(jù)條目寫入至與第一客戶端相關(guān)的列中的所有虛擬存儲(chǔ)器單元中;所述多客戶端多存儲(chǔ)器控制器(2)用于,為了響應(yīng)從所述客戶端組(CG)中的第二客戶端(3-i)接收的客戶端讀取請(qǐng)求(RR),從與第二客戶端相關(guān)聯(lián)的行中的所有虛擬存儲(chǔ)器單元VMU中讀取存儲(chǔ)副本數(shù)據(jù)條目,以及提供最近更新的副本數(shù)據(jù)條目給所述第二客戶端。
【專利說明】高速分布存儲(chǔ)器系統(tǒng)中的多客戶端多存儲(chǔ)器控制
【背景技術(shù)】
[0001]本發(fā)明涉及一種用于在高速分布存儲(chǔ)器系統(tǒng)中提供存儲(chǔ)器操作給客戶端群中的客戶端的多客戶端多存儲(chǔ)器控制器以及一種用于維護(hù)分布數(shù)據(jù)庫之間的數(shù)據(jù)一致性的方法。
[0002]在某些情況下,有必要將相同的數(shù)據(jù)庫保存在一個(gè)以上的位置上,但是一直要更新這些數(shù)據(jù)庫。在可能的情況下,客戶端組應(yīng)共享相同的數(shù)據(jù)庫,但是單個(gè)存儲(chǔ)器設(shè)備無法滿足在存儲(chǔ)器設(shè)備上進(jìn)行讀寫操作所需的合計(jì)存儲(chǔ)器帶寬。另一種情況是,客戶端組包含單個(gè)客戶端,其要求的存儲(chǔ)器帶寬比存儲(chǔ)器設(shè)備陣列中單個(gè)存儲(chǔ)器設(shè)備可以提供的更高。
[0003]在兩種情形下,需要復(fù)制多個(gè)存儲(chǔ)器設(shè)備上的數(shù)據(jù)庫,這些存儲(chǔ)器設(shè)備形成一個(gè)存儲(chǔ)器設(shè)備陣列。當(dāng)把數(shù)據(jù)作為副本數(shù)據(jù)保存在分布多個(gè)存儲(chǔ)器設(shè)備上,有必要保持?jǐn)?shù)據(jù)庫一致性。通常,分布存儲(chǔ)器系統(tǒng)就每個(gè)客戶端所需帶寬、每個(gè)存儲(chǔ)器設(shè)備的帶寬能力以及復(fù)雜存儲(chǔ)器設(shè)備陣列結(jié)構(gòu)而言是不對(duì)稱的,該復(fù)雜存儲(chǔ)器設(shè)備陣列結(jié)構(gòu)可以包括不同類型的存儲(chǔ)器設(shè)備,例如SRAM、RLDRAM或DDR存儲(chǔ)器設(shè)備。
[0004]圖1示出了傳統(tǒng)多客戶端存儲(chǔ)器系統(tǒng)(MCM),其中包含預(yù)定數(shù)量η個(gè)客戶端的客戶端組(CG)連接到能夠訪問存儲(chǔ)器設(shè)備(MD)的多客戶端存儲(chǔ)器控制器(MCMC)。常規(guī)的多客戶端存儲(chǔ)器控制器(MCMC)不受存儲(chǔ)器設(shè)備帶寬的限制,但是,多客戶端存儲(chǔ)器控制器用于處理臨時(shí)擁塞并且仲裁客戶端存儲(chǔ)器接入請(qǐng)求。當(dāng)連接到多客戶端存儲(chǔ)器控制器(MCMC)的單個(gè)存儲(chǔ)器設(shè)備無法提供所需帶寬時(shí),例如,在上述情況下,需要復(fù)制數(shù)據(jù)庫并將這些數(shù)據(jù)庫放到單獨(dú)的存儲(chǔ)器設(shè)備(MD)中。該組存儲(chǔ)器設(shè)備形成了一個(gè)存儲(chǔ)器設(shè)備陣列(MDA)。
[0005]存儲(chǔ)器設(shè)備陣列可以成為系統(tǒng)性能中的一個(gè)瓶頸。提高系統(tǒng)性能的技術(shù)涉及數(shù)據(jù)復(fù)制(data replicat1n)。然而,總是需要維護(hù)副本(replicat1ns)之間的數(shù)據(jù)一致性(data coherency),使得所有客戶端可以從存儲(chǔ)器設(shè)備陣列中得到最新的數(shù)據(jù)庫。相應(yīng)地,需要提供一種方法和/裝置通過數(shù)據(jù)副本提高存儲(chǔ)器和系統(tǒng)性能,同時(shí)為所有客戶端提供一致數(shù)據(jù)庫。
【發(fā)明內(nèi)容】
[0006]根據(jù)第一方面的第一實(shí)施方式,本發(fā)明提供一種用于提供存儲(chǔ)器操作給客戶端組中客戶端的多客戶端多存儲(chǔ)器控制器,
[0007]所述多客戶端多存儲(chǔ)器控制器可以訪問由按行和列排列的虛擬存儲(chǔ)器單元表示的存儲(chǔ)器設(shè)備陣列,
[0008]其中行數(shù)等于客戶端組中客戶端的數(shù)目,以及列數(shù)等于所述用于將數(shù)據(jù)寫入至所述存儲(chǔ)器設(shè)備陣列中的客戶端組中客戶端的數(shù)目,
[0009]其中所述多客戶端多存儲(chǔ)器控制器用于,為了響應(yīng)從所述客戶端組中第一客戶端接收的客戶端寫入請(qǐng)求,將所述第一客戶端的更新信息作為副本數(shù)據(jù)條目寫入至與第一客戶端相關(guān)聯(lián)的列的所有虛擬存儲(chǔ)器單元中,
[0010]其中所述多客戶端多存儲(chǔ)器控制器用于,為了響應(yīng)從所述客戶端組中的第二客戶端接收的客戶端讀取請(qǐng)求,從與第二客戶端相關(guān)聯(lián)的行中的所有虛擬存儲(chǔ)器單元中讀取被存儲(chǔ)的副本數(shù)據(jù)條目以提供最近更新的副本數(shù)據(jù)條目給所述第二客戶端。
[0011]在本發(fā)明第一方面所述的多客戶端多存儲(chǔ)器控制器的可能第二實(shí)施方式中,所述多客戶端多存儲(chǔ)器控制器能夠訪問存儲(chǔ)在數(shù)據(jù)存儲(chǔ)器中的操作映射矩陣。
[0012]在本發(fā)明第一方面所述的多客戶端多存儲(chǔ)器控制器的第二實(shí)施方式的可能第三實(shí)施方式中,所述操作映射矩陣提供客戶端組中客戶端和所述存儲(chǔ)器設(shè)備陣列中存儲(chǔ)器設(shè)備之間的映射。
[0013]在本發(fā)明第一方面所述的多客戶端多存儲(chǔ)器控制器的第一到第三實(shí)施方式的第四實(shí)施方式中,所述存儲(chǔ)器設(shè)備陣列中的每個(gè)虛擬存儲(chǔ)器單元提供一個(gè)帶寬,所述帶寬對(duì)應(yīng)于第一客戶端的讀取操作和由存儲(chǔ)器設(shè)備陣列中虛擬存儲(chǔ)器單元表示的第二客戶端的寫入操作所需的合計(jì)帶寬。
[0014]在本發(fā)明第一方面所述的多客戶端多存儲(chǔ)器控制器的第一到第四實(shí)施方式的可能第五實(shí)施方式中,所述多客戶端多存儲(chǔ)器控制器用于,為了響應(yīng)從所述客戶端組中的第一客戶端接收的客戶端寫入請(qǐng)求,將更新信息和指示客戶端存儲(chǔ)器操作的專用時(shí)間周期的時(shí)隙一起作為副本數(shù)據(jù)條目寫入至與所述客戶端相關(guān)聯(lián)的列中的所有虛擬存儲(chǔ)器單元中。
[0015]在本發(fā)明第一方面所述的多客戶端多存儲(chǔ)器控制器的第一到第五實(shí)施方式的可能第六實(shí)施方式中,所述多客戶端多存儲(chǔ)器控制器用于,為了響應(yīng)從所述客戶端組中的第二客戶端接收的客戶端讀取請(qǐng)求,讀取與所述第二客戶端相關(guān)聯(lián)的行中的所有虛擬存儲(chǔ)器單元中的被存儲(chǔ)的副本數(shù)據(jù)條目和時(shí)隙。
[0016]在本發(fā)明第一方面所述的多客戶端多存儲(chǔ)器控制器的第六實(shí)施方式的可能第七實(shí)施方式中,所述多客戶端多存儲(chǔ)器控制器還用于基于所述讀取副本數(shù)據(jù)條目的時(shí)隙選擇最近更新的副本數(shù)據(jù)條目。
[0017]在本發(fā)明第一方面所述的多客戶端多存儲(chǔ)器控制器的第七實(shí)施方式的可能第八實(shí)施方式中,所述選擇的最新副本數(shù)據(jù)條目由所述多客戶端多存儲(chǔ)器控制器提供給所述第二客戶端。
[0018]在本發(fā)明第一方面所述的多客戶端多存儲(chǔ)器控制器的可能第九實(shí)施方式中,所述多客戶端多存儲(chǔ)器控制器包括所述存儲(chǔ)器設(shè)備陣列中每個(gè)存儲(chǔ)器設(shè)備的一組FIFO子單
J Li ο
[0019]在本發(fā)明第一方面所述的多客戶端多存儲(chǔ)器控制器的第九實(shí)施方式的可能第十實(shí)施方式中,提供了所述多客戶端多存儲(chǔ)器控制器中的所述FIFO子單元在每個(gè)時(shí)隙內(nèi)保存接收到的客戶端存儲(chǔ)器操作請(qǐng)求,所述時(shí)隙專用于各自存儲(chǔ)器設(shè)備中的至少一個(gè)客戶端存儲(chǔ)器操作。
[0020]在本發(fā)明第一方面所述的多客戶端多存儲(chǔ)器控制器的第九到第十實(shí)施方式的可能第十一實(shí)施方式中,所述多客戶端多存儲(chǔ)器控制器包括所述存儲(chǔ)器設(shè)備陣列中每個(gè)存儲(chǔ)器設(shè)備的仲裁器,所述仲裁器連接到所述存儲(chǔ)器設(shè)備的一組FIFO子單元。
[0021]在本發(fā)明第一方面所述的多客戶端多存儲(chǔ)器控制器的第十一實(shí)施方式的可能第十二實(shí)施方式中,所述仲裁器用于,如果時(shí)隙包括未處理的客戶端存儲(chǔ)器操作請(qǐng)求,生成提供給所述存儲(chǔ)器設(shè)備的存儲(chǔ)器控制器的讀取命令或?qū)懭朊睢?br>
[0022]在本發(fā)明第一方面所述的多客戶端多存儲(chǔ)器控制器的第十二實(shí)施方式的可能第十三實(shí)施方式中,所述多客戶端多存儲(chǔ)器控制器包括組播固定連接矩陣,用于將從客戶端接收的客戶端存儲(chǔ)器操作請(qǐng)求硬連接到服務(wù)其數(shù)據(jù)副本的所有時(shí)隙FIFO子單元。
[0023]在本發(fā)明第一方面所述的多客戶端多存儲(chǔ)器控制器的第一到第十三實(shí)施方式的可能第十四實(shí)施方式中,所述多客戶端多存儲(chǔ)器控制器包括單播固定反向連接矩陣,用于將每組存儲(chǔ)器設(shè)備號(hào)和時(shí)隙號(hào)移動(dòng)到緩存存儲(chǔ)器中的一個(gè)位置,其中副本數(shù)據(jù)條目和一致性狀態(tài)存儲(chǔ)在所述緩存存儲(chǔ)器中。
[0024]在本發(fā)明第一方面所述的多客戶端多存儲(chǔ)器控制器的第一到第十四實(shí)施方式的可能第十五實(shí)施方式中,所述多客戶端多存儲(chǔ)器控制器包括一致性狀態(tài)寫入機(jī),用于,響應(yīng)于寫入操作請(qǐng)求,讀取所述副本數(shù)據(jù)條目的副本狀態(tài)以更新所述映射到的存儲(chǔ)器設(shè)備的所述副本狀態(tài)。
[0025]在本發(fā)明第一方面所述的多客戶端多存儲(chǔ)器控制器的第一到第十五實(shí)施方式的可能第十六實(shí)施方式中,所述多客戶端多存儲(chǔ)器控制器包括一致性狀態(tài)讀取機(jī),用于,響應(yīng)于讀取操作請(qǐng)求,接收來自所述映射到的存儲(chǔ)器設(shè)備的所有副本數(shù)據(jù)條目以選擇最新的副本數(shù)據(jù)條目。
[0026]根據(jù)本發(fā)明的第二方面的第一實(shí)施方式,提供了一種高速分布存儲(chǔ)器系統(tǒng),包括:
[0027]本發(fā)明第一方面所述的多客戶端多存儲(chǔ)器控制器,
[0028]包含多個(gè)連接到所述多客戶端多存儲(chǔ)器控制器的客戶端的客戶端組,以及
[0029]連接到所述多客戶端多存儲(chǔ)器控制器的存儲(chǔ)器設(shè)備陣列中的多個(gè)存儲(chǔ)器設(shè)備。
[0030]在本發(fā)明第二方面所述的高速分布存儲(chǔ)器系統(tǒng)的可能第二實(shí)施方式中,所述客戶端組的所有客戶端用于在讀取操作中從所述存儲(chǔ)器設(shè)備陣列中讀取數(shù)據(jù),以及所述客戶端組中一部分客戶端用于在寫入操作中將數(shù)據(jù)寫入至所述存儲(chǔ)器設(shè)備陣列中。
[0031]根據(jù)本發(fā)明的第三方面的第一實(shí)施方式,提供了一種用于維護(hù)分布在存儲(chǔ)器設(shè)備陣列中存儲(chǔ)器設(shè)備上的數(shù)據(jù)庫之間的數(shù)據(jù)一致性,所述存儲(chǔ)器設(shè)備陣列由按行和列排列的虛擬存儲(chǔ)器單元表示,
[0032]其中為了響應(yīng)客戶端寫入請(qǐng)求,所述第一客戶端的更新信息作為副本數(shù)據(jù)條目寫入至與所述第一客戶端相關(guān)聯(lián)的列中的所有虛擬存儲(chǔ)器單元中;
[0033]為了響應(yīng)客戶端讀取請(qǐng)求,從與第二客戶端相關(guān)聯(lián)的行中的所有虛擬存儲(chǔ)器單元中讀取被存儲(chǔ)的副本數(shù)據(jù)條目以提供所述第二客戶端的最近更新的副本數(shù)據(jù)條目。
[0034]在本發(fā)明第三方面所述的方法的可能第二實(shí)施方式中,為了響應(yīng)客戶端寫入請(qǐng)求,將更新信息和指示客戶端存儲(chǔ)器操作的專用時(shí)間周期的時(shí)隙一起作為副本數(shù)據(jù)條目寫入至與所述第一客戶端相關(guān)聯(lián)的列中的所有虛擬存儲(chǔ)器單元。
[0035]在本發(fā)明第三方面所述的方法的第一或第二實(shí)施方式的可能第三實(shí)施方式中,為了響應(yīng)客戶端讀取請(qǐng)求,讀取與所述第二客戶端相關(guān)聯(lián)的行中的所有虛擬存儲(chǔ)器單元中的被存儲(chǔ)的副本數(shù)據(jù)條目和所述時(shí)隙,并基于時(shí)隙選擇以提供最近更新的副本數(shù)據(jù)條目給所述第二客戶端。
[0036]在可能實(shí)施方式中,所述第一客戶端和所述第二客戶端可以是同一個(gè)客戶端。
[0037]在又一可能實(shí)施方式中,所述第一客戶端可以發(fā)送寫入請(qǐng)求,所述第二客戶端可以發(fā)送讀取請(qǐng)求,或者所述第一客戶端可以發(fā)送讀取請(qǐng)求,所述第二客戶端可以發(fā)送寫入請(qǐng)求。
【專利附圖】
【附圖說明】
[0038]在下文中,將參考附圖對(duì)本發(fā)明的不同方面的可能實(shí)施方式進(jìn)行更加詳細(xì)的描述。
[0039]圖1所示為傳統(tǒng)多客戶端存儲(chǔ)器系統(tǒng)架構(gòu);
[0040]圖2所示為根據(jù)本發(fā)明第二方面的高速分布存儲(chǔ)器系統(tǒng)的可能實(shí)施方式的方框圖,所述高速分布存儲(chǔ)器系統(tǒng)包括根據(jù)本發(fā)明第一方面的多客戶端多存儲(chǔ)器控制器;
[0041]圖3所示為根據(jù)本發(fā)明的第二和第三方面描繪被方法的多客戶端多存儲(chǔ)器控制器使用的虛擬存儲(chǔ)器單元,所述方法用于維護(hù)分布在存儲(chǔ)器設(shè)備陣列的存儲(chǔ)器設(shè)備上的數(shù)據(jù)庫之間的數(shù)據(jù)一致性;
[0042]圖4所示為根據(jù)本發(fā)明的第二和第三方面描繪虛擬存儲(chǔ)器單元到存儲(chǔ)器設(shè)備陣列中不同存儲(chǔ)器設(shè)備的映射的圖,該映射被多客戶端多存儲(chǔ)器控制器和用于維護(hù)數(shù)據(jù)一致性的方法執(zhí)行;
[0043]圖5所示為根據(jù)本發(fā)明的第二和第三方面描繪虛擬存儲(chǔ)器單元陣列的又一示例的又一圖,該虛擬存儲(chǔ)器單元陣列被多客戶端多存儲(chǔ)器控制器和用于維護(hù)數(shù)據(jù)庫之間的數(shù)據(jù)一致性的方法使用;
[0044]圖6所示為描繪如圖5所示的虛擬存儲(chǔ)器單元到存儲(chǔ)器設(shè)備陣列中存儲(chǔ)器設(shè)備的映射的又一圖;
[0045]圖7所示為根據(jù)本發(fā)明的第二和第三方面描繪虛擬存儲(chǔ)器單元到存儲(chǔ)器設(shè)備陣列中存儲(chǔ)器設(shè)備的映射的又一圖,該映射被多客戶端多存儲(chǔ)器控制器和用于維護(hù)數(shù)據(jù)庫之間的數(shù)據(jù)一致性的方法執(zhí)行;
[0046]圖8所示為根據(jù)本發(fā)明的第一和第二方面描繪虛擬存儲(chǔ)器單元的圖,虛擬存儲(chǔ)器單元由多客戶端多存儲(chǔ)器控制器和用于維護(hù)數(shù)據(jù)庫之間的數(shù)據(jù)一致性的方法控制;
[0047]圖9所示為根據(jù)本發(fā)明的第一和第二方面描繪虛擬存儲(chǔ)器單元到存儲(chǔ)器設(shè)備陣列中存儲(chǔ)器設(shè)備的映射的圖,該映射被多客戶端多存儲(chǔ)器控制器和用于維護(hù)數(shù)據(jù)庫之間的數(shù)據(jù)一致性的方法采用;
[0048]圖10所示為根據(jù)本發(fā)明的第一和第二方面描繪映射的圖,該映射被多客戶端多存儲(chǔ)器控制器和用于維護(hù)數(shù)據(jù)庫之間的數(shù)據(jù)一致性的方法執(zhí)行;
[0049]圖11所示為根據(jù)本發(fā)明的第一和第二方面描繪映射的圖,該映射被多客戶端多存儲(chǔ)器控制器和用于維護(hù)數(shù)據(jù)庫之間的數(shù)據(jù)一致性的方法采用;
[0050]圖12所示為本發(fā)明的第一方面的多客戶端多存儲(chǔ)器控制器的可能實(shí)施方式的方框圖。
【具體實(shí)施方式】
[0051]從圖2中可見,根據(jù)本發(fā)明第二方面的高速分布存儲(chǔ)器系統(tǒng)I可以包括根據(jù)本發(fā)明第一方面的多客戶端多存儲(chǔ)器控制器2,若干個(gè)客戶端(3-1、3-2、3-3……3-n)可以經(jīng)由數(shù)據(jù)網(wǎng)絡(luò)連接到多客戶端多存儲(chǔ)器控制器2??蛻舳?-1到3-n形成一個(gè)由η個(gè)客戶端組成的客戶端組(CG)。高速分布存儲(chǔ)器系統(tǒng)I進(jìn)一步包括含有r個(gè)存儲(chǔ)器設(shè)備4-l、4-2、4-r的存儲(chǔ)器設(shè)備陣列(MDA),該存儲(chǔ)器設(shè)備陣列連接到多客戶端多存儲(chǔ)器控制器2??蛻舳思蚪M要求來自由多客戶端多存儲(chǔ)器控制器2控制的存儲(chǔ)器設(shè)備陣列MDA中的存儲(chǔ)器設(shè)備4-1(0〈i〈r,其中i是大于O小于r的整數(shù))集的存儲(chǔ)器服務(wù)。多客戶端多存儲(chǔ)器控制器2可以向客戶端組CG中的每個(gè)客戶端3-1 (0〈i〈n,其中i是大于O小于η的整數(shù))充當(dāng)標(biāo)準(zhǔn)的存儲(chǔ)器設(shè)備,并且可以向存儲(chǔ)器設(shè)備陣列MDA中的每個(gè)存儲(chǔ)器設(shè)備4-1充當(dāng)單個(gè)客戶端。
[0052]客戶端組CG中的客戶端3-1由連接到多客戶端多存儲(chǔ)器控制器2的物理實(shí)體構(gòu)成并接收存儲(chǔ)器服務(wù)??蛻舳私MCG是共享公用數(shù)據(jù)庫的客戶端3-1的集合,如圖2所示。客戶端組CG中的所有客戶端3-1都連接到高速分布存儲(chǔ)器系統(tǒng)I中的同一多客戶端多存儲(chǔ)器控制器2。每個(gè)客戶端3-1包括一個(gè)不同的私有存儲(chǔ)器接口,其將各自的客戶端連接到多客戶端多存儲(chǔ)器控制器2。客戶端組CG內(nèi)的客戶端數(shù)目η根據(jù)系統(tǒng)的應(yīng)用而變化。
[0053]存儲(chǔ)器設(shè)備陣列MDA內(nèi)的存儲(chǔ)器設(shè)備4-1可以由物理存儲(chǔ)器設(shè)備或由存儲(chǔ)器設(shè)備中的扇區(qū),例如DDR存儲(chǔ)器設(shè)備中的存儲(chǔ)體構(gòu)成。一個(gè)存儲(chǔ)器設(shè)備可以由一個(gè)或多個(gè)表不存儲(chǔ)器設(shè)備陣列MDA內(nèi)的存儲(chǔ)器設(shè)備的虛擬存儲(chǔ)器單元VMU組成。
[0054]時(shí)隙(TS)是存儲(chǔ)器設(shè)備(MD)專用的時(shí)間周期,即,TS是為每個(gè)存儲(chǔ)器設(shè)備MD分配的周期,而且存儲(chǔ)器設(shè)備陣列MDA中每個(gè)存儲(chǔ)器設(shè)備MD的周期是不同的。在專用時(shí)隙TS中,可以在存儲(chǔ)器設(shè)備陣列MDA中的存儲(chǔ)器設(shè)備MD上執(zhí)行客戶端讀/寫入操作。
[0055]指示各自客戶端操作專用的時(shí)間周期的時(shí)隙TS可以指示存儲(chǔ)器設(shè)備陣列MDA的存儲(chǔ)器設(shè)備4-1中的特定客戶端操作。存儲(chǔ)器設(shè)備陣列MDA由存儲(chǔ)器設(shè)備4-1集合構(gòu)成,以提供更高帶寬的虛擬存儲(chǔ)器,其支持由η個(gè)客戶端3-1組成的客戶端組CG。存儲(chǔ)器設(shè)備陣列MDA中存儲(chǔ)器設(shè)備的數(shù)目r可以根據(jù)高速分布存儲(chǔ)器系統(tǒng)I的應(yīng)用而變化。
[0056]高速分布存儲(chǔ)器系統(tǒng)I的多客戶端多存儲(chǔ)器控制器2構(gòu)成一個(gè)管理存儲(chǔ)器設(shè)備陣列MDA中的多個(gè)存儲(chǔ)器設(shè)備4-1的單元并且提供存儲(chǔ)器服務(wù)給客戶端組CG中的客戶端
3-1。存儲(chǔ)器設(shè)備陣列MDA由虛擬存儲(chǔ)器單元(VMU)表示,而多客戶端多存儲(chǔ)器控制器2使用虛擬存儲(chǔ)器單元來提供存儲(chǔ)器服務(wù)給客戶端組CG中的客戶端3-1。虛擬存儲(chǔ)器單元VMU是一個(gè)可以提供寫入服務(wù)給唯一的客戶端3-1并為客戶端組CG中唯一的客戶端提供讀取服務(wù)的邏輯實(shí)體。第二客戶端和第一客戶端可以相同或不同。創(chuàng)建虛擬存儲(chǔ)器單元VMU執(zhí)行一種用于維護(hù)分布在存儲(chǔ)器設(shè)備陣列MDA中的不同存儲(chǔ)器設(shè)備3-1上的數(shù)據(jù)塊之間的數(shù)據(jù)一致性,存儲(chǔ)器設(shè)備陣列MDA由按行和列排列的虛擬存儲(chǔ)器單元VMU表示。
[0057]在如圖2所示的高速分布存儲(chǔ)器系統(tǒng)I中,連接到多客戶端多存儲(chǔ)器控制器2的客戶端組CG中的所有客戶端3-1可以要求來自多客戶端多存儲(chǔ)器控制器2的讀取服務(wù),同時(shí)客戶端組CG中只有m(m〈n)個(gè)客戶端3_i可以要求來自多客戶端多存儲(chǔ)器控制器2的寫入服務(wù)。相應(yīng)地,客戶端組CG的所有客戶端3-1用于在讀取操作中從存儲(chǔ)器設(shè)備陣列MDA中讀取數(shù)據(jù),而客戶端組CG中只有一部分客戶端用于在寫入操作中將數(shù)據(jù)寫入至存儲(chǔ)器設(shè)備陣列MDA中。
[0058]多客戶端多存儲(chǔ)器控制器2可以訪問由按行和列排列的虛擬存儲(chǔ)器單元VMU表示的存儲(chǔ)器設(shè)備陣列MDA。在可能實(shí)施方式中,這種矩陣中的行數(shù)可以等于如圖2所示的各個(gè)客戶端組CG中客戶端3-1的數(shù)目η。矩陣中的列數(shù)可以等于客戶端組CG中客戶端的數(shù)目m,所述客戶端組CG用于將數(shù)據(jù)寫入至存儲(chǔ)器設(shè)備陣列MDA中。
[0059]多客戶端多存儲(chǔ)器控制器2用于,為了響應(yīng)于從客戶端組CG中客戶端3-1接收的客戶端寫入請(qǐng)求(WR),將第一客戶端的更新信息作為副本數(shù)據(jù)條目寫入至與各個(gè)第一客戶端相關(guān)聯(lián)的列中的所有虛擬存儲(chǔ)器單元VMU中??蛻舳说母滦畔⒖梢允窍啾扔诖鎯?chǔ)信息的任何新的或改變的信息。
[0060]此外,多客戶端多存儲(chǔ)器控制器2用于,為了響應(yīng)于從客戶端組CG中的客戶端3-1接收的客戶端讀取請(qǐng)求(RR),從與各自請(qǐng)求的客戶端相關(guān)聯(lián)的行中的所有虛擬存儲(chǔ)器單元VMU中讀取被存儲(chǔ)的副本數(shù)據(jù)條目,以及提供最近更新的副本數(shù)據(jù)條目給各自請(qǐng)求的客戶端3-1。在可能實(shí)施方式中,多客戶端多存儲(chǔ)器控制器2可以訪問存儲(chǔ)在數(shù)據(jù)存儲(chǔ)器中的操作映射矩陣。這種數(shù)據(jù)存儲(chǔ)器可以集成在多客戶端多存儲(chǔ)器控制器2中。這種操作映射矩陣提供了客戶端組CG中的客戶端3-1和存儲(chǔ)器設(shè)備陣列MDA中的存儲(chǔ)器設(shè)備4-1之間的映射。存儲(chǔ)器設(shè)備陣列中的每個(gè)虛擬存儲(chǔ)器單元VMU可以提供一個(gè)帶寬(BW),該帶寬對(duì)應(yīng)于由虛擬存儲(chǔ)器單元VMU表示的第一客戶端的讀取操作和第二客戶端的寫入操作所需的合計(jì)帶寬。虛擬存儲(chǔ)器單元VMU以nXm虛擬存儲(chǔ)器單元VMU的陣列可以表示存儲(chǔ)器設(shè)備陣列MDA的方式形成一個(gè)基本邏輯實(shí)體。將虛擬存儲(chǔ)器單元VMU映射或放置到存儲(chǔ)器設(shè)備
4-1之后,得到一個(gè)物理存儲(chǔ)器設(shè)備陣列,其仍然具有相同的nXm矩陣但是具有物理的、不一定對(duì)稱的存儲(chǔ)器設(shè)備MD4-1。虛擬存儲(chǔ)器單元VMU到存儲(chǔ)器設(shè)備4-1的映射可以根據(jù)每個(gè)虛擬存儲(chǔ)器單元VMU帶寬BW要求和每個(gè)存儲(chǔ)器設(shè)備MD帶寬BW能力在可能實(shí)施例中執(zhí)行。從圖2中可見,存在η個(gè)客戶端3-1,所有客戶端都要求多客戶端多存儲(chǔ)器控制器2的讀取服務(wù),同時(shí)只有一部分客戶端3-1獲得多客戶端多存儲(chǔ)器控制器2的寫入服務(wù)。在許多情況下,單個(gè)存儲(chǔ)器設(shè)備4-1無法產(chǎn)生所有客戶端3-1的合計(jì)所需帶寬。此外,客戶端組CG中每個(gè)客戶端3-1的讀取和寫入帶寬要求可以不同。此外,每個(gè)存儲(chǔ)器設(shè)備4-1的帶寬Bff能力也可以不同。
[0061]當(dāng)單個(gè)存儲(chǔ)器設(shè)備4-1不夠時(shí),需要將數(shù)據(jù)庫復(fù)制到多個(gè)創(chuàng)建存儲(chǔ)器設(shè)備陣列MDA的存儲(chǔ)器設(shè)備中。由于每個(gè)存儲(chǔ)器設(shè)備4-1因帶寬BW限制而不能被所有客戶端訪問,因此,存儲(chǔ)器設(shè)備陣列MDA按如下方式建立:任何客戶端寫入至存儲(chǔ)器設(shè)備陣列MDA中的若干個(gè)存儲(chǔ)器設(shè)備4-1并且通過任何客戶端從所有寫入客戶端讀取數(shù)據(jù)的方式從若干個(gè)其他客戶端讀取。
[0062]相應(yīng)地,多客戶端多存儲(chǔ)器控制器2將任意客戶端映射到其存儲(chǔ)器設(shè)備,使得存儲(chǔ)器設(shè)備陣列MDA映射到所有客戶端組CG的讀取和寫入服務(wù)。這種映射建立形成了分布映射建立過程。
[0063]由于客戶端組CG中的每個(gè)寫入客戶端3-1在其自己的時(shí)間內(nèi)寫入信息或數(shù)據(jù),因此讀取客戶端可以選擇最新的信息以進(jìn)一步使用或處理。這種功能形成所謂的一致性功能(coherency funct1n)。下文中,分布映射建立參照一些簡(jiǎn)單的示例性實(shí)施例進(jìn)行說明。
[0064]在第一示例性實(shí)施方式中,只存在兩個(gè)客戶端3_i,組成一個(gè)客戶端組CG??蛻舳私MCG中的每個(gè)客戶端要求對(duì)稱的讀寫服務(wù)。此外,在這種簡(jiǎn)單示例中,兩個(gè)客戶端都要求相同的帶寬BW。存儲(chǔ)器設(shè)備陣列MDA中的單個(gè)存儲(chǔ)器設(shè)備4-1可以滿足該示例中單個(gè)客戶端的帶寬要求。從帶寬角度來看,存儲(chǔ)器設(shè)備4-1對(duì)該請(qǐng)求是讀取請(qǐng)求RR還是寫入請(qǐng)求WR不敏感。此外,從帶寬角度來看,存儲(chǔ)器設(shè)備陣列MDA包括單個(gè)存儲(chǔ)器設(shè)備類型。當(dāng)兩個(gè)客戶端3-1建立單個(gè)客戶端組CG時(shí),客戶端的數(shù)目η在給定實(shí)例中是2 (η = 2)。如果客戶端要求對(duì)稱的讀寫服務(wù),第一客戶端的數(shù)目還是2(η = 2)。每個(gè)客戶端的讀取帶寬完全與每個(gè)客戶端的寫入帶寬相同,形成一個(gè)帶寬單元(1BW單元)。由于在給定示例中,每個(gè)存儲(chǔ)器設(shè)備4-1的帶寬為4,所以為客戶端組CG中的每個(gè)客戶端3-1提供兩個(gè)時(shí)隙TS,為存儲(chǔ)器設(shè)備陣列MDA中的單個(gè)存儲(chǔ)器設(shè)備MD提供共四個(gè)TS。
[0065]圖3示出了分布映射建立過程的第一步驟,用來建立一個(gè)由按兩行兩列排列的虛擬存儲(chǔ)器單元VMU組成的nXm矩陣。在圖3的示例中,行數(shù)等于客戶端組CG中客戶端的數(shù)目η = 2。此外,列數(shù)等于客戶端組CG中客戶端的數(shù)目m= 2,該客戶端組用于將數(shù)據(jù)寫入至存儲(chǔ)器設(shè)備陣列MDA中。每行表示一個(gè)客戶端讀取操作,矩陣的每列表示一個(gè)客戶端寫入操作。相應(yīng)地,該nXm矩陣包括如圖3所示的2X2個(gè)虛擬存儲(chǔ)器單元VMU。矩陣中的每個(gè)單元格是一個(gè)虛擬存儲(chǔ)器單元VMU,其表示一個(gè)可以提供讀取服務(wù)和寫入服務(wù)給單個(gè)客戶端的原子存儲(chǔ)器單元。例如,VMUljl供客戶端I讀取和寫入,VMU12供客戶端I讀取并供客戶端2寫入。
[0066]在分布映射建立過程的又一步驟中,如圖3所示的虛擬存儲(chǔ)器單元映射到如圖4所示的存儲(chǔ)器設(shè)備陣列MDA中的物理存儲(chǔ)器設(shè)備。
[0067]在簡(jiǎn)單示例中,提供圖3所示的矩陣中的每個(gè)虛擬存儲(chǔ)器單元VMU以支持至少兩個(gè)帶寬單元,即,一個(gè)用于讀取操作的帶寬單元和一個(gè)用于寫入操作的帶寬單元。由于在給定示例中存儲(chǔ)器設(shè)備4-1可以提供多達(dá)兩個(gè)帶寬單元,因此每個(gè)虛擬存儲(chǔ)器單元VMU映射到如圖4所示的不同存儲(chǔ)器設(shè)備MD4-1。
[0068]相應(yīng)地,映射結(jié)果如下:
[0069]客戶端I寫入至存儲(chǔ)器設(shè)備MDl和存儲(chǔ)器設(shè)備MD3,
[0070]客戶端2寫入至存儲(chǔ)器設(shè)備MD2和存儲(chǔ)器設(shè)備MD4,
[0071]客戶端I從存儲(chǔ)器設(shè)備MDl和存儲(chǔ)器設(shè)備MD2中讀取,以及
[0072]客戶端2從存儲(chǔ)器設(shè)備MD3和存儲(chǔ)器設(shè)備MD4中讀取,
[0073]以上從圖4中可見。
[0074]例如,客戶端2可以從已經(jīng)被客戶端I寫入的存儲(chǔ)器設(shè)備MD3中讀取,并且還可以從已經(jīng)被客戶端2自身寫入的存儲(chǔ)器設(shè)備MD4中讀取。客戶端2擁有所有寫入客戶端的信息。如圖2所示的多客戶端多存儲(chǔ)器控制器2可以提供一致性功能,使得客戶端2有能力選擇最新的數(shù)據(jù)庫。
[0075]如圖4所述的四個(gè)存儲(chǔ)器設(shè)備MD1、MD2、MD3和MD4可以形成存儲(chǔ)器設(shè)備陣列MDA的4個(gè)存儲(chǔ)器設(shè)備4-1、4-2、4-3和4-4,該存儲(chǔ)器設(shè)備陣列可以服務(wù)包含第一客戶端3_1和第二客戶端3-2的客戶端組CG。
[0076]存儲(chǔ)器設(shè)備MDl的時(shí)隙TSl可以供客戶端3_1進(jìn)行讀取操作。
[0077]存儲(chǔ)器設(shè)備MDl的時(shí)隙TS2可以供客戶端3_1進(jìn)行寫入操作。
[0078]存儲(chǔ)器設(shè)備MD2的時(shí)隙TSl可以供客戶端3_1進(jìn)行讀取操作。
[0079]存儲(chǔ)器設(shè)備MD2的時(shí)隙TS2可以供客戶端組CG中的客戶端3_2進(jìn)行寫入操作。
[0080]存儲(chǔ)器設(shè)備MD3的時(shí)隙TSl可以供客戶端3_2進(jìn)行讀取操作。
[0081]存儲(chǔ)器設(shè)備MD3的時(shí)隙TS2可以供客戶端3_1進(jìn)行寫入操作。
[0082]存儲(chǔ)器設(shè)備MD4的時(shí)隙TSl可以供客戶端3_2進(jìn)行讀取操作。
[0083]存儲(chǔ)器設(shè)備MD4的時(shí)隙TS2可以供客戶端3_2進(jìn)行寫入操作。
[0084]在上述示例中,每個(gè)客戶端3-1要求對(duì)稱的讀寫服務(wù)??蛻舳?-1和3-2均能執(zhí)行讀寫操作。
[0085]然而,如圖2所示的根據(jù)本發(fā)明的高速分布存儲(chǔ)器系統(tǒng)I不局限于此,但是還可以用于非對(duì)稱客戶端。例如,可能的高速分布存儲(chǔ)器系統(tǒng)I可以提供給包含三個(gè)客戶端3-1、
3-2和3-3的客戶端組CG,其中兩個(gè)是寫入客戶端,用于在寫入操作中將數(shù)據(jù)寫入至存儲(chǔ)器設(shè)備陣列MDA中。相應(yīng)地,在示例性第二示例中,存在三個(gè)客戶端3-1、3-2和3-3,其中兩個(gè)客戶端3-1和3-3要求對(duì)稱的讀寫服務(wù),而只有一個(gè)客戶端,例如客戶端3-2僅要求讀取服務(wù)。
[0086]此外,所有客戶端3-1可以要求相同的帶寬BW。另外,在此示例中,單個(gè)存儲(chǔ)器設(shè)備4-1可以提供具有三個(gè)帶寬BW單元的帶寬。從帶寬角度來看,存儲(chǔ)器設(shè)備4-1對(duì)該請(qǐng)求是讀取請(qǐng)求RR還是寫入請(qǐng)求WR不敏感。此外,在給定的示例中,從帶寬角度來看,在存儲(chǔ)器設(shè)備陣列MDA中使用單個(gè)存儲(chǔ)器設(shè)備類型。相應(yīng)地,在給定示例中,第二客戶端的數(shù)目η是3 (η = 3),而第一客戶端的數(shù)目m是2 (m = 2)。每個(gè)客戶端讀取帶寬等于對(duì)應(yīng)于一個(gè)帶寬單元的客戶端寫入帶寬。由于在給定的示例中每個(gè)存儲(chǔ)器設(shè)備4-1提供等于3的帶寬BW,所以每個(gè)存儲(chǔ)器設(shè)備4-1可以提供3個(gè)時(shí)隙TS。
[0087]在分布映射建立過程的第一步驟中,形成了一個(gè)nXm矩陣。相應(yīng)地,在給定的示例中,建立了一個(gè)3 X 2矩陣,在該矩陣中,如圖5所述,每行表示一個(gè)客戶端讀取操作,每列表不一個(gè)客戶端寫入操作。
[0088]圖5所示為包含6個(gè)虛擬存儲(chǔ)器單元VMU的矩陣。由于第二客戶端3-2只要求讀取服務(wù)而不要求寫入操作,所以不存在虛擬存儲(chǔ)器單元VMU12,同樣第二客戶端3-2不存在寫入操作。相應(yīng)地,圖5所示的矩陣中沒有提供用于第二客戶端3-2的矩陣中的列。
[0089]在分布映射建立過程的又一步驟中,虛擬存儲(chǔ)器單元VMU映射到存儲(chǔ)器設(shè)備陣列的存儲(chǔ)器設(shè)備MD4-1。由于是對(duì)稱系統(tǒng),每個(gè)虛擬存儲(chǔ)器單元VMU需要支持至少兩個(gè)帶寬單元,即一個(gè)用于讀取操作,一個(gè)用于寫入操作。由于存儲(chǔ)器設(shè)備4-1可以提供多達(dá)三個(gè)帶寬單元BU,可以選擇虛擬存儲(chǔ)器單元VMUm和虛擬存儲(chǔ)器單元VMU2il作為構(gòu)成如圖6所述的第一存儲(chǔ)器設(shè)備MDl的一組虛擬存儲(chǔ)器單元VMU。
[0090]從物理第一存儲(chǔ)器設(shè)備MDl,即,存儲(chǔ)器設(shè)備陣列MDA的存儲(chǔ)器設(shè)備4_1,的角度來看,這個(gè)存儲(chǔ)器設(shè)備4-1供第一客戶端3-1進(jìn)行讀寫操作,以及供第二客戶端3-2進(jìn)行讀取操作。由第一存儲(chǔ)器設(shè)備4-1提供的總帶寬包括3個(gè)帶寬單元(BW單元=3)。
[0091]相應(yīng)地,此示例中的映射結(jié)果如下:
[0092]客戶端3-1寫入至存儲(chǔ)器設(shè)備MDl和MD3,
[0093]客戶端3-3寫入至存儲(chǔ)器設(shè)備MD2和MD3,
[0094]客戶端3-1從存儲(chǔ)器設(shè)備MDl和MD2中讀取,
[0095]客戶端3-2從存儲(chǔ)器設(shè)備MDl和MD2中讀取,以及
[0096]客戶端3-3從存儲(chǔ)器設(shè)備MD3中讀取,
[0097]如圖6所述。
[0098]如果,例如,客戶端3-2從已經(jīng)被客戶端3-1寫入的存儲(chǔ)器設(shè)備MDl和已經(jīng)被客戶端3-3寫入的存儲(chǔ)器設(shè)備MD2中讀取,則客戶端3-2擁有所有寫入客戶端的信息。多客戶端多存儲(chǔ)器控制器2提供一致性功能給客戶端3-2,其具有能力從存儲(chǔ)器設(shè)備MDl和MD2中選擇讀取副本數(shù)據(jù)條目中的最新數(shù)據(jù)庫。
[0099]圖6的矩陣所示的3個(gè)存儲(chǔ)器設(shè)備MDl、MD2和MD3組成存儲(chǔ)器設(shè)備陣列MDA,其服務(wù)上述由客戶端3-1、3-2和3-3組成的客戶端組CG,其中客戶端3_2只能讀取,而無法執(zhí)行寫入操作。
[0100]因此,存儲(chǔ)器設(shè)備MDl的時(shí)隙TSl可以供客戶端3-1讀取。
[0101]存儲(chǔ)器設(shè)備MDl的時(shí)隙TS2可以供客戶端3-2讀取。
[0102]存儲(chǔ)器設(shè)備MDl的時(shí)隙TS3可以供客戶端3-1寫入。
[0103]此外,存儲(chǔ)器設(shè)備MD2的時(shí)隙TSl可以供客戶端3_1讀取。
[0104]存儲(chǔ)器設(shè)備MD2的時(shí)隙TS2可以供客戶端3_2讀取。
[0105]存儲(chǔ)器設(shè)備MD2的時(shí)隙TS3可以供客戶端3-2寫入。
[0106]此外,存儲(chǔ)器設(shè)備MD3的時(shí)隙TSl可以供客戶端3_3讀取。
[0107]存儲(chǔ)器設(shè)備MD3的時(shí)隙TS2可以供客戶端3_1寫入。
[0108]存儲(chǔ)器設(shè)備MD3的時(shí)隙TS3可以供客戶端3-3寫入。
[0109]又一示例示出了高速分布存儲(chǔ)器系統(tǒng)1,其中存儲(chǔ)器設(shè)備4-1的存儲(chǔ)器設(shè)備類型可以具有不同的帶寬BW。例如,如果第一類型的存儲(chǔ)器設(shè)備的帶寬BW等于3,則這種類型的每個(gè)存儲(chǔ)器設(shè)備可以提供3個(gè)時(shí)隙TS。如果第二類型的存儲(chǔ)器設(shè)備的帶寬等于4,則這種類型的每個(gè)存儲(chǔ)器設(shè)備可以提供4個(gè)時(shí)隙TS。假如由上述示例中的不同客戶端3-1、3-2和3-3組成的客戶端組不改變,可以在第二步驟中通過將虛擬存儲(chǔ)器單元VMU映射到如圖7所示的存儲(chǔ)器設(shè)備來執(zhí)行分布映射建立。在此示例中,構(gòu)造虛擬存儲(chǔ)器單元VMUm、VMUlj3>VMUy和VMU2,3來填充存儲(chǔ)器設(shè)備MDl,虛擬存儲(chǔ)器單元VMU^1和vmuW構(gòu)造第二存儲(chǔ)器設(shè)備 MD2。
[0110]相應(yīng)地,在此示例中,兩個(gè)存儲(chǔ)器設(shè)備可以組成存儲(chǔ)器設(shè)備陣列MDA并服務(wù)上述客戶端組CG中的客戶端3-1,如下:
[0111]存儲(chǔ)器設(shè)備MDl的時(shí)隙TSl供客戶端3-1讀取。
[0112]存儲(chǔ)器設(shè)備MDl的時(shí)隙TS2供客戶端3_2讀取。
[0113]存儲(chǔ)器設(shè)備MD2的時(shí)隙TS3供客戶端3_1寫入。
[0114]存儲(chǔ)器設(shè)備MDl的時(shí)隙TS4服務(wù)客戶端3-3進(jìn)行寫入。
[0115]存儲(chǔ)器設(shè)備MD2的時(shí)隙TSl供客戶端3_3讀取。
[0116]存儲(chǔ)器設(shè)備MD2的時(shí)隙TS2供客戶端3_1寫入。
[0117]存儲(chǔ)器設(shè)備MD2的時(shí)隙TS3供客戶端3-3寫入。
[0118]圖8所示為描繪一般映射過程的圖,其中建立一個(gè)nXm矩陣,其具有用于讀取客戶端的η行和用于寫入客戶端的m列。圖8所示的矩陣中的每個(gè)單元格由虛擬存儲(chǔ)器單元VMUij」(0〈i〈n,0〈 j〈m,其中i是大于O小于η的整數(shù),j是大于O小于m的整數(shù))表示,該虛擬存儲(chǔ)器單元需要Ri (0〈i〈n,其中i是大于O小于η的整數(shù))個(gè)讀取帶寬單元以及Wj (0<j<m,其中j是大于O小于m的整數(shù))個(gè)寫入帶寬單元。按照合計(jì)客戶端帶寬小于存儲(chǔ)器設(shè)備的所選帶寬(客戶端BW〈所選MD Bff)這種方式準(zhǔn)備虛擬存儲(chǔ)器單元VMU。對(duì)于每個(gè)存儲(chǔ)器設(shè)備MD,客戶端組CG中同一客戶端3-1的每個(gè)讀取或?qū)懭氩僮髦槐豢紤]一次,具有所需的帶寬是存儲(chǔ)器設(shè)備MD中所有虛擬存儲(chǔ)器單元VMU的最大帶寬,這些存儲(chǔ)器設(shè)備連接到各自的客戶端。
[0119]圖9示出了用于圖8所示的一般映射過程的映射??梢姡Y(jié)果是每客戶端讀取請(qǐng)求(點(diǎn)到多點(diǎn))具有一組讀取操作以及每客戶端寫入請(qǐng)求具有一組寫入操作。因此,可以在如圖10所示的每個(gè)目的地(存儲(chǔ)器設(shè)備號(hào)MD#和時(shí)隙號(hào)TS#)建立以下映射。
[0120]在圖10示出的表中,源或客戶端可以和其用于讀寫操作的數(shù)據(jù)庫復(fù)制一樣出現(xiàn)多次。源指的是一組客戶端#和讀/寫入操作。為了由單個(gè)存儲(chǔ)器設(shè)備MD提供多個(gè)客戶端服務(wù),時(shí)隙TS定義了該客戶端被服務(wù)的時(shí)間周期。每個(gè)時(shí)隙TS可以擁有一個(gè)保存若干個(gè)異步請(qǐng)求的小緩沖器。有可能建立一個(gè)如圖11所示的讀取數(shù)據(jù)反向映射。
[0121]該表中應(yīng)該只出現(xiàn)一次源,該源是特定移動(dòng)設(shè)備MD中的時(shí)隙TS。源指的是一組移動(dòng)設(shè)備MD#和時(shí)隙TS#。每個(gè)時(shí)隙TS可以擁有一個(gè)小的緩存器或寄存器等緩沖器,其保存若干個(gè)讀取操作結(jié)果直到處理和刪除這些結(jié)果。
[0122]圖12所示為根據(jù)本發(fā)明第一方面的多客戶端多存儲(chǔ)器控制器2的可能實(shí)施方式的方框圖,該多客戶端多存儲(chǔ)器控制器2根據(jù)本發(fā)明的第二方面在圖2所示的高速分布存儲(chǔ)器系統(tǒng)I內(nèi)提供。
[0123]從圖12中可見,在存儲(chǔ)器設(shè)備陣列MDA中的每個(gè)存儲(chǔ)器設(shè)備4-1的所示的實(shí)施方式中,多客戶端多存儲(chǔ)器控制器2包括存儲(chǔ)器設(shè)備陣列MDA中每個(gè)存儲(chǔ)器設(shè)備4-1的一組FIFO子單元5-1。如果存儲(chǔ)器設(shè)備陣列MAD中的存儲(chǔ)器設(shè)備4_i的數(shù)目等于r,F(xiàn)IFO子單元的數(shù)目也是r。相應(yīng)地,在所示的實(shí)施方式中,多客戶端多存儲(chǔ)器控制器2包括如圖12
所示的FIFO子單元5-1、5-2......5-r。每個(gè)FIFO子單元5_i (0〈i〈r,其中i是大于O小于
r的整數(shù))可以包括如圖12的實(shí)施方式所示的一個(gè)或多個(gè)FIFO寄存器。每個(gè)FIFO子單元5-1用于保存每個(gè)時(shí)隙TS的到達(dá)的客戶端存儲(chǔ)器操作請(qǐng)求,時(shí)隙專用于各自存儲(chǔ)器設(shè)備
4-1中至少一個(gè)客戶端存儲(chǔ)器操作,為各自存儲(chǔ)器設(shè)備4-1提供了 FIFO子單元5-1。FIFO子單元5-1的一組FIFO寄存器可以保存任何到達(dá)的存儲(chǔ)器操作請(qǐng)求,其可以在任何時(shí)間異步達(dá)到,直到對(duì)應(yīng)的仲裁器6-1選擇合適的時(shí)隙TS。相應(yīng)地,在存儲(chǔ)器設(shè)備陣列MDA中每個(gè)存儲(chǔ)器設(shè)備4-1的所示實(shí)施方式中,多客戶端多存儲(chǔ)器控制器2包括連接到如圖12所示的對(duì)應(yīng)FIFO子單元5-1的仲裁器6-1。每個(gè)仲裁器6-1(0〈i〈n,其中i是大于O小于r的整數(shù))用于生成提供給各自存儲(chǔ)器設(shè)備4-1的存儲(chǔ)器控制器7-1(0〈1〈1*,其中1是大于0小于r的整數(shù))的讀取命令或?qū)懭朊睢V俨闷?-1子單元服務(wù)存儲(chǔ)器設(shè)備4-1。其檢查每個(gè)時(shí)隙TS看該時(shí)隙TS是否具有未處理的請(qǐng)求。如果時(shí)隙TS包括未處理的請(qǐng)求,則仲裁器6-1為存儲(chǔ)器設(shè)備4-1的存儲(chǔ)器控制器7-1生成一個(gè)標(biāo)準(zhǔn)的讀取請(qǐng)求或?qū)懭朊?。仲裁?-1將操作請(qǐng)求發(fā)送給管理存儲(chǔ)器設(shè)備4-1的存儲(chǔ)器控制器7-1。存儲(chǔ)器控制器7-1可以集成在存儲(chǔ)器設(shè)備4-1中或連接到存儲(chǔ)器設(shè)備4-1。
[0124]在圖12所示的實(shí)施方式中,多客戶端多存儲(chǔ)器控制器2包括一個(gè)組播固定連接矩陣(MFCM)8,其用于將從客戶端3-1接收的客戶端存儲(chǔ)器操作請(qǐng)求硬連接(hardwire)到服務(wù)其數(shù)據(jù)副本的所有時(shí)隙TS FIFO子單元。這種連接是一種組播連接(點(diǎn)到多點(diǎn))。
[0125]此外,在圖12所示的實(shí)施方式中,多客戶端多存儲(chǔ)器控制器2包括單播固定反向連接矩陣9,其用于將每組存儲(chǔ)器設(shè)備號(hào)MD#和時(shí)隙號(hào)TS#移動(dòng)到多客戶端多存儲(chǔ)器控制器2的緩存器10中的固定位置,其中多客戶端多存儲(chǔ)器控制器2保存數(shù)據(jù)副本和一致性狀態(tài)。為了三種不同的目的,緩存子單元10可以保存復(fù)制的讀取數(shù)據(jù)。其可以收集到達(dá)的副本,直到所有的副本都準(zhǔn)備好。此外,其可以保存所有的副本數(shù)據(jù),直到發(fā)生回寫入操作,然后刪除所有的副本或副本數(shù)據(jù)條目。另外,只要數(shù)據(jù)庫處于上述兩種情況之間的狀態(tài),緩存子單元10可以在各種客戶端3-1的相同數(shù)據(jù)條目上同步多個(gè)操作。
[0126]在圖12所示的實(shí)施方式中,多客戶端多存儲(chǔ)器控制器2進(jìn)一步包括一致性狀態(tài)寫入機(jī)(CSWM) 11,用于,響應(yīng)于寫入操作請(qǐng)求,讀取副本數(shù)據(jù)條目的副本狀態(tài)以更新映射存儲(chǔ)器設(shè)備的副本狀態(tài)。一致性狀態(tài)寫入機(jī)11,響應(yīng)于數(shù)據(jù)庫更新操作,例如,寫入操作,讀取副本狀態(tài);修改該狀態(tài),使得所有其他客戶端獲得下列指示:該副本是最新的副本;并且將該副本寫入至存儲(chǔ)器設(shè)備陣列MDA的所有所需的存儲(chǔ)器設(shè)備4-1上。
[0127]在圖12所示的實(shí)施方式中,多客戶端多存儲(chǔ)器控制器2進(jìn)一步包括多一致性狀態(tài)讀取機(jī)(CSRM) 12,其用于,響應(yīng)于讀取操作請(qǐng)求,接收來自映射到的存儲(chǔ)器設(shè)備MD的所有副本數(shù)據(jù)條目以選擇最新的副本數(shù)據(jù)條目。一致性狀態(tài)讀取機(jī)CSRM12等待所有的副本從各自存儲(chǔ)器設(shè)備到達(dá),然后定義和選擇最新的副本數(shù)據(jù)條目使用。一致性狀態(tài)讀取機(jī)12檢測(cè)正確的副本數(shù)據(jù)條目,并可以向客戶端3-1模仿標(biāo)準(zhǔn)的讀取響應(yīng)操作。
[0128]在每個(gè)讀取操作中,多客戶端多存儲(chǔ)器控制器2讀取已經(jīng)被其他客戶端多次寫入的數(shù)據(jù)。多客戶端多存儲(chǔ)器控制器2保存信息數(shù)據(jù),其指示哪個(gè)客戶端3-1已經(jīng)寫入最新的副本數(shù)據(jù)條目。在大多數(shù)情況下,副本數(shù)據(jù)條目不包含相同的數(shù)據(jù),因?yàn)樗鼈円呀?jīng)在不同的時(shí)間被修改過。由多客戶端多存儲(chǔ)器控制器2提供的一致性信息數(shù)據(jù)對(duì)于任何原子數(shù)據(jù)單元(DU)可以是不同的。這意味著一致性信息數(shù)據(jù)不能部分地讀取或?qū)懭?。相?yīng)地,在可能的實(shí)施方式中,一致性信息數(shù)據(jù)可以寫入至存儲(chǔ)器設(shè)備中。如果客戶端3-1需要更新數(shù)據(jù)單元DU,則其必須修改一致性信息數(shù)據(jù)(Cl),使得所有其他客戶端知道選擇其副本。
[0129]通過本發(fā)明所述的高速分布存儲(chǔ)器系統(tǒng)1,多個(gè)存儲(chǔ)器設(shè)備4-1可以服務(wù)客戶端組CG的多個(gè)客戶端,即使每個(gè)客戶端要求不同的帶寬。一些客戶端3-1可要求存儲(chǔ)器設(shè)備可提供的幾乎相同的帶寬,而一些客戶端3-1要求的帶寬可以小于存儲(chǔ)器設(shè)備4-1可提供的帶寬。
【權(quán)利要求】
1.一種用于提供存儲(chǔ)器操作給客戶端組CG中的客戶端的多客戶端多存儲(chǔ)器控制器(2),其特征在于, 所述多客戶端多存儲(chǔ)器控制器(2)可以訪問由按行和列排列的虛擬存儲(chǔ)器單元VMU表示的存儲(chǔ)器設(shè)備陣列MDA, 其中行數(shù)等于所述CG中客戶端的數(shù)目,所述CG用于從所述MDA中讀取數(shù)據(jù),以及 列數(shù)等于所述CG中客戶端的數(shù)目,所述CG用于將數(shù)據(jù)寫入至所述MDA中, 所述多客戶端多存儲(chǔ)器控制器(2)用于,為了響應(yīng)從所述CG中第一客戶端(3-1)接收的客戶端寫入請(qǐng)求WR,將所述第一客戶端的更新信息作為副本數(shù)據(jù)條目寫入至與所述第一客戶端相關(guān)聯(lián)的列中的所有虛擬存儲(chǔ)器單元VMU, 所述多客戶端多存儲(chǔ)器控制器(2)用于,為了響應(yīng)從所述CG中的第二客戶端(3-1)接收的客戶端讀取請(qǐng)求RR,從與第二客戶端相關(guān)聯(lián)的行中的所有虛擬存儲(chǔ)器單元VMU中讀取被存儲(chǔ)的副本數(shù)據(jù)條目以提供最近更新的副本數(shù)據(jù)條目給所述第二客戶端。
2.根據(jù)權(quán)利要求1所述的多客戶端多存儲(chǔ)器控制器,其特征在于,所述多客戶端多存儲(chǔ)器控制器(2)能夠訪問存儲(chǔ)在數(shù)據(jù)存儲(chǔ)器中的操作映射矩陣, 其中所述操作映射矩陣提供所述客戶端組中客戶端(3-1)和所述存儲(chǔ)器設(shè)備陣列(MDA)中存儲(chǔ)器設(shè)備(4-1)的時(shí)隙TS之間的映射。
3.根據(jù)權(quán)利要求1或2所述的多客戶端多存儲(chǔ)器控制器(2),其特征在于,每個(gè)虛擬存儲(chǔ)器單元VMU提供一個(gè)帶寬BW,該帶寬對(duì)應(yīng)于第一客戶端(3-1)的讀取操作和第二客戶端(3-1)的寫入操作所需的合計(jì)帶寬,所述第二客戶端由所述存儲(chǔ)器設(shè)備陣列(MDA)的虛擬存儲(chǔ)器單元VMU表示。
4.根據(jù)前述權(quán)利要求1-3中任一項(xiàng)所述的多客戶端多存儲(chǔ)器控制器(2),其特征在于, 所述多客戶端多存儲(chǔ)器控制器(2)用于,為了響應(yīng)從所述客戶端組(CG)中第一客戶端(3-1)接收的客戶端寫入請(qǐng)求WR,將更新信息和指示客戶端存儲(chǔ)器操作的專用時(shí)間周期的時(shí)隙TS —起作為副本數(shù)據(jù)條目寫入至與第一客戶端(3-1)相關(guān)聯(lián)的列中的所有虛擬存儲(chǔ)器單元VMU中。
5.根據(jù)前述權(quán)利要求1-4中任一項(xiàng)所述的多客戶端多存儲(chǔ)器控制器(2),其特征在于, 所述多客戶端多存儲(chǔ)器控制器(2)用于,為了響應(yīng)從所述客戶端組(CG)中的第二客戶端(3-1)接收的客戶端讀取請(qǐng)求RR,從與第二客戶端(3-1)相關(guān)聯(lián)的行中的所有虛擬存儲(chǔ)器單元VMU中讀取被存儲(chǔ)的副本數(shù)據(jù)條目和時(shí)隙TS,以及進(jìn)一步用于根據(jù)讀取副本數(shù)據(jù)條目的時(shí)隙選擇最近更新的副本數(shù)據(jù)條目,其中所述選擇的最新副本數(shù)據(jù)條目提供給第二客戶端(3-1)。
6.根據(jù)前述權(quán)利要求1-5中任一項(xiàng)所述的多客戶端多存儲(chǔ)器控制器(2),其特征在于, 所述多客戶端多存儲(chǔ)器控制器(2)包括所述存儲(chǔ)器設(shè)備陣列(MDA)中每個(gè)存儲(chǔ)器設(shè)備(4-1)的一組FIFO子單元(5-1),提供一組FIFO子單元以保存每個(gè)時(shí)隙TS接收的客戶端存儲(chǔ)器操作請(qǐng)求,所述時(shí)隙專用于各自存儲(chǔ)器設(shè)備(4-1)中的至少一個(gè)客戶端存儲(chǔ)器操作。
7.根據(jù)權(quán)利要求6所述的多客戶端多存儲(chǔ)器控制器(2),其特征在于, 所述多客戶端多存儲(chǔ)器控制器(2)包括所述存儲(chǔ)器設(shè)備陣列(MDA)中每個(gè)存儲(chǔ)器設(shè)備(4-1)的仲裁器,其連接到所述存儲(chǔ)器設(shè)備(4-1)的FIFO子單元(5-1),其中所述仲裁器(6-1)用于,如果時(shí)隙TS包括未處理的客戶端存儲(chǔ)器操作請(qǐng)求,生成提供給所述存儲(chǔ)器設(shè)備(7-1)的存儲(chǔ)器控制器的讀取命令或?qū)懭朊睢?br>
8.根據(jù)前述權(quán)利要求1-6中任一項(xiàng)所述的多客戶端多存儲(chǔ)器控制器(2),其特征在于, 所述多客戶端多存儲(chǔ)器控制器2包括一個(gè)組播固定連接矩陣(8),其用于將從客戶端(3-1)接收的客戶端存儲(chǔ)器操作請(qǐng)求硬連接到處理其數(shù)據(jù)副本的所有時(shí)隙TS FIFO子單元(5-1)。
9.根據(jù)前述權(quán)利要求1-7中任一項(xiàng)所述的多客戶端多存儲(chǔ)器控制器(2),其特征在于, 所述多客戶端多存儲(chǔ)器控制器(2)包括單播固定反向連接矩陣(9),用于將每組存儲(chǔ)器設(shè)備(4-1)號(hào)和時(shí)隙TS號(hào)移動(dòng)到緩存存儲(chǔ)器(10)中的位置,所述副本數(shù)據(jù)條目和一致性狀態(tài)存儲(chǔ)在所述緩存存儲(chǔ)器中。
10.根據(jù)前述權(quán)利要求1-9中任一項(xiàng)所述的多客戶端多存儲(chǔ)器控制器(2),其特征在于, 所述多客戶端多存儲(chǔ)器控制器(2)包括一致性狀態(tài)寫入機(jī)(11),用于,響應(yīng)于寫入操作請(qǐng)求,讀取副本數(shù)據(jù)條目的副本狀態(tài)以更新所述映射到的存儲(chǔ)器設(shè)備(4-1)的所述副本狀態(tài)。
11.根據(jù)前述權(quán)利要求1-10中任一項(xiàng)所述的多客戶端多存儲(chǔ)器控制器(2),其特征在于, 所述多客戶端多存儲(chǔ)器控制器(2)包括一致性狀態(tài)讀取機(jī)(12),用于,響應(yīng)于讀取操作請(qǐng)求,從所述映射到的存儲(chǔ)器設(shè)備(4-1)中接收所有副本數(shù)據(jù)條目以選擇最新的副本數(shù)據(jù)條目。
12.一種高速分布存儲(chǔ)器系統(tǒng)(1),其特征在于,包括: 根據(jù)前述權(quán)利要求1-11中任一項(xiàng)所述的多客戶端多存儲(chǔ)器控制器(2), 包含多個(gè)(η個(gè))連接到所述多客戶端多存儲(chǔ)器控制器(2)的客戶端(3-1)的客戶端組(CG),其中所述客戶端組(CG)中的所有客戶端(3-1)用于在讀取操作中從所述存儲(chǔ)器設(shè)備陣列(MDA)中讀取數(shù)據(jù),以及所述客戶端組(CG)中的一部分客戶端(3-1)用于在寫入操作中將數(shù)據(jù)寫入至所述存儲(chǔ)器設(shè)備陣列(MDA)中,以及 多個(gè)(r個(gè))連接到所述多客戶端多存儲(chǔ)器控制器(2)的存儲(chǔ)器設(shè)備陣列(MDA)中的存儲(chǔ)器設(shè)備(4-1)。
13.一種用于維護(hù)分布在存儲(chǔ)器設(shè)備陣列(MDA)中存儲(chǔ)器設(shè)備(4-1)上的數(shù)據(jù)庫之間的數(shù)據(jù)一致性,所述存儲(chǔ)器設(shè)備陣列由按行和列排列的虛擬存儲(chǔ)器單元來表示,其特征在于, 為了響應(yīng)客戶端寫入請(qǐng)求,將第一客戶端(3-1)的更新信息作為副本數(shù)據(jù)條目寫入至與第一客戶端(3-1)相關(guān)聯(lián)的列中的所有虛擬存儲(chǔ)器單元VMU中;為了響應(yīng)客戶端讀取請(qǐng)求RR,從與第二客戶端(3-1)相關(guān)聯(lián)的行中的所有虛擬存儲(chǔ)器單元中讀取被存儲(chǔ)的副本數(shù)據(jù)條目以提供第二客戶端(3-1)的最近更新的副本數(shù)據(jù)條目。
14.根據(jù)權(quán)利要求13所述的方法,其特征在于, 為了響應(yīng)客戶端寫入請(qǐng)求WR,將所述更新信息和指示客戶端存儲(chǔ)器操作的專有時(shí)間周期的時(shí)隙TS —起作為副本數(shù)據(jù)條目寫入至與第一客戶端(3-1)相關(guān)聯(lián)的列中的所有虛擬存儲(chǔ)器單元VMU。
15.根據(jù)權(quán)利要求13或14所述的方法,其特征在于, 為了響應(yīng)客戶端讀取請(qǐng)求(RR),讀取與第二客戶端(3-1)相關(guān)聯(lián)的行中的所有虛擬存儲(chǔ)器單元VMU中的存儲(chǔ)副本數(shù)據(jù)條目和時(shí)隙,并基于所述時(shí)隙TS選擇以通過最近更新的副本數(shù)據(jù)條目給所述第二客戶端(3-1)。
【文檔編號(hào)】G06F13/16GK104321759SQ201280073291
【公開日】2015年1月28日 申請(qǐng)日期:2012年5月25日 優(yōu)先權(quán)日:2012年5月25日
【發(fā)明者】悠漾·格若斯 申請(qǐng)人:華為技術(shù)有限公司