一種數(shù)據(jù)處理方法和設(shè)備的制作方法
【專利摘要】本發(fā)明公開了一種數(shù)據(jù)處理方法和設(shè)備,所述方法包括:對存儲系統(tǒng)中的存儲設(shè)備進(jìn)行分組,每個分組中的存儲設(shè)備數(shù)量與數(shù)據(jù)副本數(shù)量相同,所述方法包括:接收客戶端發(fā)送的用于請求數(shù)據(jù)加載地址的地址請求;根據(jù)地址請求確定目標(biāo)分組以及目標(biāo)分組中各存儲設(shè)備上的目標(biāo)數(shù)據(jù)塊的地址;向客戶端返回目標(biāo)分組中各存儲設(shè)備上的目標(biāo)數(shù)據(jù)塊的地址,以使客戶端根據(jù)目標(biāo)分組中各存儲設(shè)備上的目標(biāo)數(shù)據(jù)塊的地址向相應(yīng)分組中的存儲設(shè)備發(fā)起數(shù)據(jù)加載請求。通過采用本發(fā)明提供的方法,可以減少被加鎖存儲設(shè)備的數(shù)量,降低存儲系統(tǒng)出現(xiàn)死鎖的概率。
【專利說明】一種數(shù)據(jù)處理方法和設(shè)備
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信【技術(shù)領(lǐng)域】,尤其涉及一種數(shù)據(jù)處理方法和設(shè)備。
【背景技術(shù)】
[0002]事務(wù)處理(TRANSACTION)是由一個或多個SQL (Structured QueryLanguage,結(jié)構(gòu)化查詢語言)語句序列結(jié)合在一起所形成的一個邏輯處理單元。事務(wù)處理中的每個語句都是完成整個任務(wù)的一部分工作,所有的語句組織在一起能夠完成某一特定的任務(wù)。DBMS(Database Management System,數(shù)據(jù)庫管理系統(tǒng))在對事務(wù)處理中的語句進(jìn)行處理時,是按照下面的約定來進(jìn)行的,即“事務(wù)處理中的所有語句被作為一個原子工作單位,所有的語句既可成功地被執(zhí)行,也可以沒有任何一個語句被執(zhí)行”。DBMS負(fù)責(zé)完成這種約定,即使在事務(wù)處理中應(yīng)用程序異常退出,或者是硬件出現(xiàn)故障等各種意外情況下,也是如此。在任何意外情況下,DBMS都負(fù)責(zé)確保在系統(tǒng)恢復(fù)正常后,數(shù)據(jù)庫內(nèi)容決不會出現(xiàn)“部分事務(wù)處理中的語句被執(zhí)行完”的情況。
[0003]HDFS (Hadoop Distributed File System,分布式文件系統(tǒng))采用主 / 從(master/slave)架構(gòu)。一個HDFS集群是由一個命名節(jié)點(Namenode)和一定數(shù)目的數(shù)據(jù)節(jié)點(Datanode)組成。Namenode是一個中心服務(wù)器,負(fù)責(zé)管理文件系統(tǒng)的命名空間(namespace)和客戶端對文件的訪問。Datanode在集群中一般是一個節(jié)點一個,負(fù)責(zé)管理節(jié)點上附帶的存儲。在內(nèi)部,一個文件其實分成一個或多個block (塊),這些block存儲在Datanode集合 里。Block副本的存放是HDFS可靠性和性能的關(guān)鍵,在大多數(shù)情況下,副本數(shù)是3,HDFS的存放策略是將一個副本存放在本地機架上的節(jié)點,一個副本放在同一機架上的另一個節(jié)點,最后一個副本放在不同機架上的一個節(jié)點。機架的錯誤遠(yuǎn)遠(yuǎn)比節(jié)點的錯誤少,這個策略不會影響到數(shù)據(jù)的可靠性和有效性。三分之一的副本在一個節(jié)點上,三分之二在一個機架上,其他保存在剩下的機架中,這一策略改進(jìn)了寫的性能。
[0004]現(xiàn)有技術(shù)中提出了多副本的分布式存儲系統(tǒng),數(shù)據(jù)經(jīng)過分區(qū)后存儲在各個數(shù)據(jù)節(jié)點上,每份數(shù)據(jù)都有多個副本,副本數(shù)量由系統(tǒng)參數(shù)設(shè)置。該方案的副本在各個節(jié)點分配策略與Hadoop分布式文件系統(tǒng)的副本分布策略一致。
[0005]上述技術(shù)方案極易導(dǎo)致大量數(shù)據(jù)節(jié)點被鎖,從而導(dǎo)致大量數(shù)據(jù)死鎖,如圖1所示,存在8個存儲設(shè)備,每個存儲設(shè)備即為一個節(jié)點,假設(shè)一個事務(wù)需要對數(shù)據(jù)塊2進(jìn)行更新,此時事務(wù)會加載表鎖操作,使整個存儲設(shè)備上的數(shù)據(jù)無法進(jìn)行操作,數(shù)據(jù)塊2位于存儲設(shè)備1、2、4上,由于表鎖操作,位于存儲設(shè)備I上的數(shù)據(jù)塊I和存儲設(shè)備4上的數(shù)據(jù)塊5都將被鎖,以此類推,所有存儲設(shè)備都會被鎖,可見,現(xiàn)有技術(shù)會導(dǎo)致一個數(shù)據(jù)塊被鎖時,大量不相關(guān)存儲設(shè)備同時被鎖,從而影響分布式存儲系統(tǒng)所能提供的服務(wù)。
【發(fā)明內(nèi)容】
[0006]本發(fā)明實施例提供了一種數(shù)據(jù)處理方法和設(shè)備,以減少被加鎖存儲設(shè)備的數(shù)量,降低存儲系統(tǒng)出現(xiàn)死鎖的概率。[0007]為達(dá)到上述目的,本發(fā)明實施例提供了一種數(shù)據(jù)處理方法,對存儲系統(tǒng)中的存儲設(shè)備進(jìn)行分組,每個分組中的存儲設(shè)備數(shù)量與數(shù)據(jù)副本數(shù)量相同,所述方法包括:
[0008]接收客戶端發(fā)送的用于請求數(shù)據(jù)加載地址的地址請求;
[0009]根據(jù)所述地址請求確定目標(biāo)分組以及所述目標(biāo)分組中各存儲設(shè)備上的目標(biāo)數(shù)據(jù)塊的地址;
[0010]向所述客戶端返回所述目標(biāo)分組中各存儲設(shè)備上的目標(biāo)數(shù)據(jù)塊的地址,以使所述客戶端根據(jù)所述目標(biāo)分組中各存儲設(shè)備上的目標(biāo)數(shù)據(jù)塊的地址向相應(yīng)分組中的存儲設(shè)備發(fā)起數(shù)據(jù)加載請求。
[0011] 優(yōu)選的,所述對存儲系統(tǒng)中的存儲設(shè)備進(jìn)行分組,具體包括:
[0012]將設(shè)置在同一機架上的存儲設(shè)備劃分到同一分組中;或
[0013]將接入同一交換機的存儲設(shè)備劃分到同一分組中;或
[0014]將處于同一網(wǎng)段的存儲設(shè)備劃分到同一分組中。
[0015]優(yōu)選的,所述根據(jù)地址請求確定目標(biāo)分組以及所述目標(biāo)分組中各存儲設(shè)備上的目標(biāo)數(shù)據(jù)塊的地址,具體包括:
[0016]選擇所有分組中負(fù)載最小的分組作為目標(biāo)分組,并從所述目標(biāo)分組中的存儲設(shè)備上選擇未寫入數(shù)據(jù)的數(shù)據(jù)塊作為目標(biāo)數(shù)據(jù)塊;或按照分組順序確定目標(biāo)分組,并從所述目標(biāo)分組中的存儲設(shè)備上選擇未寫入數(shù)據(jù)的數(shù)據(jù)塊作為目標(biāo)數(shù)據(jù)塊。
[0017]為達(dá)到上述目的,本發(fā)明實施例提供了一種管理設(shè)備,對存儲系統(tǒng)中的存儲設(shè)備進(jìn)行分組,每個分組中的存儲設(shè)備數(shù)量與數(shù)據(jù)副本數(shù)量相同,所述管理設(shè)備包括:
[0018]接收單元,用于接收客戶端發(fā)送的用于請求數(shù)據(jù)加載地址的地址請求;
[0019]確定單元,用于根據(jù)所述接收單元接收到的地址請求確定目標(biāo)分組以及所述目標(biāo)分組中各存儲設(shè)備上的目標(biāo)數(shù)據(jù)塊的地址;
[0020]處理單元,用于根據(jù)所述接收單元接收到的地址請求,向所述客戶端返回所述目標(biāo)分組中各存儲設(shè)備上的目標(biāo)數(shù)據(jù)塊的地址,以使所述客戶端根據(jù)所述目標(biāo)分組中各存儲設(shè)備上的目標(biāo)數(shù)據(jù)塊的地址向相應(yīng)分組中的存儲設(shè)備發(fā)起數(shù)據(jù)加載請求。
[0021]優(yōu)選的,還包括:
[0022]配置單元,用于對所述存儲系統(tǒng)中的存儲設(shè)備配置分組,其中,每個分組中的存儲設(shè)備數(shù)量與數(shù)據(jù)副本數(shù)量相同。
[0023]優(yōu)選的,所述配置單元,具體用于將設(shè)置在同一機架上的存儲設(shè)備配置為一個分組;或?qū)⒔尤胪唤粨Q機的存儲設(shè)備配置為一個分組;或?qū)⑻幱谕痪W(wǎng)段的存儲設(shè)備配置為一個分組。
[0024]優(yōu)選的,所述確定單元,具體用于根據(jù)所述接收單元接收到的所述地址請求,選擇所有分組中負(fù)載最小的分組作為目標(biāo)分組,并從所述目標(biāo)分組中的存儲設(shè)備上選擇未寫入數(shù)據(jù)的數(shù)據(jù)塊作為目標(biāo)數(shù)據(jù)塊;或根據(jù)所述接收單元接收到的所述地址請求,按照分組順序確定目標(biāo)分組,并從所述目標(biāo)分組中的存儲設(shè)備上選擇未寫入數(shù)據(jù)的數(shù)據(jù)塊作為目標(biāo)數(shù)據(jù)塊。
[0025]本發(fā)明實施例中還提供了一種數(shù)據(jù)處理方法,對存儲系統(tǒng)中的存儲設(shè)備進(jìn)行分組,每個分組中的存儲設(shè)備數(shù)量與數(shù)據(jù)副本數(shù)量相同,所述方法包括:
[0026]接收客戶端發(fā)送的用于請求數(shù)據(jù)訪問地址的地址請求;[0027]根據(jù)所述地址請求確定目標(biāo)分組以及所述目標(biāo)分組中各存儲設(shè)備上的目標(biāo)數(shù)據(jù)塊的地址;
[0028]向所述客戶端返回所述目標(biāo)分組中各存儲設(shè)備上的目標(biāo)數(shù)據(jù)塊的地址,以使所述客戶端根據(jù)所述目標(biāo)分組中各存儲設(shè)備上的目標(biāo)數(shù)據(jù)塊的地址向相應(yīng)分組中的存儲設(shè)備發(fā)起數(shù)據(jù)訪問請求。
[0029]優(yōu)選的,所述對存儲系統(tǒng)中的存儲設(shè)備進(jìn)行分組,具體包括:
[0030]將設(shè)置在同一機架上的存儲設(shè)備劃分到同一分組中;或
[0031]將接入同一交換機的存儲設(shè)備劃分到同一分組中;或
[0032]將處于同一網(wǎng)段的存儲設(shè)備劃分到同一分組中。
[0033]優(yōu)選的,所述地址請求中攜帶了數(shù)據(jù)標(biāo)識,所述根據(jù)地址請求確定目標(biāo)分組以及所述目標(biāo)分組中各存儲設(shè)備上的目標(biāo)數(shù)據(jù)塊的地址,具體包括:
[0034]根據(jù)所述數(shù)據(jù)標(biāo)識,選擇所有分組中存儲相應(yīng)數(shù)據(jù)的分組作為目標(biāo)分組,并在所述目標(biāo)分組中的存儲設(shè)備上選擇存儲有所述相應(yīng)數(shù)據(jù)的數(shù)據(jù)塊作為目標(biāo)數(shù)據(jù)塊。
[0035]本發(fā)明實施例中還提供了一種管理設(shè)備,對存儲系統(tǒng)中的存儲設(shè)備進(jìn)行分組,每個分組中的存儲設(shè)備數(shù)量與數(shù)據(jù)副本數(shù)量相同,所述管理設(shè)備包括:
[0036]接收單元,用于接收客戶端發(fā)送的用于請求數(shù)據(jù)訪問地址的地址請求;
[0037]確定單元,用于根據(jù)所述接收單元接收到的地址請求確定目標(biāo)分組以及所述目標(biāo)分組中各存儲設(shè)備上的目標(biāo)數(shù)據(jù)塊的地址;
[0038]處理單元,用于根據(jù)所述接收單元接收到的地址請求,向所述客戶端返回所述目標(biāo)分組中各存儲設(shè)備上的目標(biāo)數(shù)據(jù)塊的地址,以使所述客戶端根據(jù)所述目標(biāo)分組中各存儲設(shè)備上的目標(biāo)數(shù)據(jù)塊的地址向相應(yīng)分組中的存儲設(shè)備發(fā)起數(shù)據(jù)訪問請求。
[0039]優(yōu)選的,還包括:
[0040]配置單元,用于對所述存儲系統(tǒng)中的存儲設(shè)備配置分組,其中,每個分組中的存儲設(shè)備數(shù)量與數(shù)據(jù)副本數(shù)量相同。
[0041]優(yōu)選的,所述配置單元,具體用于將設(shè)置在同一機架上的存儲設(shè)備配置為一個分組;或?qū)⒔尤胪唤粨Q機的存儲設(shè)備配置為一個分組;或?qū)⑻幱谕痪W(wǎng)段的存儲設(shè)備配置為一個分組。
[0042]優(yōu)選的,所述地址請求中攜帶了數(shù)據(jù)標(biāo)識;
[0043]所述確定單元,具體用于根據(jù)所述數(shù)據(jù)標(biāo)識,選擇所有分組中存儲相應(yīng)數(shù)據(jù)的分組作為目標(biāo)分組,并在所述目標(biāo)分組中的存儲設(shè)備上選擇存儲有所述相應(yīng)數(shù)據(jù)的數(shù)據(jù)塊作為目標(biāo)數(shù)據(jù)塊。
[0044] 通過對存儲系統(tǒng)中的存儲設(shè)備進(jìn)行分組,使每個分組中的存儲設(shè)備數(shù)量與數(shù)據(jù)副本數(shù)量相同,管理設(shè)備在接收到客戶端發(fā)送的請求數(shù)據(jù)加載地址或數(shù)據(jù)訪問地址的地址請求后,根據(jù)地址請求確定所請求訪問的數(shù)據(jù)的目標(biāo)分組以及目標(biāo)分組中各存儲設(shè)備上的目標(biāo)數(shù)據(jù)塊的地址,并向客戶端返回目標(biāo)分組中各存儲設(shè)備上的目標(biāo)數(shù)據(jù)塊的地址,以使客戶端根據(jù)目標(biāo)分組中各存儲設(shè)備上的目標(biāo)數(shù)據(jù)塊的地址向相應(yīng)分組中的存儲設(shè)備發(fā)起數(shù)據(jù)加載請求或數(shù)據(jù)訪問請求,從而減少了被加鎖存儲設(shè)備的數(shù)量,并降低了存儲系統(tǒng)出現(xiàn)死鎖的概率?!緦@綀D】
【附圖說明】
[0045]圖1為本發(fā)明【背景技術(shù)】中提供的存儲系統(tǒng)的系統(tǒng)架構(gòu)示意圖;
[0046]圖2為本發(fā)明實施例中提供的存儲系統(tǒng)的系統(tǒng)架構(gòu)示意圖;
[0047]圖3為本發(fā)明實施例中提供的數(shù)據(jù)處理方法的流程圖;
[0048]圖4為本發(fā)明實施例中提供的存儲系統(tǒng)的系統(tǒng)架構(gòu)示意圖;
[0049]圖5為本發(fā)明實施例中提供的數(shù)據(jù)處理方法的流程圖;
[0050]圖6為本發(fā)明實施例中提供的管理設(shè)備的結(jié)構(gòu)示意圖。
【具體實施方式】
[0051]下面將結(jié)合本發(fā)明中的附圖,對本發(fā)明中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明的一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。[0052]本發(fā)明實施例中,通過對存儲系統(tǒng)中的存儲設(shè)備進(jìn)行分組,使每個分組中的存儲設(shè)備數(shù)量與數(shù)據(jù)副本數(shù)量相同,管理設(shè)備在接收到客戶端發(fā)送的用于請求數(shù)據(jù)加載地址或數(shù)據(jù)訪問地址的地址請求后,根據(jù)地址請求確定所請求訪問的數(shù)據(jù)的目標(biāo)分組以及目標(biāo)分組中各存儲設(shè)備上的目標(biāo)數(shù)據(jù)塊的地址,并向客戶端返回目標(biāo)分組中各存儲設(shè)備上的目標(biāo)數(shù)據(jù)塊的地址,以使客戶端根據(jù)目標(biāo)分組中各存儲設(shè)備上的目標(biāo)數(shù)據(jù)塊的地址向相應(yīng)分組中的存儲設(shè)備發(fā)起數(shù)據(jù)加載請求或數(shù)據(jù)訪問請求,減少了被加鎖存儲設(shè)備的數(shù)量,降低了存儲系統(tǒng)出現(xiàn)死鎖的概率。
[0053]如圖2所示,為本發(fā)明實施例提供的存儲系統(tǒng)的結(jié)構(gòu)示意圖,該存儲系統(tǒng)采用事務(wù)處理技術(shù),包括通過有線方式進(jìn)行通信的管理設(shè)備和多個存儲設(shè)備。其中,存儲設(shè)備被劃分為多個分組,管理設(shè)備中配置有分組信息(如分組序列號、相應(yīng)分組中的存儲設(shè)備的標(biāo)識(或地址)、各存儲設(shè)備中的數(shù)據(jù)塊地址、數(shù)據(jù)塊地址和數(shù)據(jù)塊中存儲的數(shù)據(jù)標(biāo)識的對應(yīng)關(guān)系,分組序列號用以唯一標(biāo)識一個分組)。每個分組中的存儲設(shè)備數(shù)量與數(shù)據(jù)副本數(shù)量相同。圖2中以數(shù)據(jù)副本數(shù)量等于3為例,示出了存儲設(shè)備分組情況。同一數(shù)據(jù)塊的各副本,分別存儲于同一分組中的各存儲設(shè)備上。比如,圖2中,數(shù)據(jù)塊I有3個副本(即圖中數(shù)字為I的方格),分別存儲于分組I內(nèi)的存儲設(shè)備1、存儲設(shè)備2和存儲設(shè)備3上。
[0054]在對存儲設(shè)備進(jìn)行分組時,可以采用就近原則,具體可包括以下之一:
[0055](I)根據(jù)存儲設(shè)備所在的機架進(jìn)行分組,即將設(shè)置于同一機架的存儲設(shè)備劃分到同一分組內(nèi)。
[0056](2)根據(jù)存儲設(shè)備接入的交換機進(jìn)行分組,即將接入于同一交換機的存儲設(shè)備劃分到同一分組。
[0057](3)根據(jù)存儲設(shè)備所處的網(wǎng)段進(jìn)行分組,即將處于同一網(wǎng)段中的存儲設(shè)備設(shè)置劃分到同一分組。
[0058]存儲設(shè)備的分組是固定的,即,一旦幾個存儲設(shè)備組成一個分組之后就不會變化,除非對分組進(jìn)行重新調(diào)整。
[0059]需要說明的是,在上述三種分組方式中,若存儲系統(tǒng)中的所有存儲設(shè)備都處于同一機架、同一交換機或同一網(wǎng)段中,或同一機架、同一交換機或同一網(wǎng)段中有超過三臺存儲設(shè)備,則可以根據(jù)存儲設(shè)備的IP地址進(jìn)行分組,例如將IP地址最低的三臺存儲設(shè)備設(shè)置在一個分組中等。
[0060]下面,分別對客戶端需要進(jìn)行加載操作和數(shù)據(jù)訪問操作時的流程進(jìn)行詳細(xì)描述。
[0061]如圖3所示,為本發(fā)明實施例中提供的當(dāng)客戶端需要進(jìn)行加載操作時,基于上述存儲系統(tǒng)的數(shù)據(jù)處理方法,包括以下步驟:
[0062]步驟301,管理設(shè)備接收客戶端發(fā)送的用于請求數(shù)據(jù)加載地址的地址請求。
[0063]具體的,該用于請求數(shù)據(jù)加載地址的地址請求中可以不攜帶數(shù)據(jù)標(biāo)識。
[0064]步驟302,管理設(shè)備根據(jù)本地存儲的分組信息,選擇目標(biāo)分組。
[0065]具體的,管理設(shè)備還可以收集各存儲設(shè)備的負(fù)載信息(比如可用存儲空間等),從而得到各分組的負(fù)載情況。管理設(shè)備在選擇分組時,可以選擇當(dāng)前負(fù)載最小的分組(比如可用存儲空間最大的分組)作為目標(biāo)分組。
[0066]管理設(shè)備中還可以存儲有各分組在配置時被分配的分組序列號,優(yōu)選的,分組序列號從I開始順序遞增。管理設(shè)備在選擇分組時,可以根據(jù)分組的序列號選擇分組,例如,本次接收到數(shù)據(jù)請求時,管理設(shè)備選擇序列號為I的分組,下一次接收到地址請求時,管理設(shè)備選擇分組號為2的存儲設(shè)備,以此類推,即以輪詢方式選擇分組。 [0067]優(yōu)選的,上述兩種分組選擇策略可以結(jié)合在一起使用,例如,當(dāng)負(fù)載最小的分組為多個時,可以進(jìn)一步根據(jù)分組的序列號,確定唯一的目標(biāo)分組(比如選擇其中序列號最大或最小的分組)。
[0068]步驟303,管理設(shè)備向客戶端發(fā)送目標(biāo)分組中各存儲設(shè)備上的目標(biāo)數(shù)據(jù)塊的地址。
[0069]具體的,管理設(shè)備根據(jù)本地存儲的分組信息,確定各存儲設(shè)備上的目標(biāo)數(shù)據(jù)塊的地址,優(yōu)選的,管理設(shè)備可以從確定出的目標(biāo)分組中的存儲設(shè)備上選擇未寫入數(shù)據(jù)的數(shù)據(jù)塊作為目標(biāo)數(shù)據(jù)塊。
[0070]步驟304,管理設(shè)備接收客戶端在向目標(biāo)分組中的各存儲設(shè)備上的目標(biāo)數(shù)據(jù)塊寫入數(shù)據(jù)后,發(fā)送的加載成功消息,并根據(jù)該加載成功消息更新本地存儲的分組信息,其中,加載成功消息中攜帶了客戶端本次寫入的數(shù)據(jù)的標(biāo)識、數(shù)據(jù)量和相應(yīng)數(shù)據(jù)塊地址的對應(yīng)關(guān)系O
[0071]下面結(jié)合具體的應(yīng)用場景對本發(fā)明實施例進(jìn)行進(jìn)一步闡述。
[0072]如圖4所示,在本應(yīng)用場景中,數(shù)據(jù)副本數(shù)量等于3,共有九臺存儲設(shè)備,其中,存儲設(shè)備1、存儲設(shè)備2、存儲設(shè)備3被設(shè)置為分組1,存儲設(shè)備4、存儲設(shè)備5、存儲設(shè)備6被設(shè)置為分組2,存儲設(shè)備7、存儲設(shè)備8、存儲設(shè)備9被設(shè)置為分組3,分組I中的存儲設(shè)備中已經(jīng)存儲有數(shù)據(jù)1、數(shù)據(jù)2,分組2中的存儲設(shè)備已經(jīng)存儲有數(shù)據(jù)3、數(shù)據(jù)4,分組3中的存儲設(shè)備已經(jīng)存儲有數(shù)據(jù)5。管理設(shè)備記錄有上述分組信息以及每個分組的負(fù)載信息。
[0073]管理設(shè)備接收到客戶端發(fā)送的地址請求后,查詢每個分組中的負(fù)載情況,獲知分組3的負(fù)載最小,管理設(shè)備將分組3確定為目標(biāo)分組,并選擇分組3中的存儲設(shè)備7、存儲設(shè)備8、存儲設(shè)備9上未存儲數(shù)據(jù)的數(shù)據(jù)塊作為目標(biāo)數(shù)據(jù)塊,并將選擇出的目標(biāo)數(shù)據(jù)塊的地址發(fā)送給客戶端,客戶端根據(jù)接收到的數(shù)據(jù)塊地址在分組3中的存儲設(shè)備上寫入數(shù)據(jù)。需要說明的是,在寫入數(shù)據(jù)時,需要在分組3中的三個存儲設(shè)備中分別寫入數(shù)據(jù),以建立3個數(shù)據(jù)副本,從而提高數(shù)據(jù)的安全性。
[0074]在上述實施例中,由于數(shù)據(jù)5僅存儲于分組3中,當(dāng)在分組3中加載數(shù)據(jù)時,僅需要對分組3中的三個存儲設(shè)備進(jìn)行加載表鎖操作,而不會影響分組I和分組2中的存儲設(shè)備,從而減少了被加鎖的存儲設(shè)備,降低了存儲系統(tǒng)出現(xiàn)死鎖的概率。
[0075]下面,對客戶端需要進(jìn)行數(shù)據(jù)訪問操作時的流程進(jìn)行詳細(xì)描述,其中,數(shù)據(jù)訪問操作可以包括數(shù)據(jù)讀操作、數(shù)據(jù)修改操作、數(shù)據(jù)查詢操作等。
[0076] 如圖5所示,為本發(fā)明實施例中提供的當(dāng)客戶端需要進(jìn)行數(shù)據(jù)查詢操作時,基于上述存儲系統(tǒng)的數(shù)據(jù)處理方法,包括以下步驟:
[0077]步驟501,管理設(shè)備接收客戶端發(fā)送的用于請求數(shù)據(jù)訪問地址的地址請求,該地址請求中攜帶了數(shù)據(jù)標(biāo)識。
[0078]步驟502,管理設(shè)備根據(jù)地址請求中攜帶的數(shù)據(jù)標(biāo)識,確定目標(biāo)分組以及目標(biāo)分組中各存儲設(shè)備上的目標(biāo)數(shù)據(jù)塊的地址。
[0079]具體的,管理設(shè)備中通常存儲有分組與該分組中存儲的數(shù)據(jù)的標(biāo)識的對應(yīng)關(guān)系,當(dāng)管理設(shè)備接收到地址請求時,根據(jù)地址請求中攜帶的數(shù)據(jù)標(biāo)識,選擇存儲有該數(shù)據(jù)的分組作為目標(biāo)分組,并選擇該目標(biāo)分組中存儲設(shè)備上存儲該數(shù)據(jù)的數(shù)據(jù)塊作為目標(biāo)數(shù)據(jù)塊。
[0080]步驟503,管理設(shè)備向客戶端發(fā)送目標(biāo)分組中各存儲設(shè)備上的目標(biāo)數(shù)據(jù)塊的地址。
[0081]當(dāng)客戶端需要進(jìn)行數(shù)據(jù)修改操作或刪除操作時,具體的操作流程與上述數(shù)據(jù)訪問流程類似,區(qū)別在于客戶端需要在修改數(shù)據(jù)或刪除數(shù)據(jù)成功后,向管理設(shè)備發(fā)送成功消息,該成功消息中攜帶了數(shù)據(jù)標(biāo)識、修改或刪除后數(shù)據(jù)的數(shù)據(jù)量以及數(shù)據(jù)塊地址的對應(yīng)關(guān)系,以通知管理設(shè)備更新本地存儲的分組信息,在此不再贅述。
[0082]下面結(jié)合具體的應(yīng)用場景對本發(fā)明實施例進(jìn)行進(jìn)一步闡述。
[0083]如圖4所示,在本應(yīng)用場景中,數(shù)據(jù)副本數(shù)量為3,共有九臺存儲設(shè)備,其中,存儲設(shè)備1、存儲設(shè)備2、存儲設(shè)備3被設(shè)置為分組1,存儲設(shè)備4、存儲設(shè)備5、存儲設(shè)備6被設(shè)置為分組2,存儲設(shè)備7、存儲設(shè)備8、存儲設(shè)備9被設(shè)置為分組3,分組I中的存儲設(shè)備中已經(jīng)存儲有數(shù)據(jù)1、數(shù)據(jù)2,分組2中的存儲設(shè)備已經(jīng)存儲有數(shù)據(jù)3、數(shù)據(jù)4,分組3中的存儲設(shè)備已經(jīng)存儲有數(shù)據(jù)5。管理設(shè)備記錄有上述分組信息以及每個分組中存儲的數(shù)據(jù)的標(biāo)識。
[0084]管理設(shè)備接收到客戶端發(fā)送的地址請求后,獲取地址請求中攜帶的數(shù)據(jù)標(biāo)識,例如數(shù)據(jù)1,管理設(shè)備根據(jù)本地存儲的分組信息,獲知數(shù)據(jù)I存儲于分組I中,因此,管理設(shè)備將分組I中3臺存儲設(shè)備上相應(yīng)數(shù)據(jù)塊的地址發(fā)送給客戶端,客戶端根據(jù)接收到的數(shù)據(jù)塊地址,從相應(yīng)數(shù)據(jù)塊中讀取數(shù)據(jù)。
[0085]在上述實施例中,由于數(shù)據(jù)I僅存儲于分組I中,當(dāng)從分組I中讀取數(shù)據(jù)時,僅需要對分組I中的三個存儲設(shè)備進(jìn)行加載表鎖操作,而不會影響分組2和分組3中的存儲設(shè)備,從而減少了被加鎖的存儲設(shè)備,降低了存儲系統(tǒng)出現(xiàn)死鎖的概率。
[0086]基于與上述方法實施例相同的技術(shù)構(gòu)思,本發(fā)明實施例中還提供了一種管理設(shè)備,如圖6所示,該管理設(shè)備應(yīng)用于包含有存儲設(shè)備的存儲系統(tǒng),對所述存儲系統(tǒng)中的存儲設(shè)備進(jìn)行分組,每個分組中的存儲設(shè)備數(shù)量與數(shù)據(jù)副本數(shù)量相同,所述管理設(shè)備包括:
[0087]接收單元601,用于接收客戶端發(fā)送的地址請求,其中,所述地址請求用于請求所訪問的數(shù)據(jù)的地址信息;
[0088]確定單元602,用于根據(jù)所述接收單元601接收到的地址請求確定所請求訪問的數(shù)據(jù)的目標(biāo)分組以及所述目標(biāo)分組中各存儲設(shè)備上的目標(biāo)數(shù)據(jù)塊的地址;
[0089]處理單元603,用于根據(jù)所述接收單元601接收到的地址請求,向所述客戶端返回所述目標(biāo)分組中各存儲設(shè)備上的目標(biāo)數(shù)據(jù)塊的地址,以使所述客戶端根據(jù)所述目標(biāo)分組中各存儲設(shè)備上的目標(biāo)數(shù)據(jù)塊的地址向相應(yīng)分組中的存儲設(shè)備發(fā)起數(shù)據(jù)處理請求。
[0090]還包括:
[0091]配置單元604,用于對所述存儲系統(tǒng)中的存儲設(shè)備配置分組,其中,每個分組中的存儲設(shè)備數(shù)量與數(shù)據(jù)副本數(shù)量相同。
[0092]所述配置單元604,具體用于將設(shè)置在同一機架上的存儲設(shè)備配置為一個分組;或?qū)⒔尤胪唤粨Q機的存儲設(shè)備配置為一個分組;或?qū)⑻幱谕痪W(wǎng)段的存儲設(shè)備配置為一個分組。
[0093]所述確定單元602,具體用于根據(jù)所述接收單元601接收到的所述地址請求,選擇所有分組中負(fù)載最小的分組作為目標(biāo)分組,并從所述目標(biāo)分組中的存儲設(shè)備上選擇未寫入數(shù)據(jù)的數(shù)據(jù)塊作為目標(biāo)數(shù)據(jù)塊;或根據(jù)所述接收單元601接收到的所述地址請求,按照分組順序確定目標(biāo)分組,并從所述目標(biāo)分組中的存儲設(shè)備上選擇未寫入數(shù)據(jù)的數(shù)據(jù)塊作為目標(biāo)數(shù)據(jù)塊。
[0094]基于與上述方法實施例相同的技術(shù)構(gòu)思,本發(fā)明實施例中還提供了一種管理設(shè)備,對存儲系統(tǒng)中的存儲設(shè)備進(jìn)行分組,每個分組中的存儲設(shè)備數(shù)量與數(shù)據(jù)副本數(shù)量相同,所述管理設(shè)備包括:
[0095]接收單元,用于接收客戶端發(fā)送的用于請求數(shù)據(jù)訪問地址的地址請求;
[0096]確定單元,用于根據(jù)所述接收單元接收到的地址請求確定目標(biāo)分組以及所述目標(biāo)分組中各存儲設(shè)備上的目標(biāo)數(shù)據(jù)塊的地址;
[0097]處理單元,用于根據(jù)所述接收單元接收到的地址請求,向所述客戶端返回所述目標(biāo)分組中各存儲設(shè)備上的目標(biāo)數(shù)據(jù)塊的地址,以使所述客戶端根據(jù)所述目標(biāo)分組中各存儲設(shè)備上的目標(biāo)數(shù)據(jù)塊的地址向相應(yīng)分組中的存儲設(shè)備發(fā)起數(shù)據(jù)訪問請求。
[0098]還包括:
[0099]配置單元,用于對所述存儲系統(tǒng)中的存儲設(shè)備配置分組,其中,每個分組中的存儲設(shè)備數(shù)量與數(shù)據(jù)副本數(shù)量相同。
[0100]所述配置單元,具體用于將設(shè)置在同一機架上的存儲設(shè)備配置為一個分組;或?qū)⒔尤胪唤粨Q機的存儲設(shè)備配置為一個分組;或?qū)⑻幱谕痪W(wǎng)段的存儲設(shè)備配置為一個分組。
[0101]所述地址請求中攜帶了數(shù)據(jù)標(biāo)識;
[0102]所述確定單元,具體用于根據(jù)所述數(shù)據(jù)標(biāo)識,選擇所有分組中存儲相應(yīng)數(shù)據(jù)的分組作為目標(biāo)分組,并在所述目標(biāo)分組中的存儲設(shè)備上選擇存儲有所述相應(yīng)數(shù)據(jù)的數(shù)據(jù)塊作為目標(biāo)數(shù)據(jù)塊。
[0103]通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實施方式。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺 計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述的方法。
[0104]本領(lǐng)域技術(shù)人員可以理解附圖只是一個優(yōu)選實施例的示意圖,附圖中的模塊或流程并不一定是實施本發(fā)明所必須的。
[0105]本領(lǐng)域技術(shù)人員可以理解實施例中的裝置中的模塊可以按照實施例描述進(jìn)行分布于實施例的裝置中,也可以進(jìn)行相應(yīng)變化位于不同于本實施例的一個或多個裝置中。上述實施例的模塊可以合并為一個模塊,也可以進(jìn)一步拆分成多個子模塊。
[0106] 上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。
[0107]以上公開的僅為本發(fā)明的幾個具體實施例,但是,本發(fā)明并非局限于此,任何本領(lǐng)域的技術(shù)人員能思之的變化都應(yīng)落入本發(fā)明的保護(hù)范圍。
【權(quán)利要求】
1.一種數(shù)據(jù)處理方法,其特征在于,對存儲系統(tǒng)中的存儲設(shè)備進(jìn)行分組,每個分組中的存儲設(shè)備數(shù)量與數(shù)據(jù)副本數(shù)量相同,所述方法包括: 接收客戶端發(fā)送的用于請求數(shù)據(jù)加載地址的地址請求; 根據(jù)所述地址請求確定目標(biāo)分組以及所述目標(biāo)分組中各存儲設(shè)備上的目標(biāo)數(shù)據(jù)塊的地址; 向所述客戶端返回所述目標(biāo)分組中各存儲設(shè)備上的目標(biāo)數(shù)據(jù)塊的地址,以使所述客戶端根據(jù)所述目標(biāo)分組中各存儲設(shè)備上的目標(biāo)數(shù)據(jù)塊的地址向相應(yīng)分組中的存儲設(shè)備發(fā)起數(shù)據(jù)加載請求。
2.如權(quán)利要求1所述的方法,其特征在于,所述對存儲系統(tǒng)中的存儲設(shè)備進(jìn)行分組,具體包括: 將設(shè)置在同一機架上的存儲設(shè)備劃分到同一分組中;或 將接入同一交換機的存儲設(shè)備劃分到同一分組中;或 將處于同一網(wǎng)段的存儲設(shè)備劃分到同一分組中。
3.如權(quán)利要求1所述的方法,其特征在于,所述根據(jù)地址請求確定目標(biāo)分組以及所述目標(biāo)分組中各存儲設(shè)備上的目標(biāo)數(shù)據(jù)塊的地址,具體包括: 選擇所有分組中負(fù)載最小的分組作為目標(biāo)分組,并從所述目標(biāo)分組中的存儲設(shè)備上選擇未寫入數(shù)據(jù)的數(shù)據(jù)塊作為目標(biāo)數(shù)據(jù)塊;或按照分組順序確定目標(biāo)分組,并從所述目標(biāo)分組中的存儲設(shè)備上選擇未寫入數(shù)據(jù)的數(shù)據(jù)塊作為目標(biāo)數(shù)據(jù)塊。
4.一種管理設(shè)備,其特征在于,對存儲系統(tǒng)中的存儲設(shè)備進(jìn)行分組,每個分組中的存儲設(shè)備數(shù)量與數(shù)據(jù)副本數(shù)量相同,所述管理設(shè)備包括: 接收單元,用于接收客戶端發(fā)送的用于請求數(shù)據(jù)加載地址的地址請求; 確定單元,用于根據(jù)所述接收單元接收到的地址請求確定目標(biāo)分組以及所述目標(biāo)分組中各存儲設(shè)備上的目標(biāo)數(shù)據(jù)塊的地址; 處理單元,用于根據(jù)所述接收單元接收到的地址請求,向所述客戶端返回所述目標(biāo)分組中各存儲設(shè)備上的目標(biāo)數(shù)據(jù)塊的地址,以使所述客戶端根據(jù)所述目標(biāo)分組中各存儲設(shè)備上的目標(biāo)數(shù)據(jù)塊的地址向相應(yīng)分組中的存儲設(shè)備發(fā)起數(shù)據(jù)加載請求。
5.如權(quán)利要求4所述的管理設(shè)備,其特征在于,還包括: 配置單元,用于對所述存儲系統(tǒng)中的存儲設(shè)備配置分組,其中,每個分組中的存儲設(shè)備數(shù)量與數(shù)據(jù)副本數(shù)量相同。
6.如權(quán)利要求5所述的管理設(shè)備,其特征在于,所述配置單元,具體用于將設(shè)置在同一機架上的存儲設(shè)備配置為一個分組;或?qū)⒔尤胪唤粨Q機的存儲設(shè)備配置為一個分組;或?qū)⑻幱谕痪W(wǎng)段的存儲設(shè)備配置為一個分組。
7.如權(quán)利要求4所述的管理設(shè)備,其特征在于,所述確定單元,具體用于根據(jù)所述接收單元接收到的所述地址請求,選擇所有分組中負(fù)載最小的分組作為目標(biāo)分組,并從所述目標(biāo)分組中的存儲設(shè)備上選擇未寫入數(shù)據(jù)的數(shù)據(jù)塊作為目標(biāo)數(shù)據(jù)塊;或根據(jù)所述接收單元接收到的所述地址請求,按照分組順序確定目標(biāo)分組,并從所述目標(biāo)分組中的存儲設(shè)備上選擇未寫入數(shù)據(jù)的數(shù) 據(jù)塊作為目標(biāo)數(shù)據(jù)塊。
8.一種數(shù)據(jù)處理方法,其特征在于,對存儲系統(tǒng)中的存儲設(shè)備進(jìn)行分組,每個分組中的存儲設(shè)備數(shù)量與數(shù)據(jù)副本數(shù)量相同,所述方法包括:接收客戶端發(fā)送的用于請求數(shù)據(jù)訪問地址的地址請求; 根據(jù)所述地址請求確定目標(biāo)分組以及所述目標(biāo)分組中各存儲設(shè)備上的目標(biāo)數(shù)據(jù)塊的地址; 向所述客戶端返回所述目標(biāo)分組中各存儲設(shè)備上的目標(biāo)數(shù)據(jù)塊的地址,以使所述客戶端根據(jù)所述目標(biāo)分組中各存儲設(shè)備上的目標(biāo)數(shù)據(jù)塊的地址向相應(yīng)分組中的存儲設(shè)備發(fā)起數(shù)據(jù)訪問請求。
9.如權(quán)利要求8所述的方法,其特征在于,所述對存儲系統(tǒng)中的存儲設(shè)備進(jìn)行分組,具體包括: 將設(shè)置在同一機架上的存儲設(shè)備劃分到同一分組中;或 將接入同一交換機的存儲設(shè)備劃分到同一分組中;或 將處于同一網(wǎng)段的存儲設(shè)備劃分到同一分組中。
10.如權(quán)利要求8所述的方法,其特征在于,所述地址請求中攜帶了數(shù)據(jù)標(biāo)識,所述根據(jù)地址請求確定目標(biāo)分組以及所述目標(biāo)分組中各存儲設(shè)備上的目標(biāo)數(shù)據(jù)塊的地址,具體包括: 根據(jù)所述數(shù)據(jù)標(biāo)識,選擇所有分組中存儲相應(yīng)數(shù)據(jù)的分組作為目標(biāo)分組,并在所述目標(biāo)分組中的存儲設(shè)備上選擇存儲有所述相應(yīng)數(shù)據(jù)的數(shù)據(jù)塊作為目標(biāo)數(shù)據(jù)塊。
11.一種管理設(shè)備,其特征在于,對存儲系統(tǒng)中的存儲設(shè)備進(jìn)行分組,每個分組中的存儲設(shè)備數(shù)量與數(shù)據(jù)副本數(shù)量相同,所述管理設(shè)備包括: 接收單元,用于接收客戶端發(fā)送的用于請求數(shù)據(jù)訪問地址的地址請求; 確定單元,用于根據(jù)所述接收單元接收到的地址請求確定目標(biāo)分組以及所述目標(biāo)分組中各存儲設(shè)備上的目標(biāo)數(shù)據(jù)塊的地址; 處理單元,用于根據(jù)所述接收單元接收到的地址請求,向所述客戶端返回所述目標(biāo)分組中各存儲設(shè)備上的目標(biāo)數(shù)據(jù)塊的地址,以使所述客戶端根據(jù)所述目標(biāo)分組中各存儲設(shè)備上的目標(biāo)數(shù)據(jù)塊的地址向相應(yīng)分組中的存儲設(shè)備發(fā)起數(shù)據(jù)訪問請求。
12.如權(quán)利要求11所述的管理設(shè)備,其特征在于,還包括: 配置單元,用于對所述存儲系統(tǒng)中的存儲設(shè)備配置分組,其中,每個分組中的存儲設(shè)備數(shù)量與數(shù)據(jù)副本數(shù)量相同。
13.如權(quán)利要求12所述的管理設(shè)備,其特征在于,所述配置單元,具體用于將設(shè)置在同一機架上的存儲設(shè)備配置為一個分組;或?qū)⒔尤胪唤粨Q機的存儲設(shè)備配置為一個分組;或?qū)⑻幱谕痪W(wǎng)段的存儲設(shè)備配置為 一個分組。
14.如權(quán)利要求11所述的管理設(shè)備,其特征在于,所述地址請求中攜帶了數(shù)據(jù)標(biāo)識; 所述確定單元,具體用于根據(jù)所述數(shù)據(jù)標(biāo)識,選擇所有分組中存儲相應(yīng)數(shù)據(jù)的分組作為目標(biāo)分組,并在所述目標(biāo)分組中的存儲設(shè)備上選擇存儲有所述相應(yīng)數(shù)據(jù)的數(shù)據(jù)塊作為目標(biāo)數(shù)據(jù)塊。
【文檔編號】H04L29/12GK103905512SQ201210586821
【公開日】2014年7月2日 申請日期:2012年12月28日 優(yōu)先權(quán)日:2012年12月28日
【發(fā)明者】周大, 錢嶺, 梁智超 申請人:中國移動通信集團(tuán)公司