一種數(shù)據(jù)處理方法、設(shè)備和系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開(kāi)了一種數(shù)據(jù)處理方法、設(shè)備和系統(tǒng),所述方法應(yīng)用于分布式數(shù)據(jù)存儲(chǔ)系統(tǒng),包括:存儲(chǔ)設(shè)備接收寫請(qǐng)求后,根據(jù)接收到的寫請(qǐng)求確定出目標(biāo)數(shù)據(jù)塊;若目標(biāo)數(shù)據(jù)塊中包含指向目標(biāo)數(shù)據(jù)塊的副本的指針,則根據(jù)該指針將寫請(qǐng)求重定向到存儲(chǔ)該副本的存儲(chǔ)設(shè)備,否則,在寫請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊中寫入數(shù)據(jù),并向存儲(chǔ)有目標(biāo)數(shù)據(jù)塊的副本的存儲(chǔ)設(shè)備發(fā)送指針設(shè)置消息,以指示在目標(biāo)數(shù)據(jù)塊的副本中設(shè)置指向?qū)懻?qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊的指針。通過(guò)采用本發(fā)明,可以縮短數(shù)據(jù)更新時(shí)間,提高響應(yīng)速度。
【專利說(shuō)明】一種數(shù)據(jù)處理方法、設(shè)備和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信【技術(shù)領(lǐng)域】,尤其涉及一種數(shù)據(jù)處理方法、設(shè)備和系統(tǒng)。
【背景技術(shù)】
[0002]對(duì)于海量數(shù)據(jù)的存儲(chǔ)處理的技術(shù)趨勢(shì)是采用分布式存儲(chǔ)系統(tǒng),但是,由于分布式存儲(chǔ)系統(tǒng)通常構(gòu)建在X86服務(wù)器集群上,系統(tǒng)可靠性要低于傳統(tǒng)陣列。
[0003]為了解決該問(wèn)題,現(xiàn)有技術(shù)提出了一種多副本存儲(chǔ)方式。多副本存儲(chǔ)系統(tǒng)中具有多個(gè)存儲(chǔ)設(shè)備,數(shù)據(jù)的讀請(qǐng)求可以均衡到各個(gè)存儲(chǔ)設(shè)備上,同時(shí),對(duì)于數(shù)據(jù)的寫請(qǐng)求采用強(qiáng)一致處理方式,即每次寫入數(shù)據(jù)時(shí),需要依次在所有存儲(chǔ)設(shè)備中成功寫入數(shù)據(jù)后,才能返回成功消息。
[0004]但是,在多副本存儲(chǔ)系統(tǒng)中采用強(qiáng)一致處理方式處理寫請(qǐng)求時(shí),由于每次寫入新數(shù)據(jù)時(shí),都需要依次對(duì)系統(tǒng)中的所有存儲(chǔ)設(shè)備中的數(shù)據(jù)副本進(jìn)行更新,因此,現(xiàn)有技術(shù)中的強(qiáng)一致處理方式延長(zhǎng)了數(shù)據(jù)更新時(shí)間,降低了響應(yīng)速度。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實(shí)施例提供一種數(shù)據(jù)處理方法、設(shè)備和系統(tǒng),以縮短數(shù)據(jù)更新時(shí)間,提高響應(yīng)速度。
[0006]為達(dá)到上述目的,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)處理方法,應(yīng)用于分布式數(shù)據(jù)存儲(chǔ)系統(tǒng),其特征在于,所述方法包括:
[0007]存儲(chǔ)設(shè)備接收寫請(qǐng)求后,根據(jù)接收到的寫請(qǐng)求確定出目標(biāo)數(shù)據(jù)塊;若所述目標(biāo)數(shù)據(jù)塊中包含指向所述目標(biāo)數(shù)據(jù)塊的副本的指針,則根據(jù)該指針將所述寫請(qǐng)求重定向到存儲(chǔ)該副本的存儲(chǔ)設(shè)備,否則,在所述寫請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊中寫入數(shù)據(jù),并向存儲(chǔ)有所述目標(biāo)數(shù)據(jù)塊的副本的存儲(chǔ)設(shè)備發(fā)送指針設(shè)置消息,以指示在所述目標(biāo)數(shù)據(jù)塊的副本中設(shè)置指向所述寫請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊的指針。
[0008]優(yōu)選的,所述向存儲(chǔ)有所述目標(biāo)數(shù)據(jù)塊的副本的存儲(chǔ)設(shè)備發(fā)送指針設(shè)置消息,具體包括:
[0009]向存儲(chǔ)有所述目標(biāo)數(shù)據(jù)塊的副本的所有存儲(chǔ)設(shè)備發(fā)送指針設(shè)置消息。
[0010]優(yōu)選的,還包括:
[0011]所述存儲(chǔ)設(shè)備接收到其它存儲(chǔ)設(shè)備發(fā)送的指針設(shè)置消息后,在所述指針設(shè)置消息所指示的目標(biāo)數(shù)據(jù)塊的副本中設(shè)置指向該目標(biāo)數(shù)據(jù)塊的指針。
[0012]優(yōu)選的,所述向存儲(chǔ)有所述目標(biāo)數(shù)據(jù)塊的副本的存儲(chǔ)設(shè)備發(fā)送指針設(shè)置消息,具體包括:
[0013]向存儲(chǔ)有所述目標(biāo)數(shù)據(jù)塊的副本的一個(gè)存儲(chǔ)設(shè)備發(fā)送指針設(shè)置消息。
[0014]優(yōu)選的,還包括:
[0015]所述存儲(chǔ)設(shè)備接收到其它存儲(chǔ)設(shè)備發(fā)送的指針設(shè)置消息后,在所述指針設(shè)置消息所指示的目標(biāo)數(shù)據(jù)塊的副本中設(shè)置指向該目標(biāo)數(shù)據(jù)塊的指針,并向另一個(gè)存儲(chǔ)有該目標(biāo)數(shù)據(jù)塊的副本、且未接收到所述指針設(shè)置消息的存儲(chǔ)設(shè)備轉(zhuǎn)發(fā)所述指針設(shè)置消息。
[0016]優(yōu)選的,所述分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中還包括管理設(shè)備,所述方法還包括:
[0017]存儲(chǔ)設(shè)備接收所述管理設(shè)備發(fā)送的數(shù)據(jù)整理消息;其中,所述數(shù)據(jù)整理消息為所述管理設(shè)備周期檢測(cè)各存儲(chǔ)設(shè)備中是否設(shè)置有指針,并向檢測(cè)到設(shè)置有指針的存儲(chǔ)設(shè)備發(fā)送的;
[0018]所述存儲(chǔ)設(shè)備根據(jù)所述數(shù)據(jù)整理消息,查詢本設(shè)備存儲(chǔ)的數(shù)據(jù)塊中設(shè)置的指針,并針對(duì)查詢到的每個(gè)指針,讀取該指針指向的數(shù)據(jù)塊中的數(shù)據(jù),將讀取到的數(shù)據(jù)寫入該指針?biāo)诘臄?shù)據(jù)塊中,并刪除該數(shù)據(jù)塊中的指針。
[0019]優(yōu)選的,所述方法還包括:
[0020]存儲(chǔ)設(shè)備接收到讀請(qǐng)求后,根據(jù)接收到的讀請(qǐng)求確定出目標(biāo)數(shù)據(jù)塊;若所述讀請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊中包含指向所述讀請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊的副本的指針,則所述存儲(chǔ)設(shè)備根據(jù)該指針將所述讀請(qǐng)求重定向到存儲(chǔ)該副本的存儲(chǔ)設(shè)備;否則,所述存儲(chǔ)設(shè)備讀取所述讀請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊中的數(shù)據(jù)。
[0021]優(yōu)選的,所述分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中還包括管理設(shè)備,所述存儲(chǔ)設(shè)備接收到的寫請(qǐng)求是由客戶端從所述管理設(shè)備獲取到寫請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊的地址后根據(jù)該地址發(fā)送的;
[0022]所述存儲(chǔ)設(shè)備在所述寫請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊中寫入數(shù)據(jù),之后還包括:
[0023]所述存儲(chǔ)設(shè)備向所述管理設(shè)備發(fā)送數(shù)據(jù)更新消息,所述數(shù)據(jù)更新消息中攜帶了更新后的數(shù)據(jù)的標(biāo)識(shí)和所述目標(biāo)數(shù)據(jù)塊的地址的對(duì)應(yīng)關(guān)系,以通知所述管理設(shè)備更新本地存儲(chǔ)的數(shù)據(jù)標(biāo)識(shí)和數(shù)據(jù)塊地址的對(duì)應(yīng)關(guān)系;
[0024]所述存儲(chǔ)設(shè)備在所述指針設(shè)置消息所指示的目標(biāo)數(shù)據(jù)塊的副本中設(shè)置指向該目標(biāo)數(shù)據(jù)塊的指針,之后還包括:
[0025]所述存儲(chǔ)設(shè)備向所述管理設(shè)備發(fā)送數(shù)據(jù)更新消息,所述數(shù)據(jù)更新消息中攜帶了更新后的數(shù)據(jù)的標(biāo)識(shí)和所述目標(biāo)數(shù)據(jù)塊的副本的地址,以通知所述管理設(shè)備更新本地存儲(chǔ)的數(shù)據(jù)標(biāo)識(shí)和數(shù)據(jù)塊地址的對(duì)應(yīng)關(guān)系。
[0026]本發(fā)明實(shí)施例提供了一種存儲(chǔ)設(shè)備,應(yīng)用于分布式數(shù)據(jù)存儲(chǔ)系統(tǒng),其特征在于,所述存儲(chǔ)設(shè)備包括:
[0027]寫操作處理單元,用于在本設(shè)備接收到寫請(qǐng)求后,根據(jù)所述寫請(qǐng)求確定出目標(biāo)數(shù)據(jù)塊,若定出的目標(biāo)數(shù)據(jù)塊中包含指向所述目標(biāo)數(shù)據(jù)塊的副本的指針時(shí),則根據(jù)該指針將所述寫請(qǐng)求重定向到存儲(chǔ)該副本的存儲(chǔ)設(shè)備,否則,在所述寫請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊中寫入數(shù)據(jù);
[0028]通知單元,用于在所述寫操作處理單元在所述寫請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊中寫入數(shù)據(jù)后,向存儲(chǔ)有所述目標(biāo)數(shù)據(jù)塊的副本的存儲(chǔ)設(shè)備發(fā)送指針設(shè)置消息,以指示在所述目標(biāo)數(shù)據(jù)塊的副本中設(shè)置指向所述寫請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊的指針。
[0029]優(yōu)選的,所述通知單元,具體用于在所述寫操作處理單元在所述寫請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊中寫入數(shù)據(jù)后,向存儲(chǔ)有所述目標(biāo)數(shù)據(jù)塊的副本的所有存儲(chǔ)設(shè)備發(fā)送指針設(shè)置消
肩、O
[0030]優(yōu)選的,所述存儲(chǔ)設(shè)備還包括指針設(shè)置單元;
[0031]所述指針設(shè)置單元,用于在本設(shè)備接收到其他存儲(chǔ)設(shè)備發(fā)送的指針設(shè)置消息后,在所述指針設(shè)置消息所指示的目標(biāo)數(shù)據(jù)塊的副本中設(shè)置指向該目標(biāo)數(shù)據(jù)塊的指針。
[0032]優(yōu)選的,所述通知單元,具體用于在所述寫操作處理單元在所述寫請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊中寫入數(shù)據(jù)后,向存儲(chǔ)有所述目標(biāo)數(shù)據(jù)塊的副本的一個(gè)存儲(chǔ)設(shè)備發(fā)送指針設(shè)置消
肩、O
[0033]優(yōu)選的,所述存儲(chǔ)設(shè)備還包括指針設(shè)置單元;
[0034]所述指針設(shè)置單元,用于在本設(shè)備接收到其它存儲(chǔ)設(shè)備發(fā)送的指針設(shè)置消息后,在所述指針設(shè)置消息所指示的目標(biāo)數(shù)據(jù)塊的副本中設(shè)置指向該目標(biāo)數(shù)據(jù)塊的指針,并向另一個(gè)存儲(chǔ)有該目標(biāo)數(shù)據(jù)塊的副本、且未接收到所述指針設(shè)置消息的存儲(chǔ)設(shè)備轉(zhuǎn)發(fā)所述指針設(shè)置消息。
[0035]優(yōu)選的,所述分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中還包括管理設(shè)備,所述存儲(chǔ)設(shè)備還包括:
[0036]數(shù)據(jù)整理單元,用于在本設(shè)備接收到管理設(shè)備發(fā)送的數(shù)據(jù)整理消息后,根據(jù)所述數(shù)據(jù)整理消息,查詢本設(shè)備存儲(chǔ)的數(shù)據(jù)塊中設(shè)置的指針,并針對(duì)查詢到的每個(gè)指針,讀取該指針指向的數(shù)據(jù)塊中的數(shù)據(jù),將讀取到的數(shù)據(jù)寫入該指針?biāo)诘臄?shù)據(jù)塊中,并刪除該數(shù)據(jù)塊中的指針;其中,所述數(shù)據(jù)整理消息為所述管理設(shè)備周期檢測(cè)各存儲(chǔ)設(shè)備中是否設(shè)置有指針,并向檢測(cè)到設(shè)置有指針的存儲(chǔ)設(shè)備發(fā)送的。
[0037]優(yōu)選的,所述存儲(chǔ)設(shè)備還包括:
[0038]讀操作處理單元,用于在本設(shè)備接收到讀請(qǐng)求后確定出目標(biāo)數(shù)據(jù)塊,若確定出的目標(biāo)數(shù)據(jù)塊中包含指向所述讀請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊的副本的指針,則根據(jù)該指針將所述讀請(qǐng)求重定向到存儲(chǔ)該副本的存儲(chǔ)設(shè)備;否則,讀取所述讀請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊中的數(shù)據(jù)。
[0039]優(yōu)選的,所述分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中還包括管理設(shè)備,所述存儲(chǔ)設(shè)備接收到的寫請(qǐng)求是由客戶端從所述管理設(shè)備獲取到寫請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊的地址后根據(jù)該地址發(fā)送的;所述存儲(chǔ)設(shè)備還包括更新請(qǐng)求單元;
[0040]所述更新請(qǐng)求單元,用于在所述寫操作處理單元在所述寫請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊中寫入數(shù)據(jù)后,向所述管理設(shè)備發(fā)送數(shù)據(jù)更新消息,所述數(shù)據(jù)更新消息中攜帶了更新后的數(shù)據(jù)的標(biāo)識(shí)和所述目標(biāo)數(shù)據(jù)塊的地址的對(duì)應(yīng)關(guān)系,以通知所述管理設(shè)備更新本地存儲(chǔ)的數(shù)據(jù)標(biāo)識(shí)和數(shù)據(jù)塊地址的對(duì)應(yīng)關(guān)系;以及,用于在所述指針設(shè)置單元在目標(biāo)數(shù)據(jù)塊的副本中設(shè)置指向該目標(biāo)數(shù)據(jù)塊的指針后,向所述管理設(shè)備發(fā)送數(shù)據(jù)更新消息,所述數(shù)據(jù)更新消息中攜帶了更新后的數(shù)據(jù)的標(biāo)識(shí)和所述目標(biāo)數(shù)據(jù)塊的副本的地址,以通知所述管理設(shè)備更新本地存儲(chǔ)的數(shù)據(jù)標(biāo)識(shí)和數(shù)據(jù)塊地址的對(duì)應(yīng)關(guān)系。
[0041]本發(fā)明實(shí)施例提供了一種分布式數(shù)據(jù)處理系統(tǒng),其特征在于,包括管理設(shè)備以及如上所述的存儲(chǔ)設(shè)備;
[0042]所述管理設(shè)備,用于周期檢測(cè)各存儲(chǔ)設(shè)備中是否設(shè)置有指針,并向檢測(cè)到設(shè)置有指針的存儲(chǔ)設(shè)備發(fā)送數(shù)據(jù)整理消息。
[0043]通過(guò)由存儲(chǔ)設(shè)備在根據(jù)客戶端發(fā)送的寫請(qǐng)求在數(shù)據(jù)塊中寫入數(shù)據(jù)后,通知其他存儲(chǔ)設(shè)備建立指向所述數(shù)據(jù)塊的指針,避免了每次寫入數(shù)據(jù)時(shí),都需要依次更新所有存儲(chǔ)設(shè)備中的數(shù)據(jù),從而縮短了數(shù)據(jù)更新時(shí)間,提高了響應(yīng)速度。
【專利附圖】
【附圖說(shuō)明】[0044]圖1為本發(fā)明實(shí)施例提供的分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)的系統(tǒng)架構(gòu)示意圖;
[0045]圖2為本發(fā)明實(shí)施例提供的數(shù)據(jù)處理流程示意圖;
[0046]圖3為本發(fā)明實(shí)施例提供的數(shù)據(jù)處理流程示意圖;
[0047]圖4為本發(fā)明實(shí)施例提供的數(shù)據(jù)整理流程示意圖;
[0048]圖5為本發(fā)明實(shí)施例提供的存儲(chǔ)設(shè)備的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0049]下面將結(jié)合本發(fā)明中的附圖,對(duì)本發(fā)明中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明的一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0050]如圖1所示,為本發(fā)明實(shí)施例提供的分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)的系統(tǒng)架構(gòu)示意圖。在該分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中包含多個(gè)存儲(chǔ)設(shè)備,存儲(chǔ)設(shè)備可由服務(wù)器實(shí)現(xiàn),這些服務(wù)器構(gòu)成服務(wù)器集群。分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中,通常還設(shè)置有管理設(shè)備,管理設(shè)備中存儲(chǔ)有數(shù)據(jù)標(biāo)識(shí)和數(shù)據(jù)塊地址的對(duì)應(yīng)關(guān)系表,用于為訪問(wèn)該分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)的客戶端設(shè)備提供數(shù)據(jù)塊地址信息??蛻舳嗽O(shè)備與存儲(chǔ)設(shè)備和管理設(shè)備之間可采用c/s(客戶端/服務(wù)器)架構(gòu)。該分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中,數(shù)據(jù)采用多副本方式存儲(chǔ),通常為三個(gè)副本。
[0051]下面以每個(gè)數(shù)據(jù)塊有三個(gè)副本,并且各副本分別存儲(chǔ)于不同的存儲(chǔ)設(shè)備為例,對(duì)本發(fā)明實(shí)施例進(jìn)行詳細(xì)說(shuō)明。
[0052]圖2示出了基于上述分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)的數(shù)據(jù)寫處理流程。
[0053]當(dāng)客戶端需要向該分布式存儲(chǔ)系統(tǒng)寫入數(shù)據(jù)時(shí),該客戶端首先從管理設(shè)備獲取所要訪問(wèn)的數(shù)據(jù)的地址信息。
[0054]具體的,當(dāng)客戶端需要更新分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中存儲(chǔ)的數(shù)據(jù)時(shí),向管理設(shè)備發(fā)送地址請(qǐng)求,地址請(qǐng)求中攜帶了需要更新的數(shù)據(jù)的標(biāo)識(shí)。管理設(shè)備根據(jù)地址請(qǐng)求中的數(shù)據(jù)標(biāo)識(shí)查找本地存儲(chǔ)的數(shù)據(jù)標(biāo)識(shí)與數(shù)據(jù)地址的對(duì)應(yīng)關(guān)系表,并通過(guò)地址響應(yīng)將查找到的數(shù)據(jù)塊地址發(fā)送給客戶端。優(yōu)選的,管理設(shè)備可以根據(jù)負(fù)載均衡等策略,在存儲(chǔ)有與該數(shù)據(jù)標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)的所有存儲(chǔ)設(shè)備中,選擇負(fù)載最小的存儲(chǔ)設(shè)備,將該存儲(chǔ)設(shè)備中的與該數(shù)據(jù)標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)塊地址發(fā)送給客戶端。
[0055]需要說(shuō)明的是,若客戶端需要向分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)寫入新的數(shù)據(jù)時(shí),其向管理設(shè)備發(fā)送的地址請(qǐng)求中沒(méi)有攜帶數(shù)據(jù)標(biāo)識(shí),此種情況下,管理設(shè)備將未存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)塊的地址發(fā)送給客戶端。
[0056]客戶端獲取到數(shù)據(jù)塊地址后,向相應(yīng)存儲(chǔ)設(shè)備發(fā)送寫請(qǐng)求。寫請(qǐng)求中攜帶了數(shù)據(jù)塊地址和需要寫入的數(shù)據(jù)。
[0057]如圖2所示,存儲(chǔ)設(shè)備接收到寫請(qǐng)求后的處理流程可包括:
[0058]步驟201,存儲(chǔ)設(shè)備接收到寫請(qǐng)求后,根據(jù)該寫請(qǐng)求中攜帶的目標(biāo)數(shù)據(jù)塊地址信息,定位到該寫請(qǐng)求的目標(biāo)數(shù)據(jù)塊。
[0059]步驟202,若該目標(biāo)數(shù)據(jù)塊中包含指向該目標(biāo)數(shù)據(jù)塊副本的指針,則轉(zhuǎn)入步驟203,否則,轉(zhuǎn)入步驟204。
[0060]步驟203,存儲(chǔ)設(shè)備根據(jù)該指針將寫請(qǐng)求重定向到存儲(chǔ)有該目標(biāo)數(shù)據(jù)塊副本的存儲(chǔ)設(shè)備。
[0061]步驟204,存儲(chǔ)設(shè)備在該目標(biāo)數(shù)據(jù)塊中寫入數(shù)據(jù),并向存儲(chǔ)有該目標(biāo)數(shù)據(jù)塊副本的所有其它存儲(chǔ)設(shè)備發(fā)送指針設(shè)置消息,以指示在該目標(biāo)數(shù)據(jù)塊的副本中設(shè)置指向該目標(biāo)數(shù)據(jù)塊的指針。
[0062]進(jìn)一步的,在本發(fā)明實(shí)施例提供的流程中,若存儲(chǔ)設(shè)備接收到其他存儲(chǔ)設(shè)備發(fā)送的指針設(shè)置消息后,在指針設(shè)置消息所指示的目標(biāo)數(shù)據(jù)塊的副本中設(shè)置指向該目標(biāo)數(shù)據(jù)塊的指針。
[0063]上述流程中,當(dāng)存儲(chǔ)有該目標(biāo)數(shù)據(jù)塊副本的存儲(chǔ)設(shè)備接收到重定向來(lái)的寫請(qǐng)求后,由于該存儲(chǔ)設(shè)備上的該目標(biāo)數(shù)據(jù)塊副本中沒(méi)有設(shè)置指針(指針?biāo)赶虻臄?shù)據(jù)塊,其中不再會(huì)設(shè)置指針),因此根據(jù)接收到的寫請(qǐng)求進(jìn)行數(shù)據(jù)寫操作,并向存儲(chǔ)有該數(shù)據(jù)塊副本的所有其它存儲(chǔ)設(shè)備發(fā)送指針設(shè)置消息,以指示在該數(shù)據(jù)塊的副本中設(shè)置指向該數(shù)據(jù)塊的指針。
[0064]上述流程中,當(dāng)存儲(chǔ)設(shè)備接收到其它存儲(chǔ)設(shè)備發(fā)送來(lái)的指針設(shè)置消息后,根據(jù)該指針設(shè)置消息定位到本設(shè)備上的相應(yīng)數(shù)據(jù)塊副本,若該數(shù)據(jù)塊副本中設(shè)置有指針,則根據(jù)該指針設(shè)置消息中攜帶的完成數(shù)據(jù)寫操作的數(shù)據(jù)塊的地址,更新該數(shù)據(jù)塊副本中的指針,若該數(shù)據(jù)塊副本中沒(méi)有設(shè)置指針,則根據(jù)該指針設(shè)置消息中攜帶的完成數(shù)據(jù)寫操作的數(shù)據(jù)塊的地址,在該數(shù)據(jù)塊副本中設(shè)置指針。
[0065]下面以一具體應(yīng)用場(chǎng)景對(duì)上述流程進(jìn)行說(shuō)明。本應(yīng)用場(chǎng)景中,客戶端需要更新數(shù)據(jù)ID=I的數(shù)據(jù),該數(shù)據(jù)有三個(gè)副本,分別存儲(chǔ)于存儲(chǔ)設(shè)備NI的數(shù)據(jù)塊B1、存儲(chǔ)設(shè)備N2的數(shù)據(jù)塊B2和存儲(chǔ)設(shè)備N3的數(shù)據(jù)塊B3,其中,數(shù)據(jù)塊BI中存儲(chǔ)有原始數(shù)據(jù),數(shù)據(jù)塊B2和數(shù)據(jù)塊B3中存儲(chǔ)有指向數(shù)據(jù)塊BI的指針。
[0066]當(dāng)存儲(chǔ)設(shè)備N2接收到寫請(qǐng)求后,獲取其中攜帶的數(shù)據(jù)塊B2的地址以及值為I的數(shù)據(jù)ID,根據(jù)數(shù)據(jù)塊B2的地址定位到數(shù)據(jù)塊B2,發(fā)現(xiàn)數(shù)據(jù)塊B2中存儲(chǔ)的為指向數(shù)據(jù)塊BI的指針,因此存儲(chǔ)設(shè)備N2將寫請(qǐng)求中攜帶的數(shù)據(jù)塊地址修改為數(shù)據(jù)塊BI的地址,并將該寫請(qǐng)求重定向到存儲(chǔ)設(shè)備NI。
[0067]存儲(chǔ)設(shè)備NI接收到寫請(qǐng)求后,獲取其中攜帶的數(shù)據(jù)塊BI的地址以及值為I的數(shù)據(jù)ID,根據(jù)數(shù)據(jù)塊BI的地址定位到數(shù)據(jù)塊BI,并根據(jù)寫請(qǐng)求向數(shù)據(jù)塊BI中寫入數(shù)據(jù)。
[0068]在寫操作完成后,存儲(chǔ)設(shè)備NI向存儲(chǔ)設(shè)備N2和存儲(chǔ)設(shè)備N3發(fā)送指針設(shè)置消息,以指示在數(shù)據(jù)塊BI的副本中設(shè)置指向數(shù)據(jù)塊BI的指針。存儲(chǔ)設(shè)備N2接收到指針設(shè)置消息后,發(fā)現(xiàn)數(shù)據(jù)塊B2中已經(jīng)設(shè)置了指向數(shù)據(jù)塊BI的指針,因此不需要設(shè)置指針。存儲(chǔ)設(shè)備N3接收到指針設(shè)置消息后,發(fā)現(xiàn)數(shù)據(jù)塊B3中已經(jīng)設(shè)置了指向數(shù)據(jù)塊BI的指針,因此不需要設(shè)置指針。
[0069]優(yōu)選的,存儲(chǔ)設(shè)備NI完成數(shù)據(jù)寫操作后,還可以向管理設(shè)備發(fā)送數(shù)據(jù)更新消息,數(shù)據(jù)更新消息中攜帶了數(shù)據(jù)塊BI的地址和本次寫入的數(shù)據(jù)的標(biāo)識(shí)(ID=1),以通知管理設(shè)備更新該數(shù)據(jù)塊地址和標(biāo)識(shí)的對(duì)應(yīng)關(guān)系。
[0070]優(yōu)選的,存儲(chǔ)設(shè)備N2和存儲(chǔ)設(shè)備N3可以在接收到指針設(shè)置消息后,向管理設(shè)備發(fā)送指針設(shè)置成功消息,指針設(shè)置成功消息中攜帶了指針?biāo)跀?shù)據(jù)塊的地址和本次寫入的數(shù)據(jù)的標(biāo)識(shí),以通知管理設(shè)備更新該數(shù)據(jù)塊地址和標(biāo)識(shí)的對(duì)應(yīng)關(guān)系。
[0071]優(yōu)選的,存儲(chǔ)設(shè)備N2和存儲(chǔ)設(shè)備N3可以在接收到指針設(shè)置消息后,向發(fā)送該指針設(shè)置消息的存儲(chǔ)設(shè)備NI返回指針設(shè)置成功消息,以通知指針設(shè)置完成。存儲(chǔ)設(shè)備NI在接收到存儲(chǔ)設(shè)備N2和存儲(chǔ)設(shè)備N3返回的指針設(shè)置成功消息后,向發(fā)起該寫請(qǐng)求的客戶端返回?cái)?shù)據(jù)寫入成功消息。
[0072]對(duì)于數(shù)據(jù)塊B1、數(shù)據(jù)塊B2和數(shù)據(jù)塊B3中都存儲(chǔ)有原始數(shù)據(jù)的場(chǎng)景,若存儲(chǔ)設(shè)備NI接收到寫請(qǐng)求,則存儲(chǔ)設(shè)備NI根據(jù)寫請(qǐng)求在數(shù)據(jù)塊BI中寫入數(shù)據(jù),并向存儲(chǔ)設(shè)備N2和存儲(chǔ)設(shè)備N3發(fā)送指針設(shè)置消息,由存儲(chǔ)設(shè)備N2和存儲(chǔ)設(shè)備N3在數(shù)據(jù)塊B2和數(shù)據(jù)塊B3中設(shè)置指向數(shù)據(jù)塊BI的指針,并刪除數(shù)據(jù)塊B2和數(shù)據(jù)塊B3中存儲(chǔ)的原始數(shù)據(jù)。
[0073]優(yōu)選的,存儲(chǔ)設(shè)備NI完成數(shù)據(jù)寫操作后,還可以向管理設(shè)備發(fā)送數(shù)據(jù)更新消息,數(shù)據(jù)更新消息中攜帶了數(shù)據(jù)塊BI的地址和本次寫入的數(shù)據(jù)的標(biāo)識(shí),以通知管理設(shè)備更新該數(shù)據(jù)塊地址和標(biāo)識(shí)的對(duì)應(yīng)關(guān)系。
[0074]優(yōu)選的,存儲(chǔ)設(shè)備N2和存儲(chǔ)設(shè)備N3在完成指針設(shè)置后,向發(fā)送該指針設(shè)置消息的存儲(chǔ)設(shè)備NI返回指針設(shè)置成功消息,以通知指針設(shè)置完成。存儲(chǔ)設(shè)備NI在接收到存儲(chǔ)設(shè)備N2和存儲(chǔ)設(shè)備N3返回的指針設(shè)置成功消息后,向發(fā)起該寫請(qǐng)求的客戶端返回?cái)?shù)據(jù)寫入成功消息。
[0075]優(yōu)選的,存儲(chǔ)設(shè)備N2和存儲(chǔ)設(shè)備N3在設(shè)置指針成功后,可以向管理設(shè)備發(fā)送指針設(shè)置成功消息,指針設(shè)置成功消息中攜帶了指針?biāo)跀?shù)據(jù)塊的地址和本次寫入的數(shù)據(jù)的標(biāo)識(shí),以通知管理設(shè)備更新該數(shù)據(jù)塊地址和標(biāo)識(shí)的對(duì)應(yīng)關(guān)系。
[0076]優(yōu)選的,對(duì)于存儲(chǔ)設(shè)備N2和存儲(chǔ)設(shè)備N3,當(dāng)其接收到指針設(shè)置消息時(shí),可以在數(shù)據(jù)塊B2和數(shù)據(jù)塊B3中存儲(chǔ)的原始數(shù)據(jù)的前端設(shè)置指向數(shù)據(jù)塊BI的指針,并在向存儲(chǔ)設(shè)備BI返回指針設(shè)置成功消息之后,再將數(shù)據(jù)塊B2和數(shù)據(jù)塊B3中存儲(chǔ)的原始數(shù)據(jù)刪除,以進(jìn)一步提高數(shù)據(jù)處理的響應(yīng)速度。
[0077]上述流程中關(guān)于指針更新的一種替換方案是:存儲(chǔ)設(shè)備在該目標(biāo)數(shù)據(jù)塊中寫入數(shù)據(jù),并向存儲(chǔ)有該目標(biāo)數(shù)據(jù)塊副本的一個(gè)存儲(chǔ)設(shè)備發(fā)送指針設(shè)置消息,以指示在該目標(biāo)數(shù)據(jù)塊的副本中設(shè)置指向該目標(biāo)數(shù)據(jù)塊的指針,在該替換方案中,存儲(chǔ)設(shè)備接收到其它存儲(chǔ)設(shè)備發(fā)送的指針設(shè)置消息后,在指針設(shè)置消息所指示的目標(biāo)數(shù)據(jù)塊的副本中設(shè)置指向該目標(biāo)數(shù)據(jù)塊的指針,并向另一個(gè)存儲(chǔ)有該目標(biāo)數(shù)據(jù)塊的副本、且未接收到指針設(shè)置消息的存儲(chǔ)設(shè)備轉(zhuǎn)發(fā)指針設(shè)置消息。
[0078]例如,存儲(chǔ)設(shè)備NI完成數(shù)據(jù)寫入后,向存儲(chǔ)設(shè)備N2發(fā)送指針設(shè)置消息。存儲(chǔ)設(shè)備N2根據(jù)指針設(shè)置消息完成指針設(shè)置后,向存儲(chǔ)設(shè)備N3轉(zhuǎn)發(fā)該指針設(shè)置消息。存儲(chǔ)設(shè)備N3根據(jù)指針設(shè)置消息完成指針設(shè)置后,不再向其它存儲(chǔ)設(shè)備轉(zhuǎn)發(fā)指針設(shè)置消息,具體實(shí)現(xiàn)與現(xiàn)有技術(shù)中對(duì)分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中的多個(gè)存儲(chǔ)設(shè)備中的數(shù)據(jù)進(jìn)行更新類似,在此不再贅述。
[0079]圖3示出了基于上述分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)的數(shù)據(jù)讀處理流程,需要說(shuō)明的是,對(duì)于數(shù)據(jù)讀處理,客戶端同樣需要向管理設(shè)備獲取數(shù)據(jù)塊的地址,具體流程與數(shù)據(jù)寫處理時(shí)的獲取數(shù)據(jù)塊地址的流程相同,在此不再贅述。
[0080]如圖3所示,存儲(chǔ)設(shè)備接收到讀請(qǐng)求后的處理流程可包括:
[0081]步驟301,存儲(chǔ)設(shè)備接收到讀請(qǐng)求后,根據(jù)該讀請(qǐng)求中攜帶的目標(biāo)數(shù)據(jù)塊地址信息,定位到該讀請(qǐng)求的目標(biāo)數(shù)據(jù)塊。
[0082]步驟302,若該目標(biāo)數(shù)據(jù)塊中包含指向該目標(biāo)數(shù)據(jù)塊副本的指針,則轉(zhuǎn)入步驟303,否則,轉(zhuǎn)入304。
[0083]步驟303,存儲(chǔ)設(shè)備根據(jù)該指針將讀請(qǐng)求重定向到存儲(chǔ)有該目標(biāo)數(shù)據(jù)塊副本的存儲(chǔ)設(shè)備。
[0084]步驟304,存儲(chǔ)設(shè)備讀取目標(biāo)數(shù)據(jù)塊中的數(shù)據(jù),并將數(shù)據(jù)返回給客戶端。
[0085]下面以一具體應(yīng)用場(chǎng)景對(duì)上述流程進(jìn)行說(shuō)明。本應(yīng)用場(chǎng)景中,客戶端需要讀取數(shù)據(jù)ID=I的數(shù)據(jù),該數(shù)據(jù)有三個(gè)副本,分別存儲(chǔ)于存儲(chǔ)設(shè)備NI的數(shù)據(jù)塊B1、存儲(chǔ)設(shè)備N2的數(shù)據(jù)塊B2和存儲(chǔ)設(shè)備N3的數(shù)據(jù)塊B3,其中,數(shù)據(jù)塊BI和數(shù)據(jù)塊B2中存儲(chǔ)有指向數(shù)據(jù)塊B3的指針,數(shù)據(jù)塊B3中存儲(chǔ)有數(shù)據(jù)。
[0086]當(dāng)存儲(chǔ)設(shè)備NI接收到讀請(qǐng)求后,獲取其中攜帶的數(shù)據(jù)塊BI的地址以及值為I的數(shù)據(jù)ID,根據(jù)數(shù)據(jù)塊BI的地址定位到數(shù)據(jù)塊BI,發(fā)現(xiàn)數(shù)據(jù)塊BI中存儲(chǔ)的為指向數(shù)據(jù)塊B3的指針,因此將該讀請(qǐng)求中攜帶的數(shù)據(jù)塊地址修改為數(shù)據(jù)塊B3的地址,并將該讀請(qǐng)求重定向到存儲(chǔ)設(shè)備N3。
[0087]存儲(chǔ)設(shè)備N3接收到該讀請(qǐng)求后,根據(jù)其中攜帶的數(shù)據(jù)塊B3的地址定位到數(shù)據(jù)塊B3,讀取數(shù)據(jù)塊B3中存儲(chǔ)的數(shù)據(jù),并將該數(shù)據(jù)返回給客戶端。
[0088]圖4示出了基于上述分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)的數(shù)據(jù)整理流程,管理設(shè)備會(huì)周期檢測(cè)分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中的所有存儲(chǔ)設(shè)備中是否存在指針,并在檢測(cè)到指針后,向該指針?biāo)诘拇鎯?chǔ)設(shè)備發(fā)送數(shù)據(jù)整理消息,以通知該存儲(chǔ)設(shè)備讀取該指針指向的數(shù)據(jù)塊中的數(shù)據(jù),并進(jìn)行相應(yīng)處理,以提高數(shù)據(jù)分布式數(shù)據(jù)處理系統(tǒng)中的數(shù)據(jù)的一致性。
[0089]如圖4所示,存儲(chǔ)設(shè)備接收到數(shù)據(jù)整理消息后的處理流程可包括:
[0090]步驟401,存儲(chǔ)設(shè)備根據(jù)數(shù)據(jù)整理消息,查詢本設(shè)備存儲(chǔ)的數(shù)據(jù)塊中設(shè)置的指針。
[0091]步驟402,存儲(chǔ)設(shè)備針對(duì)查詢到的每個(gè)指針,讀取該指針指向的數(shù)據(jù)塊中的數(shù)據(jù)。
[0092]步驟403,存儲(chǔ)設(shè)備將讀取到的數(shù)據(jù)寫入該指針?biāo)诘臄?shù)據(jù)塊中,并刪除該數(shù)據(jù)塊中的指針。
[0093]在實(shí)際應(yīng)用中,本發(fā)明實(shí)施例中提供的數(shù)據(jù)處理方法主要用于存在大量寫操作的分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中,以最大化的提高數(shù)據(jù)處理速度。
[0094]基于與上述方法實(shí)施例相同的技術(shù)構(gòu)思,本發(fā)明實(shí)施例中提供了一種存儲(chǔ)設(shè)備,如圖5所示,該存儲(chǔ)設(shè)備包括:
[0095]寫操作處理單元501,用于在本設(shè)備接收到寫請(qǐng)求后,根據(jù)所述寫請(qǐng)求確定出目標(biāo)數(shù)據(jù)塊,若定出的目標(biāo)數(shù)據(jù)塊中包含指向所述目標(biāo)數(shù)據(jù)塊的副本的指針時(shí),則根據(jù)該指針將所述寫請(qǐng)求重定向到存儲(chǔ)該副本的存儲(chǔ)設(shè)備,否則,在所述寫請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊中寫入數(shù)據(jù);
[0096]通知單元502,用于在所述寫操作處理單元501在所述寫請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊中寫入數(shù)據(jù)后,向存儲(chǔ)有所述目標(biāo)數(shù)據(jù)塊的副本的所有存儲(chǔ)設(shè)備發(fā)送指針設(shè)置消息,以指示在所述目標(biāo)數(shù)據(jù)塊的副本中設(shè)置指向所述寫請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊的指針。
[0097]所述通知單元502,具體用于在在所述寫操作處理單元501在所述寫請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊中寫入數(shù)據(jù)后,向存儲(chǔ)有所述目標(biāo)數(shù)據(jù)塊的副本的所有存儲(chǔ)設(shè)備發(fā)送指針設(shè)置消息。
[0098]所述存儲(chǔ)設(shè)備還包括指針設(shè)置單元503 ;
[0099]所述指針設(shè)置單元503,用于在本設(shè)備接收到其他存儲(chǔ)設(shè)備發(fā)送的指針設(shè)置消息后,在所述指針設(shè)置消息所指示的目標(biāo)數(shù)據(jù)塊的副本中設(shè)置指向該目標(biāo)數(shù)據(jù)塊的指針。
[0100]所述通知單元502,具體用于在所述寫操作處理單元501在所述寫請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊中寫入數(shù)據(jù)后,向存儲(chǔ)有所述目標(biāo)數(shù)據(jù)塊的副本的一個(gè)存儲(chǔ)設(shè)備發(fā)送指針設(shè)置消
肩、O
[0101]所述存儲(chǔ)設(shè)備還包括指針設(shè)置單元503 ;
[0102]所述指針設(shè)置單元503,用于在本設(shè)備接收到其它存儲(chǔ)設(shè)備發(fā)送的指針設(shè)置消息后,在所述指針設(shè)置消息所指示的目標(biāo)數(shù)據(jù)塊的副本中設(shè)置指向該目標(biāo)數(shù)據(jù)塊的指針,并向另一個(gè)存儲(chǔ)有該目標(biāo)數(shù)據(jù)塊的副本、且未接收到所述指針設(shè)置消息的存儲(chǔ)設(shè)備轉(zhuǎn)發(fā)所述指針設(shè)置消息。
[0103]所述分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中還包括管理設(shè)備,所述存儲(chǔ)設(shè)備還包括:
[0104]數(shù)據(jù)整理單元504,用于在本設(shè)備接收到管理設(shè)備發(fā)送的數(shù)據(jù)整理消息后,根據(jù)所述數(shù)據(jù)整理消息,查詢本設(shè)備存儲(chǔ)的數(shù)據(jù)塊中設(shè)置的指針,并針對(duì)查詢到的每個(gè)指針,讀取該指針指向的數(shù)據(jù)塊中的數(shù)據(jù),將讀取到的數(shù)據(jù)寫入該指針?biāo)诘臄?shù)據(jù)塊中,并刪除該數(shù)據(jù)塊中的指針;其中,所述數(shù)據(jù)整理消息為所述管理設(shè)備周期檢測(cè)各存儲(chǔ)設(shè)備中是否設(shè)置有指針,并向檢測(cè)到設(shè)置有指針的存儲(chǔ)設(shè)備發(fā)送的。
[0105]所述存儲(chǔ)設(shè)備還包括:
[0106]讀操作處理單元505,用于在本設(shè)備接收到讀請(qǐng)求后確定出目標(biāo)數(shù)據(jù)塊,若確定出的目標(biāo)數(shù)據(jù)塊中包含指向所述讀請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊的副本的指針,則根據(jù)該指針將所述讀請(qǐng)求重定向到存儲(chǔ)該副本的存儲(chǔ)設(shè)備;否則,讀取所述讀請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊中的數(shù)據(jù)。
[0107]所述分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中還包括管理設(shè)備,所述存儲(chǔ)設(shè)備接收到的寫請(qǐng)求是由客戶端從所述管理設(shè)備獲取到寫請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊的地址后根據(jù)該地址發(fā)送的;所述存儲(chǔ)設(shè)備還包括更新請(qǐng)求單元506 ;
[0108]所述更新請(qǐng)求單元506,用于在所述寫操作處理單元501在所述寫請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊中寫入數(shù)據(jù)后,向所述管理設(shè)備發(fā)送數(shù)據(jù)更新消息,所述數(shù)據(jù)更新消息中攜帶了更新后的數(shù)據(jù)的標(biāo)識(shí)和所述目標(biāo)數(shù)據(jù)塊的地址的對(duì)應(yīng)關(guān)系,以通知所述管理設(shè)備更新本地存儲(chǔ)的數(shù)據(jù)標(biāo)識(shí)和數(shù)據(jù)塊地址的對(duì)應(yīng)關(guān)系;以及,用于在所述指針設(shè)置單元503在目標(biāo)數(shù)據(jù)塊的副本中設(shè)置指向該目標(biāo)數(shù)據(jù)塊的指針后,向所述管理設(shè)備發(fā)送數(shù)據(jù)更新消息,所述數(shù)據(jù)更新消息中攜帶了更新后的數(shù)據(jù)的標(biāo)識(shí)和所述目標(biāo)數(shù)據(jù)塊的副本的地址,以通知所述管理設(shè)備更新本地存儲(chǔ)的數(shù)據(jù)標(biāo)識(shí)和數(shù)據(jù)塊地址的對(duì)應(yīng)關(guān)系。
[0109]本發(fā)明實(shí)施例中還提供了一種分布式數(shù)據(jù)處理系統(tǒng),該系統(tǒng)包括管理設(shè)備以及如上所述的存儲(chǔ)設(shè)備;
[0110]所述管理設(shè)備,用于周期檢測(cè)各存儲(chǔ)設(shè)備中是否設(shè)置有指針,并向檢測(cè)到設(shè)置有指針的存儲(chǔ)設(shè)備發(fā)送數(shù)據(jù)整理消息。
[0111]通過(guò)以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以通過(guò)硬件,但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。
[0112]本領(lǐng)域技術(shù)人員可以理解附圖只是一個(gè)優(yōu)選實(shí)施例的示意圖,附圖中的模塊或流程并不一定是實(shí)施本發(fā)明所必須的。
[0113]本領(lǐng)域技術(shù)人員可以理解實(shí)施例中的裝置中的模塊可以按照實(shí)施例描述進(jìn)行分布于實(shí)施例的裝置中,也可以進(jìn)行相應(yīng)變化位于不同于本實(shí)施例的一個(gè)或多個(gè)裝置中。上述實(shí)施例的模塊可以合并為一個(gè)模塊,也可以進(jìn)一步拆分成多個(gè)子模塊。
[0114]上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
[0115]以上公開(kāi)的僅為本發(fā)明的幾個(gè)具體實(shí)施例,但是,本發(fā)明并非局限于此,任何本領(lǐng)域的技術(shù)人員能思之的變化都應(yīng)落入本發(fā)明的保護(hù)范圍。
【權(quán)利要求】
1.一種數(shù)據(jù)處理方法,應(yīng)用于分布式數(shù)據(jù)存儲(chǔ)系統(tǒng),其特征在于,所述方法包括: 存儲(chǔ)設(shè)備接收寫請(qǐng)求后,根據(jù)接收到的寫請(qǐng)求確定出目標(biāo)數(shù)據(jù)塊;若所述目標(biāo)數(shù)據(jù)塊中包含指向所述目標(biāo)數(shù)據(jù)塊的副本的指針,則根據(jù)該指針將所述寫請(qǐng)求重定向到存儲(chǔ)該副本的存儲(chǔ)設(shè)備,否則,在所述寫請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊中寫入數(shù)據(jù),并向存儲(chǔ)有所述目標(biāo)數(shù)據(jù)塊的副本的存儲(chǔ)設(shè)備發(fā)送指針設(shè)置消息,以指示在所述目標(biāo)數(shù)據(jù)塊的副本中設(shè)置指向所述寫請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊的指針。
2.如權(quán)利要求1所述的方法,其特征在于,所述向存儲(chǔ)有所述目標(biāo)數(shù)據(jù)塊的副本的存儲(chǔ)設(shè)備發(fā)送指針設(shè)置消息,具體包括: 向存儲(chǔ)有所述目標(biāo)數(shù)據(jù)塊的副本的所有存儲(chǔ)設(shè)備發(fā)送指針設(shè)置消息。
3.如權(quán)利要求2所述的方法,其特征在于,還包括: 所述存儲(chǔ)設(shè)備接收到其它存儲(chǔ)設(shè)備發(fā)送的指針設(shè)置消息后,在所述指針設(shè)置消息所指示的目標(biāo)數(shù)據(jù)塊的副本中設(shè)置指向該目標(biāo)數(shù)據(jù)塊的指針。
4.如權(quán)利要求1所述的方法,其特征在于,所述向存儲(chǔ)有所述目標(biāo)數(shù)據(jù)塊的副本的存儲(chǔ)設(shè)備發(fā)送指針設(shè)置消息,具體包括: 向存儲(chǔ)有所述目標(biāo)數(shù)據(jù)塊的副本的一個(gè)存儲(chǔ)設(shè)備發(fā)送指針設(shè)置消息。
5.如權(quán)利要求4所述的方法,其特征在于,還包括: 所述存儲(chǔ)設(shè)備接收到其它存儲(chǔ)設(shè)備發(fā)送的指針設(shè)置消息后,在所述指針設(shè)置消息所指示的目標(biāo)數(shù)據(jù)塊的副本中設(shè)置指向該目標(biāo)數(shù)據(jù)塊的指針,并向另一個(gè)存儲(chǔ)有該目標(biāo)數(shù)據(jù)塊的副本、且未接收到所述指針設(shè)置消息的存儲(chǔ)設(shè)備轉(zhuǎn)發(fā)所述指針設(shè)置消息。
6.如權(quán)利要求1所述的方法,其特征在于,所述分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中還包括管理設(shè)備,所述方法還包括: 存儲(chǔ)設(shè)備接收所述管理設(shè)備發(fā)送的數(shù)據(jù)整理消息;其中,所述數(shù)據(jù)整理消息為所述管理設(shè)備周期檢 測(cè)各存儲(chǔ)設(shè)備中是否設(shè)置有指針,并向檢測(cè)到設(shè)置有指針的存儲(chǔ)設(shè)備發(fā)送的; 所述存儲(chǔ)設(shè)備根據(jù)所述數(shù)據(jù)整理消息,查詢本設(shè)備存儲(chǔ)的數(shù)據(jù)塊中設(shè)置的指針,并針對(duì)查詢到的每個(gè)指針,讀取該指針指向的數(shù)據(jù)塊中的數(shù)據(jù),將讀取到的數(shù)據(jù)寫入該指針?biāo)诘臄?shù)據(jù)塊中,并刪除該數(shù)據(jù)塊中的指針。
7.如權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 存儲(chǔ)設(shè)備接收到讀請(qǐng)求后,根據(jù)接收到的讀請(qǐng)求確定出目標(biāo)數(shù)據(jù)塊;若所述讀請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊中包含指向所述讀請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊的副本的指針,則所述存儲(chǔ)設(shè)備根據(jù)該指針將所述讀請(qǐng)求重定向到存儲(chǔ)該副本的存儲(chǔ)設(shè)備;否則,所述存儲(chǔ)設(shè)備讀取所述讀請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊中的數(shù)據(jù)。
8.如權(quán)利要求1所述的方法,其特征在于,所述分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中還包括管理設(shè)備,所述存儲(chǔ)設(shè)備接收到的寫請(qǐng)求是由客戶端從所述管理設(shè)備獲取到寫請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊的地址后根據(jù)該地址發(fā)送的; 所述存儲(chǔ)設(shè)備在所述寫請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊中寫入數(shù)據(jù),之后還包括: 所述存儲(chǔ)設(shè)備向所述管理設(shè)備發(fā)送數(shù)據(jù)更新消息,所述數(shù)據(jù)更新消息中攜帶了更新后的數(shù)據(jù)的標(biāo)識(shí)和所述目標(biāo)數(shù)據(jù)塊的地址的對(duì)應(yīng)關(guān)系,以通知所述管理設(shè)備更新本地存儲(chǔ)的數(shù)據(jù)標(biāo)識(shí)和數(shù)據(jù)塊地址的對(duì)應(yīng)關(guān)系;所述存儲(chǔ)設(shè)備在所述指針設(shè)置消息所指示的目標(biāo)數(shù)據(jù)塊的副本中設(shè)置指向該目標(biāo)數(shù)據(jù)塊的指針,之后還包括: 所述存儲(chǔ)設(shè)備向所述管理設(shè)備發(fā)送數(shù)據(jù)更新消息,所述數(shù)據(jù)更新消息中攜帶了更新后的數(shù)據(jù)的標(biāo)識(shí)和所述目標(biāo)數(shù)據(jù)塊的副本的地址,以通知所述管理設(shè)備更新本地存儲(chǔ)的數(shù)據(jù)標(biāo)識(shí)和數(shù)據(jù)塊地址的對(duì)應(yīng)關(guān)系。
9.一種存儲(chǔ)設(shè)備,應(yīng)用于分布式數(shù)據(jù)存儲(chǔ)系統(tǒng),其特征在于,所述存儲(chǔ)設(shè)備包括: 寫操作處理單元,用于在本設(shè)備接收到寫請(qǐng)求后,根據(jù)所述寫請(qǐng)求確定出目標(biāo)數(shù)據(jù)塊,若定出的目標(biāo)數(shù)據(jù)塊中包含指向所述目標(biāo)數(shù)據(jù)塊的副本的指針時(shí),則根據(jù)該指針將所述寫請(qǐng)求重定向到存儲(chǔ)該副本的存儲(chǔ)設(shè)備,否則,在所述寫請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊中寫入數(shù)據(jù); 通知單元,用于在所述寫操作處理單元在所述寫請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊中寫入數(shù)據(jù)后,向存儲(chǔ)有所述目標(biāo)數(shù)據(jù)塊的副本的存儲(chǔ)設(shè)備發(fā)送指針設(shè)置消息,以指示在所述目標(biāo)數(shù)據(jù)塊的副本中設(shè)置指向所述寫請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊的指針。
10.如權(quán)利要求9所述的存儲(chǔ)設(shè)備,其特征在于,所述通知單元,具體用于在所述寫操作處理單元在所述寫請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊中寫入數(shù)據(jù)后,向存儲(chǔ)有所述目標(biāo)數(shù)據(jù)塊的副本的所有存儲(chǔ)設(shè)備發(fā)送指針設(shè)置消息。
11.如權(quán)利要求10所述的存儲(chǔ)設(shè)備,其特征在于,所述存儲(chǔ)設(shè)備還包括指針設(shè)置單元; 所述指針設(shè)置單元,用于在本設(shè)備接收到其他存儲(chǔ)設(shè)備發(fā)送的指針設(shè)置消息后,在所述指針設(shè)置消息所指示的目標(biāo)數(shù)據(jù)塊的副本中設(shè)置指向該目標(biāo)數(shù)據(jù)塊的指針。
12.如權(quán)利要求9所述的存儲(chǔ)設(shè)備,其特征在于,所述通知單元,具體用于在所述寫操作處理單元在所述寫請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊中寫入數(shù)據(jù)后,向存儲(chǔ)有所述目標(biāo)數(shù)據(jù)塊的副本的一個(gè)存儲(chǔ)設(shè)備發(fā)送指針設(shè)置消息。
13.如權(quán)利要求12所述的存儲(chǔ)設(shè)備,其特征在于,所述存儲(chǔ)設(shè)備還包括指針設(shè)置單元; 所述指針設(shè)置單元,用于在本設(shè)備接收到其它存儲(chǔ)設(shè)備發(fā)送的指針設(shè)置消息后,在所述指針設(shè)置消息所指示的目標(biāo)數(shù)據(jù)塊的副本中設(shè)置指向該目標(biāo)數(shù)據(jù)塊的指針,并向另一個(gè)存儲(chǔ)有該目標(biāo)數(shù)據(jù)塊的副本、且未接收到所述指針設(shè)置消息的存儲(chǔ)設(shè)備轉(zhuǎn)發(fā)所述指針設(shè)置消息。
14.如權(quán)利要求9所述的存儲(chǔ)設(shè)備,其特征在于,所述分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中還包括管理設(shè)備,所述存儲(chǔ)設(shè)備還包括: 數(shù)據(jù)整理單元,用于在本設(shè)備接收到管理設(shè)備發(fā)送的數(shù)據(jù)整理消息后,根據(jù)所述數(shù)據(jù)整理消息,查詢本設(shè)備存儲(chǔ)的數(shù)據(jù)塊中設(shè)置的指針,并針對(duì)查詢到的每個(gè)指針,讀取該指針指向的數(shù)據(jù)塊中的數(shù)據(jù),將讀取到的數(shù)據(jù)寫入該指針?biāo)诘臄?shù)據(jù)塊中,并刪除該數(shù)據(jù)塊中的指針;其中,所述數(shù)據(jù)整理消息為所述管理設(shè)備周期檢測(cè)各存儲(chǔ)設(shè)備中是否設(shè)置有指針,并向檢測(cè)到設(shè)置有指針的存儲(chǔ)設(shè)備發(fā)送的。
15.如權(quán)利要求9所述的存儲(chǔ)設(shè)備,其特征在于,所述存儲(chǔ)設(shè)備還包括: 讀操作處理單元,用于在本設(shè)備接收到讀請(qǐng)求后確定出目標(biāo)數(shù)據(jù)塊,若確定出的目標(biāo)數(shù)據(jù)塊中包含指向所述讀請(qǐng)求對(duì)應(yīng)的目標(biāo) 數(shù)據(jù)塊的副本的指針,則根據(jù)該指針將所述讀請(qǐng)求重定向到存儲(chǔ)該副本的存儲(chǔ)設(shè)備;否則,讀取所述讀請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊中的數(shù)據(jù)。
16.如權(quán)利要求9所述的存儲(chǔ)設(shè)備,其特征在于,所述分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中還包括管理設(shè)備,所述存儲(chǔ)設(shè)備接收到的寫請(qǐng)求是由客戶端從所述管理設(shè)備獲取到寫請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊的地址后根據(jù)該地址發(fā)送的;所述存儲(chǔ)設(shè)備還包括更新請(qǐng)求單元; 所述更新請(qǐng)求單元,用于在所述寫操作處理單元在所述寫請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊中寫入數(shù)據(jù)后,向所述管理設(shè)備發(fā)送數(shù)據(jù)更新消息,所述數(shù)據(jù)更新消息中攜帶了更新后的數(shù)據(jù)的標(biāo)識(shí)和所述目標(biāo)數(shù)據(jù)塊的地址的對(duì)應(yīng)關(guān)系,以通知所述管理設(shè)備更新本地存儲(chǔ)的數(shù)據(jù)標(biāo)識(shí)和數(shù)據(jù)塊地址的對(duì)應(yīng)關(guān)系;以及,用于在所述指針設(shè)置單元在目標(biāo)數(shù)據(jù)塊的副本中設(shè)置指向該目標(biāo)數(shù)據(jù)塊的指針后,向所述管理設(shè)備發(fā)送數(shù)據(jù)更新消息,所述數(shù)據(jù)更新消息中攜帶了更新后的數(shù)據(jù)的標(biāo)識(shí)和所述目標(biāo)數(shù)據(jù)塊的副本的地址,以通知所述管理設(shè)備更新本地存儲(chǔ)的數(shù)據(jù)標(biāo)識(shí)和數(shù)據(jù)塊地址的對(duì)應(yīng)關(guān)系。
17.—種分布式數(shù)據(jù)處理系統(tǒng),其特征在于,包括管理設(shè)備以及如權(quán)利要求14所述的存儲(chǔ)設(shè)備; 所述管理設(shè)備,用于周期檢測(cè)各存儲(chǔ)設(shè)備中是否設(shè)置有指針,并向檢測(cè)到設(shè)置有指針的存儲(chǔ)設(shè)備發(fā)送 數(shù)據(jù)整理消息。
【文檔編號(hào)】G06F3/06GK103902230SQ201210581713
【公開(kāi)日】2014年7月2日 申請(qǐng)日期:2012年12月27日 優(yōu)先權(quán)日:2012年12月27日
【發(fā)明者】杜宇健 申請(qǐng)人:中國(guó)移動(dòng)通信集團(tuán)公司