一種數(shù)據(jù)讀取方法及組裝裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種數(shù)據(jù)讀取方法及組裝裝置。
【背景技術(shù)】
[0002]現(xiàn)今,主要采用貫穿讀出式(Look Through)進(jìn)行數(shù)據(jù)讀取,這種數(shù)據(jù)讀取方法,在數(shù)據(jù)存儲(chǔ)裝置與請(qǐng)求裝置之間設(shè)緩存裝置,如:高速緩沖存儲(chǔ)器Cache、斷電即掉的非永久儲(chǔ)存RAM等,請(qǐng)求裝置發(fā)出的所有數(shù)據(jù)讀取請(qǐng)求都會(huì)首先送到緩存裝置,由緩存裝置先行在自身查找,如果命中,則將查找到的數(shù)據(jù)返回給請(qǐng)求裝置;如果未命中,則將數(shù)據(jù)讀取請(qǐng)求傳給數(shù)據(jù)存儲(chǔ)裝置,從數(shù)據(jù)存儲(chǔ)裝置中獲得需要的數(shù)據(jù),再將獲得的數(shù)據(jù)返回給請(qǐng)求裝置,發(fā)明人經(jīng)研宄發(fā)現(xiàn),該種數(shù)據(jù)讀取方法讀取效率較低。
【發(fā)明內(nèi)容】
[0003]本發(fā)明實(shí)施例的目的在于提供一種數(shù)據(jù)讀取方法及組裝裝置,旨在提高數(shù)據(jù)讀取效率。
[0004]本發(fā)明實(shí)施例是這樣實(shí)現(xiàn)的:
[0005]第一方面,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)讀取方法,應(yīng)用于數(shù)據(jù)讀取系統(tǒng),所述數(shù)據(jù)讀取系統(tǒng)中包括請(qǐng)求裝置、組裝裝置和數(shù)據(jù)存儲(chǔ)裝置,所述數(shù)據(jù)存儲(chǔ)裝置中包括多個(gè)存儲(chǔ)節(jié)點(diǎn),所述請(qǐng)求裝置所需讀取的數(shù)據(jù)由多個(gè)子數(shù)據(jù)構(gòu)成,所述多個(gè)子數(shù)據(jù)分布式存儲(chǔ)在所述多個(gè)存儲(chǔ)節(jié)點(diǎn)中,所述方法包括:
[0006]所述組裝裝置獲得所述請(qǐng)求裝置發(fā)送的數(shù)據(jù)讀取請(qǐng)求,所述數(shù)據(jù)讀取請(qǐng)求中包括,構(gòu)成所述請(qǐng)求裝置所需讀取的數(shù)據(jù)的所述多個(gè)子數(shù)據(jù)與所述多個(gè)存儲(chǔ)節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系;
[0007]將所述數(shù)據(jù)讀取請(qǐng)求拆分為多個(gè)子請(qǐng)求,所述多個(gè)子請(qǐng)求與所述多個(gè)子數(shù)據(jù)一一對(duì)應(yīng),所述多個(gè)子請(qǐng)求分別用于請(qǐng)求讀取對(duì)應(yīng)的子數(shù)據(jù);
[0008]將每個(gè)所述子請(qǐng)求發(fā)送至該子請(qǐng)求對(duì)應(yīng)的子數(shù)據(jù)所在的存儲(chǔ)節(jié)點(diǎn);
[0009]獲得所述存儲(chǔ)節(jié)點(diǎn)反饋的每個(gè)子請(qǐng)求的子請(qǐng)求反饋;
[0010]將獲得的所有所述子請(qǐng)求反饋進(jìn)行組裝,獲得所述數(shù)據(jù)讀取請(qǐng)求的讀取反饋;
[0011]將所述讀取反饋發(fā)送至所述請(qǐng)求裝置。
[0012]結(jié)合第一方面,本發(fā)明實(shí)施例提供了第一方面的第一種可能實(shí)施方式,其中,所述數(shù)據(jù)讀取系統(tǒng)還包括緩存裝置,所述將所述讀取反饋發(fā)送至所述請(qǐng)求裝置,包括:
[0013]將所述讀取反饋發(fā)送至所述緩存裝置,通過所述緩存裝置將所述讀取反饋發(fā)送至所述請(qǐng)求裝置。
[0014]結(jié)合第一方面的第一種可能的實(shí)施方式,本發(fā)明實(shí)施例提供了第一方面的第二種可能的實(shí)施方式,其中,所述組裝裝置獲得的所述數(shù)據(jù)讀取請(qǐng)求為物理頁請(qǐng)求,所述組裝裝置獲得所述請(qǐng)求裝置發(fā)送的數(shù)據(jù)讀取請(qǐng)求之后,還包括:將所述數(shù)據(jù)讀取請(qǐng)求轉(zhuǎn)換成邏輯頁序列;
[0015]所述將所述數(shù)據(jù)讀取請(qǐng)求拆分為多個(gè)子請(qǐng)求,所述多個(gè)子請(qǐng)求與所述多個(gè)子數(shù)據(jù)一一對(duì)應(yīng),所述多個(gè)子請(qǐng)求分別用于請(qǐng)求讀取對(duì)應(yīng)的子數(shù)據(jù),包括:
[0016]將所述邏輯頁序列拆分為多個(gè)子請(qǐng)求,所述多個(gè)子請(qǐng)求與所述多個(gè)子數(shù)據(jù)一一對(duì)應(yīng),所述多個(gè)子請(qǐng)求分別用于請(qǐng)求讀取對(duì)應(yīng)的子數(shù)據(jù);
[0017]所述將所述讀取反饋發(fā)送至所述緩存裝置,通過所述緩存裝置將所述讀取反饋發(fā)送至所述請(qǐng)求裝置,包括:
[0018]將獲得的所述讀取反饋轉(zhuǎn)換成邏輯頁,將所述邏輯頁發(fā)送至所述緩存裝置,通過所述緩存裝置將所述邏輯頁發(fā)送至所述請(qǐng)求裝置。
[0019]結(jié)合第一方面的第一種可能的實(shí)施方式,本發(fā)明實(shí)施例提供了第一方面的第三種可能實(shí)施方式,其中,所述將每個(gè)所述子請(qǐng)求發(fā)送至該子請(qǐng)求對(duì)應(yīng)的子數(shù)據(jù)所在的存儲(chǔ)節(jié)點(diǎn),包括:
[0020]采用滑動(dòng)窗口將每個(gè)所述子請(qǐng)求發(fā)送至該子請(qǐng)求對(duì)應(yīng)的子數(shù)據(jù)所在的存儲(chǔ)節(jié)占.V,
[0021]所述獲得所述存儲(chǔ)節(jié)點(diǎn)反饋的每個(gè)子請(qǐng)求的子請(qǐng)求反饋,包括:
[0022]采用滑動(dòng)窗口獲得所述存儲(chǔ)節(jié)點(diǎn)反饋的每個(gè)子請(qǐng)求的子請(qǐng)求反饋;
[0023]所述將所述讀取反饋發(fā)送至所述緩存裝置,通過所述緩存裝置將所述讀取反饋發(fā)送至所述請(qǐng)求裝置,包括:
[0024]采用滑動(dòng)窗口將所述讀取反饋發(fā)送至所述緩存裝置,采用滑動(dòng)窗口通過所述緩存裝置將所述讀取反饋發(fā)送至所述請(qǐng)求裝置。
[0025]結(jié)合第一方面,或第一方面的第一種、第二種或第三種可能的實(shí)施方式,本發(fā)明實(shí)施例提供了第一方面的第四種可能的實(shí)施方式,其中,所述將每個(gè)所述子請(qǐng)求發(fā)送至該子請(qǐng)求對(duì)應(yīng)的子數(shù)據(jù)所在的存儲(chǔ)節(jié)點(diǎn)之后,還包括:
[0026]針對(duì)每個(gè)子請(qǐng)求,獲得所述存儲(chǔ)節(jié)點(diǎn)的應(yīng)答反饋,當(dāng)獲得所有所述子請(qǐng)求的應(yīng)答反饋之后,向所述請(qǐng)求裝置發(fā)送所述數(shù)據(jù)讀取請(qǐng)求發(fā)送成功的信息;
[0027]當(dāng)超過預(yù)設(shè)時(shí)限,未獲得針對(duì)某一個(gè)子請(qǐng)求,所述存儲(chǔ)節(jié)點(diǎn)的應(yīng)答反饋時(shí),重新將所述子請(qǐng)求發(fā)送至所述子請(qǐng)求用于讀取的所述子數(shù)據(jù)對(duì)應(yīng)的存儲(chǔ)節(jié)點(diǎn)。
[0028]第二方面,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)組裝裝置,應(yīng)用于數(shù)據(jù)讀取系統(tǒng),所述數(shù)據(jù)讀取系統(tǒng)中包括請(qǐng)求裝置、數(shù)據(jù)存儲(chǔ)裝置和所述組裝裝置,所述數(shù)據(jù)存儲(chǔ)裝置中包括多個(gè)存儲(chǔ)節(jié)點(diǎn),所述請(qǐng)求裝置所需讀取的數(shù)據(jù)由多個(gè)子數(shù)據(jù)構(gòu)成,所述多個(gè)子數(shù)據(jù)分布式存儲(chǔ)在所述多個(gè)存儲(chǔ)節(jié)點(diǎn)中,所述組裝裝置包括:
[0029]第一獲得單元,用于獲得所述請(qǐng)求裝置發(fā)送的數(shù)據(jù)讀取請(qǐng)求,所述數(shù)據(jù)讀取請(qǐng)求中包括,構(gòu)成所述請(qǐng)求裝置所需讀取的數(shù)據(jù)的所述多個(gè)子數(shù)據(jù)與所述多個(gè)存儲(chǔ)節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系;
[0030]拆分單元,用于將所述第一獲得單元獲得的所述數(shù)據(jù)讀取請(qǐng)求拆分為多個(gè)子請(qǐng)求,所述多個(gè)子請(qǐng)求與所述多個(gè)子數(shù)據(jù)一一對(duì)應(yīng),所述多個(gè)子請(qǐng)求分別用于請(qǐng)求讀取對(duì)應(yīng)的子數(shù)據(jù);
[0031]第一發(fā)送單元,用于將所述拆分單元拆分的每個(gè)所述子請(qǐng)求發(fā)送至該子請(qǐng)求對(duì)應(yīng)的子數(shù)據(jù)所在的存儲(chǔ)節(jié)點(diǎn);
[0032]第二獲得單元,用于獲得所述存儲(chǔ)節(jié)點(diǎn)反饋的每個(gè)子請(qǐng)求的子請(qǐng)求反饋;
[0033]組裝單元,用于將獲得的所有所述子請(qǐng)求反饋進(jìn)行組裝,獲得所述數(shù)據(jù)讀取請(qǐng)求的讀取反饋;
[0034]第二發(fā)送單元,用于將所述組裝單元組裝的所述讀取反饋發(fā)送至所述請(qǐng)求裝置。
[0035]結(jié)合第二方面,本發(fā)明實(shí)施例提供了第二方面的第一種可能實(shí)施方式,其中,所述數(shù)據(jù)讀取系統(tǒng)還包括緩存裝置,所述第二發(fā)送單元具體用于,將所述讀取反饋發(fā)送至所述緩存裝置,通過所述緩存裝置將所述讀取反饋發(fā)送至所述請(qǐng)求裝置。
[0036]結(jié)合第二方面的第一種可能的實(shí)施方式,本發(fā)明實(shí)施例提供了第二方面的第二種可能的實(shí)施方式,其中,所述第一獲得單元獲得的所述數(shù)據(jù)讀取請(qǐng)求為物理頁請(qǐng)求,所述組裝裝置還包括:
[0037]轉(zhuǎn)換單元,用于在所述第一獲得單元獲得所述請(qǐng)求裝置發(fā)送的數(shù)據(jù)讀取請(qǐng)求之后,將所述數(shù)據(jù)讀取請(qǐng)求轉(zhuǎn)換成邏輯頁序列;
[0038]所述拆分單元用于,將所述邏輯頁序列拆分為多個(gè)子請(qǐng)求,所述多個(gè)子請(qǐng)求與所述多個(gè)子數(shù)據(jù)一一對(duì)應(yīng),所述多個(gè)子請(qǐng)求分別用于請(qǐng)求讀取對(duì)應(yīng)的子數(shù)據(jù);
[0039]所述第二發(fā)送單元用于,將獲得的所述讀取反饋轉(zhuǎn)換成邏輯頁,將所述邏輯頁發(fā)送至所述緩存裝置,通過所述緩存裝置將所述邏輯頁發(fā)送至所述請(qǐng)求裝置。
[0040]結(jié)合第二方面的第一種可能的實(shí)施方式,本發(fā)明實(shí)施例提供了第二方面的第三種可能實(shí)施方式,其中,所述第一發(fā)送單元用于,采用滑動(dòng)窗口將每個(gè)所述子請(qǐng)求發(fā)送至該子請(qǐng)求對(duì)應(yīng)的子數(shù)據(jù)所在的存儲(chǔ)節(jié)點(diǎn);
[0041]所述第二獲得單元用于,采用滑動(dòng)窗口獲得所述存儲(chǔ)節(jié)點(diǎn)反饋的每個(gè)子請(qǐng)求的子請(qǐng)求反饋;
[0042]所述第二發(fā)送單元用于,采用滑動(dòng)窗口將所述讀取反饋發(fā)送至所述緩存裝置,采用滑動(dòng)窗口通過所述緩存裝置將所述讀取反饋發(fā)送至所述請(qǐng)求裝置。
[0043]結(jié)合第二方面,或第二方面的第一種、第二種或第三種可能的實(shí)施方式,本發(fā)明實(shí)施例提供了第二方面的第四種可能實(shí)施方式,其中,還包括:
[0044]第三獲得單元,用于在所述第一發(fā)送單元將每個(gè)所述子請(qǐng)求發(fā)送至該子請(qǐng)求對(duì)應(yīng)的子數(shù)據(jù)所在的存儲(chǔ)節(jié)點(diǎn)之后,針對(duì)每個(gè)子請(qǐng)求,獲得所述存儲(chǔ)節(jié)點(diǎn)的應(yīng)答反饋,當(dāng)獲得所有所述子請(qǐng)求的應(yīng)答反饋之后,向所述請(qǐng)求裝置發(fā)送所述數(shù)據(jù)讀取請(qǐng)求發(fā)送成功的信息;
[0045]當(dāng)超過預(yù)設(shè)時(shí)限,未獲得針對(duì)某一個(gè)子請(qǐng)求,所述存儲(chǔ)