布式存儲系統(tǒng)中的主從平衡裝置的結構示意圖,具體可以包括如下模塊:
[0108]組合生成模塊601,用于生成從存放分片的所有機器中取出M臺機器的組合;其中,M等于分片對應副本的數(shù)量;
[0109]分布統(tǒng)計模塊602,用于針對每一種所述組合,統(tǒng)計其對應M臺機器中相同分片的主從分布信息,其中,所述相同分片為所述M臺機器中皆存有其主副本/從副本的分片;以及
[0110]主從調(diào)整模塊603,用于在所述相同分片的主從分布信息符合預置切換條件時,對所述相同分片的副本進行主從調(diào)整。
[0111]在本發(fā)明的一種可選實施例中,所述相同分片的主從分布信息具體可以包括:所述M臺機器中任一臺中所述相同分片的最大主副本數(shù)、以及所述相同分片的最小主副本數(shù);
[0112]則所述相同分片的主從分布信息符合預置切換條件具體可以包括:所述相同分片的最大主副本數(shù)與所述相同分片的最小主副本數(shù)的差值大于閾值。
[0113]在本發(fā)明的另一種可選實施例中,所述主從調(diào)整模塊603,具體可以包括:
[0114]確定子模塊,用于確定所述M臺機器對應的最優(yōu)主從分布序列;及
[0115]迀移子模塊,用于依據(jù)所述最優(yōu)主從分布序列,針對所述相同分片的副本在所述M臺機器之間進行迀移操作。
[0116]在本發(fā)明的又一種可選實施例中,所述最優(yōu)主從分布序列具體可以包括:最優(yōu)主副本分布序列和最優(yōu)從副本分布序列;
[0117]則所述迀移子模塊,可以進一步包括:
[0118]第一迀移單元,用于依據(jù)所述最優(yōu)主副本分布序列,針對相同分片的主副本進行的迀移操作;以及
[0119]第二迀移單元,用于依據(jù)所述最優(yōu)從副本分布序列,針對相同分片的從副本進行迀移操作;
[0120]其中,所述第一迀移單元,可具體用于依據(jù)所述最優(yōu)主副本分布序列,將所述相同分片的主副本從主副本數(shù)多的機器迀移到主副本數(shù)少的機器。
[0121]在本發(fā)明的再一種可選實施例中,所述分布統(tǒng)計模塊602,具體可以包括:
[0122]分布獲取子模塊,用于從各機器所維護的元數(shù)據(jù)信息中獲取所有分片的主從分布信息;及
[0123]統(tǒng)計子模塊,用于依據(jù)所有分片的主從分布信息,統(tǒng)計每一種所述組合對應M臺機器中相同分片的主從分布信息。
[0124]在本發(fā)明的一種可選實施例中,所述裝置還可以包括:
[0125]維護模塊,用于通過各機器維護元數(shù)據(jù)信息;
[0126]其中,所述維護模塊具體可以包括:
[0127]更新子模塊,用于在機器狀態(tài)發(fā)生變化時,依據(jù)自身狀態(tài)的變化更新所述元數(shù)據(jù)信息;及
[0128]廣播子模塊,用于向所有機器廣播所述元數(shù)據(jù)信息的更新。
[0129]對于裝置實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
[0130]在此提供的算法和顯示不與任何特定計算機、虛擬系統(tǒng)或者其它設備固有相關。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構造這類系統(tǒng)所要求的結構是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應當明白,可以利用各種編程語言實現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。
[0131]在此處所提供的說明書中,說明了大量具體細節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細節(jié)的情況下實踐。在一些實例中,并未詳細示出公知的方法、結構和技術,以便不模糊對本說明書的理解。
[0132]類似地,應當理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應將該公開的方法解釋成反映如下意圖:即所要求保護的本發(fā)明要求比在每個權利要求中所明確記載的特征更多的特征。更確切地說,如下面的權利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循【具體實施方式】的權利要求書由此明確地并入該【具體實施方式】,其中每個權利要求本身都作為本發(fā)明的單獨實施例。
[0133]本領域那些技術人員可以理解,可以對實施例中的設備中的模塊進行自適應性地改變并且把它們設置在與該實施例不同的一個或多個設備中。可以把實施例中的模塊或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。
[0134]此外,本領域的技術人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實施例。例如,在下面的權利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。
[0135]本發(fā)明的各個部件實施例可以以硬件實現(xiàn),或者以在一個或者多個處理器上運行的軟件模塊實現(xiàn),或者以它們的組合實現(xiàn)。本領域的技術人員應當理解,可以在實踐中使用微處理器或者數(shù)字信號處理器(DSP)來實現(xiàn)根據(jù)本發(fā)明實施例的分布式存儲系統(tǒng)中的主從平衡方法和裝置中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設備或者裝置程序(例如,計算機程序和計算機程序產(chǎn)品)。這樣的實現(xiàn)本發(fā)明的程序可以存儲在計算機可讀介質(zhì)上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網(wǎng)平臺上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
[0136]應該注意的是上述實施例對本發(fā)明進行說明而不是對本發(fā)明進行限制,并且本領域技術人員在不脫離所附權利要求的范圍的情況下可設計出替換實施例。在權利要求中,不應將位于括號之間的任何參考符號構造成對權利要求的限制。單詞“包含”不排除存在未列在權利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當編程的計算機來實現(xiàn)。在列舉了若干裝置的單元權利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
[0137]本發(fā)明公開了 Al、一種分布式存儲系統(tǒng)中的主從平衡方法,包括:
[0138]生成從存放分片的所有機器中取出M臺機器的組合;其中,M等于分片對應副本的數(shù)量;
[0139]針對每一種所述組合,統(tǒng)計其對應M臺機器中相同分片的主從分布信息,其中,所述相同分片為所述M臺機器中皆存有其主副本/從副本的分片;以及
[0140]在所述相同分片的主從分布信息符合預置切換條件時,對所述相同分片的副本進行主從調(diào)整。
[0141]A2、如Al所述的方法,所述相同分片的主從分布信息包括:所述M臺機器中任一臺中所述相同分片的最大主副本數(shù)以及所述相同分片的最小主副本數(shù);
[0142]則所述相同分片的主從分布信息符合預置切換條件包括:所述相同分片的最大主副本數(shù)與所述相同分片的最小主副本數(shù)的差值大于閾值。
[0143]A3、如Al所述的方法,所述在所述相同分片的主從分布信息符合預置切換條件時,對所述相同分片的副本進行主從調(diào)整的步驟,包括:
[0144]確定所述M臺機器對應的最優(yōu)主從分布序列;
[0145]依據(jù)所述最優(yōu)主從分布序列,針對所述相同分片的副本在所述M臺機器之間進行迀移操作。
[0146]A4、如A3所述的方法,所述最優(yōu)主從分布序列包括:最優(yōu)主副本分布序列和最優(yōu)從副本分布序列;
[0147]則所述依據(jù)所述最優(yōu)主從分布序列,針對所述相同分片的副本在所述M臺機器之間進行迀移操作的步驟,包括:依據(jù)所述最優(yōu)主副本分布序列,針對相同分片的主副本進行的迀移操作,以及,依據(jù)所述最優(yōu)從副本分布序列,針對相同分片的從副本進行迀移操作;
[0148]其中,所述依據(jù)所述最優(yōu)主副本分布序列,針對相同分片的主副本進行的迀移操作過程包括:依據(jù)所述最優(yōu)主副本分布序列,將所述相同分片的主副本從主副本數(shù)多的機器迀