數(shù)據(jù)讀取方法、裝置以及系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供的一種數(shù)據(jù)讀取方法、裝置及系統(tǒng),涉及數(shù)據(jù)讀取領(lǐng)域,所述數(shù)據(jù)讀取系統(tǒng)包括數(shù)據(jù)請求端、緩存以及存儲有數(shù)據(jù)的存儲節(jié)點,所述數(shù)據(jù)讀取裝置設(shè)置于所述緩存,采用數(shù)據(jù)預(yù)緩沖的方法進(jìn)行數(shù)據(jù)的讀取,與現(xiàn)有技術(shù)中緩存在接收到數(shù)據(jù)讀取之后才開始從存儲節(jié)點讀取數(shù)據(jù)不同,數(shù)據(jù)請求端向緩存發(fā)送的讀取請求指令中包含有需要讀取的數(shù)據(jù)的數(shù)量信息以及所述需要讀取的數(shù)據(jù)的地址信息,緩存在接收到讀取請求指令后就開始從存儲節(jié)點進(jìn)行預(yù)讀取,數(shù)據(jù)請求端直接就可以從緩存中讀取需要的數(shù)據(jù),采用這樣的方式,提高了讀命中率,進(jìn)一步提高了數(shù)據(jù)的讀取效率。
【專利說明】數(shù)據(jù)讀取方法、裝置以及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)存儲領(lǐng)域,具體而言,涉及數(shù)據(jù)讀取方法、裝置以及系統(tǒng)。
【背景技術(shù)】
[0002]目前常見數(shù)據(jù)讀取的流程為,數(shù)據(jù)請求端發(fā)送讀取數(shù)據(jù)請求,讀取數(shù)據(jù)請求會由緩存接收,并返回對讀取數(shù)據(jù)請求的應(yīng)答,數(shù)據(jù)請求端接收到應(yīng)答后,再向緩存發(fā)出讀取數(shù)據(jù)的指令,如果緩存中有需要讀取的數(shù)據(jù),則數(shù)據(jù)請求端直接從緩存中讀取,如果沒有,從硬盤中讀取。當(dāng)需要讀取的數(shù)據(jù)較大時,數(shù)據(jù)請求端會將數(shù)據(jù)分為多份,按批次讀取,在讀取完第一批數(shù)據(jù)后,再開始讀取第二批數(shù)據(jù),直到讀取完所有的數(shù)據(jù)。采用這樣的數(shù)據(jù)讀取方式,緩存命中率不高,而且整個讀取請求事務(wù)是串行處理機(jī)制,速度慢。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的在于提供一種數(shù)據(jù)讀取方法、裝置以及系統(tǒng),以改善目前讀取數(shù)據(jù)時緩存命中率不高、速度較慢的的問題。
[0004]為了實現(xiàn)上述目的,本發(fā)明實施例采用的技術(shù)方案如下:
[0005]第一方面,本發(fā)明實施例提供了一種數(shù)據(jù)讀取方法,應(yīng)用于數(shù)據(jù)讀取系統(tǒng),所述數(shù)據(jù)讀取系統(tǒng)包括數(shù)據(jù)請求端、緩存以及存儲有數(shù)據(jù)的存儲節(jié)點,所述方法包括:
[0006]所述緩存接收所述數(shù)據(jù)請求端發(fā)送的讀取請求指令,所述讀取請求指令包括需要讀取的數(shù)據(jù)的數(shù)量信息以及所述需要讀取的數(shù)據(jù)的地址信息;
[0007]向所述數(shù)據(jù)請求端發(fā)送應(yīng)答指令,在所述緩存中查找所述需要讀取的數(shù)據(jù);
[0008]如果所述緩存中沒有所述需要讀取的數(shù)據(jù),啟動預(yù)緩沖任務(wù),根據(jù)所述需要讀取的數(shù)據(jù)的地址信息從所述存儲節(jié)點讀取所述地址信息對應(yīng)的數(shù)據(jù);
[0009]所述緩存啟動數(shù)據(jù)返回任務(wù),將從所述存儲節(jié)點讀取的數(shù)據(jù)返回所述數(shù)據(jù)請求端;
[0010]所述預(yù)緩沖任務(wù)與所述數(shù)據(jù)返回任務(wù)同時執(zhí)行,相互獨立。
[0011]結(jié)合第一方面,本發(fā)明實施例提供了第一方面的第一種可能的實施方式,其中,所述從所述存儲節(jié)點讀取所述地址信息對應(yīng)的數(shù)據(jù),包括:從所述存儲節(jié)點一次讀取全部所述地址信息對應(yīng)的數(shù)據(jù);
[0012]所述將從所述存儲節(jié)點讀取的數(shù)據(jù)返回所述數(shù)據(jù)請求端,包括:將從所述存儲節(jié)點讀取的全部所述地址信息對應(yīng)的數(shù)據(jù)一次返回所述數(shù)據(jù)請求端。
[0013]結(jié)合第一方面,本發(fā)明實施例提供了第一方面的第二種可能的實施方式,其中,所述緩存分多個批次將所述需要讀取的數(shù)據(jù)返回所述數(shù)據(jù)請求端,所述緩存根據(jù)一次能從所述存儲節(jié)點讀取數(shù)據(jù)的數(shù)據(jù)量將所有所述需要讀取的數(shù)據(jù)的地址信息分為多組,如果所述緩存一個批次能夠返回數(shù)據(jù)量大于或等于一組所述需要讀取的數(shù)據(jù)的地址信息對應(yīng)的數(shù)據(jù)量,
[0014]所述從所述存儲節(jié)點讀取所述地址信息對應(yīng)的數(shù)據(jù),包括:從所述存儲節(jié)點讀取一組所述地址信息對應(yīng)的數(shù)據(jù);
[0015]所述將從所述存儲節(jié)點讀取的數(shù)據(jù)返回所述數(shù)據(jù)請求端,包括:
[0016]所述緩存將所述一組所述地址信息對應(yīng)的數(shù)據(jù)返回所述數(shù)據(jù)請求端;
[0017]所述方法還包括:重復(fù)上述過程,一直到所述緩存將所述需要讀取的數(shù)據(jù)全部讀取并返回所述數(shù)據(jù)請求端。
[0018]結(jié)合第一方面的第二種可能的實施方式,本發(fā)明實施例提供了第一方面的第三種可能的實施方式,其中,如果一個批次的數(shù)據(jù)能夠返回的數(shù)據(jù)量小于一組所述地址信息對應(yīng)的數(shù)據(jù)量,
[0019]所述緩存將所述一組所述地址信息對應(yīng)的數(shù)據(jù)返回所述數(shù)據(jù)請求端,包括:
[0020]所述緩存將所述一個批次的數(shù)據(jù)返回所述數(shù)據(jù)請求端,重復(fù)這個步驟,直到一組所述地址信息對應(yīng)的數(shù)據(jù)全部返回所述數(shù)據(jù)請求端。
[0021]第二方面,本發(fā)明實施例還提供了,一種數(shù)據(jù)讀取裝置,其特征在于,應(yīng)用于數(shù)據(jù)讀取系統(tǒng),所述數(shù)據(jù)讀取系統(tǒng)包括數(shù)據(jù)請求端、緩存以及存儲有數(shù)據(jù)的存儲節(jié)點,所述數(shù)據(jù)讀取裝置設(shè)置于所述緩存,所述裝置包括:
[0022]讀取請求指令接收單元,用于接收所述數(shù)據(jù)請求端發(fā)送的讀取請求指令,所述讀取請求指令包括需要讀取的數(shù)據(jù)的數(shù)量信息以及所述需要讀取的數(shù)據(jù)的地址信息;
[0023]應(yīng)答指令發(fā)送單元,用于向所述數(shù)據(jù)請求端發(fā)送應(yīng)答指令,并在所述緩存中查找所述需要讀取的數(shù)據(jù);
[0024]存儲數(shù)據(jù)讀取單元,用于如果所述緩存中沒有所述需要讀取的數(shù)據(jù),啟動預(yù)緩沖任務(wù),根據(jù)所述需要讀取的數(shù)據(jù)的地址信息從所述存儲節(jié)點讀取所述地址信息對應(yīng)的數(shù)據(jù);
[0025]數(shù)據(jù)返回單元,用于啟動數(shù)據(jù)返回任務(wù),將從所述存儲節(jié)點讀取的數(shù)據(jù)返回所述數(shù)據(jù)請求端。
[0026]結(jié)合第二方面,本發(fā)明實施例提供了第二方面的第一種可能的實施方式,其中,所述存儲數(shù)據(jù)讀取單元還用于:從所述存儲節(jié)點一次讀取全部所述地址信息對應(yīng)的數(shù)據(jù);
[0027]所述數(shù)據(jù)返回單元還用于:將從所述存儲節(jié)點讀取的全部所述地址信息對應(yīng)的數(shù)據(jù)一次返回所述數(shù)據(jù)請求端。
[0028]結(jié)合第二方面,本發(fā)明實施例提供了第二方面的第二種可能的實施方式,其中,所述緩存分多個批次將所述需要讀取的數(shù)據(jù)返回所述數(shù)據(jù)請求端,所述緩存根據(jù)一次能從所述存儲節(jié)點讀取數(shù)據(jù)的數(shù)據(jù)量將所有所述需要讀取的數(shù)據(jù)的地址信息分為多組,如果所述緩存一個批次能夠返回數(shù)據(jù)量大于或等于一組所述需要讀取的數(shù)據(jù)的地址信息對應(yīng)的數(shù)據(jù)量,
[0029]所述存儲數(shù)據(jù)讀取單元還用于:從所述存儲節(jié)點讀取一組所述地址信息對應(yīng)的數(shù)據(jù);
[0030]所述數(shù)據(jù)返回單元還用于:所述緩存將所述一組所述地址信息對應(yīng)的數(shù)據(jù)返回所述數(shù)據(jù)請求端。
[0031]結(jié)合第二方面的第二種可能的實施方式,本發(fā)明實施例提供了第二方面的第三種可能的實施方式,其中,如果一個批次的數(shù)據(jù)能夠返回的數(shù)據(jù)量小于一組所述地址信息對應(yīng)的數(shù)據(jù)量,
[0032]所述數(shù)據(jù)返回單元還用于:所述緩存將所述一個批次的數(shù)據(jù)返回所述數(shù)據(jù)請求端,重復(fù)這個步驟,直到一組所述地址信息對應(yīng)的數(shù)據(jù)全部返回所述數(shù)據(jù)請求端。
[0033]第三方面,本發(fā)明實施例還提供了一種數(shù)據(jù)讀取系統(tǒng),所述數(shù)據(jù)讀取系統(tǒng)包括數(shù)據(jù)請求端、緩存以及存儲有數(shù)據(jù)的存儲節(jié)點,
[0034]所述數(shù)據(jù)請求端向所述緩存發(fā)送讀取請求指令;
[0035]所述緩存接收所述數(shù)據(jù)請求端發(fā)送的讀取請求指令,所述讀取請求指令包括需要讀取的數(shù)據(jù)的數(shù)量信息以及所述需要讀取的數(shù)據(jù)的地址信息;
[0036]所述緩存向所述數(shù)據(jù)請求端發(fā)送應(yīng)答指令,在所述緩存中查找所述需要讀取的數(shù)據(jù);如果所述緩存中沒有所述需要讀取的數(shù)據(jù),根據(jù)所述需要讀取的數(shù)據(jù)的地址信息,所述緩存從所述存儲節(jié)點讀取所述地址信息對應(yīng)的數(shù)據(jù);
[0037]所述緩存將從所述存儲節(jié)點讀取的數(shù)據(jù)返回所述數(shù)據(jù)請求端。
[0038]結(jié)合第三方面,本發(fā)明實施例提供了第三方面的第一種可能的實施方式,其中,所述數(shù)據(jù)讀取系統(tǒng)應(yīng)用于分布式存儲系統(tǒng)。
[0039]本發(fā)明實施例提供的數(shù)據(jù)讀取方法、裝置以及系統(tǒng),采用數(shù)據(jù)預(yù)緩沖的方法進(jìn)行數(shù)據(jù)的讀取,與現(xiàn)有技術(shù)中緩存在接收到數(shù)據(jù)讀取之后才開始從存儲節(jié)點讀取數(shù)據(jù)不同,數(shù)據(jù)請求端向緩存發(fā)送的讀取請求指令中包含有需要讀取的數(shù)據(jù)的數(shù)量信息以及所述需要讀取的數(shù)據(jù)的地址信息,緩存在接收到讀取請求指令后就開始從存儲節(jié)點進(jìn)行預(yù)讀取,數(shù)據(jù)請求端直接就可以從緩存中讀取需要的數(shù)據(jù),采用這樣的方式,提高了讀命中率,進(jìn)一步提高了數(shù)據(jù)的讀取效率。
[0040]為使本發(fā)明的上述目的、特征和優(yōu)點能更明顯易懂,下文特舉較佳實施例,并配合所附附圖,作詳細(xì)說明如下。
【專利附圖】
【附圖說明】
[0041]為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對實施例中所需要使用的附圖作簡單地介紹,應(yīng)當(dāng)理解,以下附圖僅示出了本發(fā)明的某些實施例,因此不應(yīng)被看作是對范圍的限定,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他相關(guān)的附圖。通過附圖所示,本發(fā)明的上述及其它目的、特征和優(yōu)勢將更加清晰。在全部附圖中相同的附圖標(biāo)記指示相同的部分。并未刻意按實際尺寸等比例縮放繪制附圖,重點在于示出本發(fā)明的主旨。
[0042]圖1示出了本發(fā)明實施例所提供的一種數(shù)據(jù)讀取系統(tǒng)的結(jié)構(gòu)框圖;
[0043]圖2示出了本發(fā)明實施例所提供的一種數(shù)據(jù)讀取方法的流程圖;
[0044]圖3示出了本發(fā)明實施例所提供的另一種數(shù)據(jù)讀取方法的流程圖;
[0045]圖4示出了本發(fā)明實施例所提供的一種數(shù)據(jù)讀取裝置的結(jié)構(gòu)框圖;
[0046]圖5示出了本發(fā)明實施例所提供的另一種數(shù)據(jù)同步裝置的結(jié)構(gòu)框圖。
【具體實施方式】
[0047]下面將結(jié)合本發(fā)明實施例中附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。通常在此處附圖中描述和示出的本發(fā)明實施例的組件可以以各種不同的配置來布置和設(shè)計。因此,以下對在附圖中提供的本發(fā)明的實施例的詳細(xì)描述并非旨在限制要求保護(hù)的本發(fā)明的范圍,而是僅僅表示本發(fā)明的選定實施例?;诒景l(fā)明的實施例,本領(lǐng)域技術(shù)人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
[0048]云存儲是在云計算概念上延伸和發(fā)展出來的一個新的概念,是指通過集群應(yīng)用、網(wǎng)絡(luò)技術(shù)或分布式文件系統(tǒng)等功能,將網(wǎng)絡(luò)中大量各種不同類型的存儲設(shè)備集合起來協(xié)同工作,共同對外提供數(shù)據(jù)存儲和業(yè)務(wù)訪問功能的一個系統(tǒng)。當(dāng)云計算系統(tǒng)運算和處理的核心是大量數(shù)據(jù)的存儲和管理時,云計算系統(tǒng)中就需要配置大量的存儲設(shè)備,那么云計算系統(tǒng)就轉(zhuǎn)變成為一個云存儲系統(tǒng),所以云存儲是一個以數(shù)據(jù)存儲和管理為核心的云計算系統(tǒng)。簡單來說,云存儲就是將儲存資源放到云上供人存取的一種新興方案。使用者可以在任何時間、任何地方,透過任何可連網(wǎng)的裝置連接到云上方便地存取數(shù)據(jù)。
[0049]目前常見應(yīng)用于云存儲系統(tǒng)中的數(shù)據(jù)讀取的流程為,數(shù)據(jù)請求端發(fā)送讀取請求指令,讀取請求會由緩存接收,并返回對讀取數(shù)據(jù)請求的應(yīng)答,數(shù)據(jù)請求端接收到應(yīng)答后,再向緩存發(fā)出讀取數(shù)據(jù)的指令,如果緩存中有需要讀取的數(shù)據(jù),則數(shù)據(jù)請求端直接從緩存中讀取,如果沒有,從硬盤中讀取。當(dāng)需要讀取的數(shù)據(jù)較大時,數(shù)據(jù)請求端會將數(shù)據(jù)分為多份,按按批次讀取,在讀取完第一批數(shù)據(jù)后,再開始讀取第二批數(shù)據(jù),直到讀取完所有的數(shù)據(jù)。發(fā)明人經(jīng)過長期觀察和研宄發(fā)現(xiàn),緩存命中率不高,而且整個讀取請求事務(wù)是串行處理機(jī)制,速度慢。
[0050]發(fā)明人為使現(xiàn)有的情況得到改善,提供了本發(fā)明實施例。數(shù)據(jù)請求端向緩存發(fā)送的讀取請求指令中包含有需要讀取的數(shù)據(jù)的數(shù)量信息以及所述需要讀取的數(shù)據(jù)的地址信息,緩存在接收到讀取請求指令后就開始從存儲節(jié)點進(jìn)行預(yù)讀取,在數(shù)據(jù)請求端發(fā)送讀取所述數(shù)據(jù)的指令時,緩存已經(jīng)將需要讀取的數(shù)據(jù)的全部或者部分預(yù)讀取了,數(shù)據(jù)請求端直接就可以從緩存中讀取需要的數(shù)據(jù),采用這樣的方式,提高了讀命中率,進(jìn)一步提高了數(shù)據(jù)的讀取效率。
[0051]參見圖1,本發(fā)明實施例應(yīng)用于數(shù)據(jù)讀取系統(tǒng),所述數(shù)據(jù)讀取系統(tǒng)包括數(shù)據(jù)請求端100、緩存200以及存儲有數(shù)據(jù)的存儲節(jié)點300。
[0052]參見圖2,本發(fā)明實施例提供了一種數(shù)據(jù)讀取方法,所述方法包括:
[0053]步驟101:所述緩存接收所述數(shù)據(jù)請求端發(fā)送的讀取請求指令,所述讀取請求指令包括需要讀取的數(shù)據(jù)的數(shù)量信息以及所述需要讀取的數(shù)據(jù)的地址信息。
[0054]緩存在收到讀取請求指令的同時也知道了需要讀取的數(shù)據(jù)的數(shù)量信息和地址信息,其中,所述緩存可以是分布式儲存系統(tǒng)中的緩存服務(wù)器,也可以是其他設(shè)備,本發(fā)明實施例不做限制。
[0055]步驟102:所述緩存向所述數(shù)據(jù)請求端發(fā)送應(yīng)答指令。
[0056]緩存向所述數(shù)據(jù)請求端發(fā)送應(yīng)答指令,表示可以執(zhí)行讀取數(shù)據(jù)的操作。
[0057]步驟103:所述緩存在所述緩存中查找所述需要讀取的數(shù)據(jù)。
[0058]數(shù)據(jù)請求端從緩存讀取數(shù)據(jù)的速度比從存儲節(jié)點讀取要快,因此優(yōu)先在緩存中查找所述需要讀取的數(shù)據(jù),如果有,就由緩存直接將該數(shù)據(jù)返回數(shù)據(jù)請求端。
[0059]步驟104:如果所述緩存中沒有所述需要讀取的數(shù)據(jù),啟動預(yù)緩沖任務(wù),根據(jù)所述需要讀取的數(shù)據(jù)的地址信息從所述存儲節(jié)點讀取所述地址信息對應(yīng)的數(shù)據(jù)。
[0060]緩存已經(jīng)從所述讀取請求指令中獲取了需要讀取的數(shù)據(jù)的地址信息,在收到所述讀取請求指令后,緩存就立即開始從所述存儲節(jié)點對需要讀取的數(shù)據(jù)進(jìn)行讀取。
[0061]步驟105:所述緩存啟動數(shù)據(jù)返回任務(wù),將從所述存儲節(jié)點讀取的數(shù)據(jù)一次返回所述數(shù)據(jù)請求端。
[0062]在緩存在開始從所述存儲節(jié)點對需要讀取的數(shù)據(jù)進(jìn)行讀取,同時就立即將已經(jīng)讀取的數(shù)據(jù)對數(shù)據(jù)請求端進(jìn)行返回。
[0063]所述預(yù)緩沖任務(wù)與數(shù)據(jù)返回任務(wù)同時執(zhí)行,相互獨立,緩存不用等待數(shù)據(jù)讀取完才開始返回數(shù)據(jù),有數(shù)據(jù)已經(jīng)讀取就立即開始返回數(shù)據(jù),緩存讀取數(shù)據(jù)和返回數(shù)據(jù)的操作是分為兩個任務(wù)流水線同時進(jìn)行的
[0064]在本實施例中,緩存從所述存儲節(jié)點讀取數(shù)據(jù)以及緩存將數(shù)據(jù)返回數(shù)據(jù)請求端,都采用的是滑動窗口機(jī)制進(jìn)行的。
[0065]例如:數(shù)據(jù)請求端需要讀取10頁的數(shù)據(jù),數(shù)據(jù)請求端向緩存發(fā)出讀取請求指令,該讀取請求指令中包括需要的讀取10頁的數(shù)據(jù)的地址信息。緩存在接收到讀取請求指令后,向數(shù)據(jù)請求端發(fā)送應(yīng)答指令,查找緩存空間是否有需要讀取的數(shù)據(jù),如果沒有,根據(jù)讀取請求指令中包括的需要的讀取10頁的數(shù)據(jù)的地址信息,從存儲節(jié)點中一次將10頁的數(shù)據(jù)全部讀完,并儲存在緩存空間中。在接收到數(shù)據(jù)請求端發(fā)送的讀取10頁的數(shù)據(jù)的指令后,將這10頁的數(shù)據(jù)一次全部返回所述數(shù)據(jù)請求端。
[0066]本實施例提供的數(shù)據(jù)讀取方法,利用緩存緩存返回數(shù)據(jù)到數(shù)據(jù)請求端的時間,同時對需要讀取的數(shù)據(jù)進(jìn)行預(yù)讀取,預(yù)緩沖任務(wù)與數(shù)據(jù)返回任務(wù)同時執(zhí)行,相互獨立,增大了讀請求命中率,提高了讀取速率,節(jié)約了從存儲節(jié)點讀取的時間。
[0067]參見圖3,本發(fā)明實施例提供了另一種數(shù)據(jù)讀取方法,應(yīng)用于數(shù)據(jù)讀取系統(tǒng),所述數(shù)據(jù)讀取系統(tǒng)包括數(shù)據(jù)請求端、緩存以及存儲有數(shù)據(jù)的存儲節(jié)點,所述方法包括。
[0068]步驟201:所述緩存接收所述數(shù)據(jù)請求端發(fā)送的讀取請求指令,所述讀取請求指令包括需要讀取的數(shù)據(jù)的數(shù)量信息以及所述需要讀取的數(shù)據(jù)的地址信息。
[0069]所述緩存分多個批次將所述需要讀取的數(shù)據(jù)返回所述數(shù)據(jù)請求端,所述緩存根據(jù)一次能從所述存儲節(jié)點讀取數(shù)據(jù)的數(shù)據(jù)量將所有所述需要讀取的數(shù)據(jù)的地址信息分為多組。
[0070]步驟202:所述緩存向所述數(shù)據(jù)請求端發(fā)送應(yīng)答指令。
[0071 ] 緩存向所述數(shù)據(jù)請求端發(fā)送應(yīng)答指令,表示可以執(zhí)行讀取數(shù)據(jù)的操作。
[0072]步驟203:所述緩存在所述緩存中查找所述需要讀取的數(shù)據(jù)。
[0073]數(shù)據(jù)請求端從緩存讀取數(shù)據(jù)的速度比從存儲節(jié)點讀取要快,因此優(yōu)先在緩存中查找所述需要讀取的數(shù)據(jù),如果有,就由緩存直接將該數(shù)據(jù)返回數(shù)據(jù)請求端。
[0074]步驟204:判斷所述緩存中是否有所述需要讀取的數(shù)據(jù),如果有,執(zhí)行步驟205 ;如果沒有,如果有執(zhí)行步驟206。
[0075]步驟205:將需要讀取的數(shù)據(jù)返回數(shù)據(jù)請求端。
[0076]步驟206:所述緩存根據(jù)所述需要讀取的數(shù)據(jù)的地址信息,從所述存儲節(jié)點讀取一組所述地址信息對應(yīng)的數(shù)據(jù)。
[0077]緩存已經(jīng)從所述讀取請求指令中獲取了需要讀取的數(shù)據(jù)的地址信息,在收到所述讀取請求指令后,緩存就立即開始從所述存儲節(jié)點對需要讀取的數(shù)據(jù)進(jìn)行讀取,并完成對第一組所述地址信息對應(yīng)的數(shù)據(jù)的讀取。
[0078]步驟207:所述緩存將一組所述地址信息對應(yīng)的數(shù)據(jù)返回所述數(shù)據(jù)請求端。
[0079]如果所述緩存一個批次能夠返回數(shù)據(jù)量大于或等于一組所述需要讀取的數(shù)據(jù)的地址信息對應(yīng)的數(shù)據(jù)量,將一組所述地址信息對應(yīng)的數(shù)據(jù)返回所述數(shù)據(jù)請求端。
[0080]所述緩存在將一組所述地址信息對應(yīng)的數(shù)據(jù)返回所述數(shù)據(jù)請求端的同時,也對下一組所述地址信息對應(yīng)的數(shù)據(jù)進(jìn)行預(yù)讀取,緩存從所述存儲節(jié)點預(yù)讀取數(shù)據(jù)的操作與緩存將已讀取的數(shù)據(jù)返回數(shù)據(jù)請求端的操作是分兩條流水線分別且持續(xù)進(jìn)行的,相互之間的操作互不干擾。
[0081]步驟208:判斷需要讀取的數(shù)據(jù)是否全部返回,如果沒有返回步驟206 ;
[0082]在緩存向數(shù)據(jù)請求端返回第一組所述地址信息對應(yīng)的數(shù)據(jù)的同時,返回步驟206。
[0083]例如:數(shù)據(jù)請求端需要讀取100頁的數(shù)據(jù),緩存將其分為4個批次進(jìn)行返回,每一個批次返回25頁,數(shù)據(jù)請求端向緩存發(fā)出讀取請求指令,該讀取請求指令中包括需要的讀取100頁的數(shù)據(jù)的地址信息。緩存在接收到讀取請求指令后,向數(shù)據(jù)請求端發(fā)送應(yīng)答指令,查找緩存空間是否有需要讀取的數(shù)據(jù),如果沒有,根據(jù)讀取請求指令中包括的需要的讀取100頁的數(shù)據(jù)的地址信息,開始從存儲節(jié)點中讀取對應(yīng)的數(shù)據(jù)。
[0084]緩存一次能從所述存儲節(jié)點讀取數(shù)據(jù)的數(shù)據(jù)量為25頁,緩存將100頁數(shù)據(jù)的地址信息分為4組,每組包括25頁數(shù)據(jù)的地址信息,其對應(yīng)的數(shù)據(jù)量與一個批次需要讀取的數(shù)據(jù)量相同。緩存從存儲節(jié)點中讀取一組地址信息對應(yīng)的25頁的數(shù)據(jù),并開始將這25頁的數(shù)據(jù)返回所述數(shù)據(jù)請求端。緩存在返回第一批次的25頁數(shù)據(jù)時,同時繼續(xù)讀取第二組地址信息對應(yīng)的25頁的數(shù)據(jù)。當(dāng)緩存將第一個批次的25頁數(shù)據(jù)返回之后,第二組的25頁的數(shù)據(jù)也讀取完了,緩存將第二組地址信息對應(yīng)的25頁的數(shù)據(jù)返回所述數(shù)據(jù)請求端,同時繼續(xù)讀取第三組地址信息對應(yīng)的25頁的數(shù)據(jù),重復(fù)上述過程,直到100頁的數(shù)據(jù)完全返回數(shù)據(jù)請求端。
[0085]本實施例提供的數(shù)據(jù)讀取方法,利用緩存緩存返回數(shù)據(jù)到數(shù)據(jù)請求端的時間,同時對需要讀取的數(shù)據(jù)進(jìn)行預(yù)讀取,預(yù)緩沖任務(wù)與數(shù)據(jù)返回任務(wù)同時執(zhí)行,相互獨立,增大了讀請求命中率,提高了讀取速率,節(jié)約了從存儲節(jié)點讀取的時間。
[0086]本發(fā)明實施例還提供了一種數(shù)據(jù)讀取方法,與前一個數(shù)據(jù)讀取方法相比,其不同之處在于,如果一個批次的數(shù)據(jù)能夠返回的數(shù)據(jù)量小于一組所述地址信息對應(yīng)的數(shù)據(jù)量,
[0087]緩存將一組的數(shù)據(jù)讀取之后,需要多個批次才能返回這一組數(shù)據(jù)到所述數(shù)據(jù)請求端,緩存在返回數(shù)據(jù)到所述數(shù)據(jù)請求端的同時,繼續(xù)從存儲節(jié)點讀取需要讀取的數(shù)據(jù)。
[0088]例如:數(shù)據(jù)請求端需要讀取100頁的數(shù)據(jù),緩存將其分為4個批次進(jìn)行返回,每一個批次返回25頁,數(shù)據(jù)請求端向緩存發(fā)出讀取請求指令,該讀取請求指令中包括需要的讀取100頁的數(shù)據(jù)的地址信息。緩存在接收到讀取請求指令后,向數(shù)據(jù)請求端發(fā)送應(yīng)答指令,查找緩存空間是否有需要讀取的數(shù)據(jù),如果沒有,根據(jù)讀取請求指令中包括的需要的讀取100頁的數(shù)據(jù)的地址信息,開始從存儲節(jié)點中讀取對應(yīng)的數(shù)據(jù)。
[0089]緩存一次能從所述存儲節(jié)點讀取數(shù)據(jù)的數(shù)據(jù)量為25頁,緩存將100頁數(shù)據(jù)的地址信息分為4組,每組包括25頁數(shù)據(jù)的地址信息,其對應(yīng)的數(shù)據(jù)量大于一個批次需要讀取的數(shù)據(jù)量。緩存從存儲節(jié)點中讀取一組地址信息對應(yīng)的25頁的數(shù)據(jù),并開始將這25頁的數(shù)據(jù)返回所述數(shù)據(jù)請求端,一個批次返回5頁,一共5次,完成對第一組數(shù)據(jù)的返回。緩存在返回第一組的25頁數(shù)據(jù)時,同時繼續(xù)讀取第二組地址信息對應(yīng)的25頁的數(shù)據(jù)。
[0090]當(dāng)緩存將第一個批次的25頁數(shù)據(jù),分5次返回完之后,第二組的25頁的數(shù)據(jù)也讀取完了,緩存開始將第二組地址信息對應(yīng)的25頁的數(shù)據(jù)返回所述數(shù)據(jù)請求端,即執(zhí)行第
6-10次返回操作,同時繼續(xù)讀取第三組地址信息對應(yīng)的25頁的數(shù)據(jù),重復(fù)上述過程,直到100頁的數(shù)據(jù)完全返回數(shù)據(jù)請求端。
[0091]本實施例提供的數(shù)據(jù)讀取方法,利用緩存緩存返回數(shù)據(jù)到數(shù)據(jù)請求端的時間,同時對需要讀取的數(shù)據(jù)進(jìn)行預(yù)讀取,預(yù)緩沖任務(wù)與數(shù)據(jù)返回任務(wù)同時執(zhí)行,相互獨立,增大了讀請求命中率,提高了讀取速率,節(jié)約了從存儲節(jié)點讀取的時間。
[0092]參見圖4,本發(fā)明實施例所提供的一種數(shù)據(jù)讀取裝置,應(yīng)用于數(shù)據(jù)讀取系統(tǒng),所述數(shù)據(jù)讀取系統(tǒng)包括數(shù)據(jù)請求端、緩存以及存儲有數(shù)據(jù)的存儲節(jié)點,所述數(shù)據(jù)讀取裝置設(shè)置于所述緩存,所述緩存根據(jù)一次能從所述存儲節(jié)點讀取數(shù)據(jù)的數(shù)據(jù)量將所有所述需要讀取的數(shù)據(jù)的地址信息分為多組,所述裝置包括:
[0093]讀取請求指令接收單元401,用于接收所述數(shù)據(jù)請求端發(fā)送的讀取請求指令,所述讀取請求指令包括需要讀取的數(shù)據(jù)的數(shù)量信息以及所述需要讀取的數(shù)據(jù)的地址信息。
[0094]應(yīng)答指令發(fā)送單元402,用于向所述數(shù)據(jù)請求端發(fā)送應(yīng)答指令,并在所述緩存中查找所述需要讀取的數(shù)據(jù)。
[0095]存儲數(shù)據(jù)讀取單元403,用于如果所述緩存中沒有所述需要讀取的數(shù)據(jù),啟動預(yù)緩沖任務(wù),根據(jù)所述需要讀取的數(shù)據(jù)的地址信息從所述存儲節(jié)點讀取所述地址信息對應(yīng)的數(shù)據(jù);
[0096]所述存儲數(shù)據(jù)讀取單元403還用于:從所述存儲節(jié)點讀取一組所述地址信息對應(yīng)的數(shù)據(jù)。
[0097]數(shù)據(jù)返回單元404,用于啟動數(shù)據(jù)返回任務(wù),將從所述存儲節(jié)點讀取的數(shù)據(jù)返回所述數(shù)據(jù)請求端;
[0098]所述數(shù)據(jù)返回單元404還用于:將所述一組所述地址信息對應(yīng)的數(shù)據(jù)返回所述數(shù)據(jù)請求端;
[0099]所述數(shù)據(jù)返回單元404還用于:所述緩存將所述一個批次的數(shù)據(jù)返回所述數(shù)據(jù)請求端,重復(fù)這個步驟,直到一組所述地址信息對應(yīng)的數(shù)據(jù)全部返回所述數(shù)據(jù)請求端。
[0100]本發(fā)明實施例所提供的數(shù)據(jù)讀取裝置,其實現(xiàn)原理及產(chǎn)生的技術(shù)效果和前述方法實施例相同,為簡要描述,裝置實施例部分未提及之處,可參考前述方法實施例中相應(yīng)內(nèi)容。
[0101]參見圖1,本發(fā)明實施例所提供的一種數(shù)據(jù)讀取系統(tǒng),所述數(shù)據(jù)讀取系統(tǒng)包括數(shù)據(jù)請求端100、緩存200以及存儲有數(shù)據(jù)的存儲節(jié)點300,
[0102]所述數(shù)據(jù)請求端100向所述緩存200發(fā)送讀取請求指令;
[0103]所述緩存200接收所述數(shù)據(jù)請求端100發(fā)送的讀取請求指令,所述讀取請求指令包括需要讀取的數(shù)據(jù)的數(shù)量信息以及所述需要讀取的數(shù)據(jù)的地址信息;
[0104]所述緩存200向所述數(shù)據(jù)請求端100發(fā)送應(yīng)答指令,在所述緩存200中查找所述需要讀取的數(shù)據(jù);如果所述緩存200中沒有所述需要讀取的數(shù)據(jù),根據(jù)所述需要讀取的數(shù)據(jù)的地址信息,所述緩存200從所述存儲節(jié)點300讀取所述地址信息對應(yīng)的數(shù)據(jù);
[0105]所述緩存200將從所述存儲節(jié)點300讀取的數(shù)據(jù)返回所述數(shù)據(jù)請求端100。
[0106]本發(fā)明實施例所提供的數(shù)據(jù)讀取系統(tǒng),其實現(xiàn)原理及產(chǎn)生的技術(shù)效果和前述方法實施例相同,為簡要描述,系統(tǒng)實施例部分未提及之處,可參考前述方法實施例中相應(yīng)內(nèi)容。
[0107]參見圖5,本發(fā)明實施例還提供一種數(shù)據(jù)讀取裝置600,包括:處理器500,存儲器501,總線502和通信接口 503,所述處理器500、通信接口 503和存儲器501通過總線502連接;處理器500用于執(zhí)行存儲器501中存儲的可執(zhí)行模塊,例如計算機(jī)程序。
[0108]其中,存儲器501可能包含高速隨機(jī)存取存儲器(RAM:Random Access Memory),也可能還包括非不穩(wěn)定的存儲器(non-volatile memory),例如至少一個磁盤存儲器。通過至少一個通信接口 503 (可以是有線或者無線)實現(xiàn)該系統(tǒng)網(wǎng)元與至少一個其他網(wǎng)元之間的通信連接,可以使用互聯(lián)網(wǎng),廣域網(wǎng),本地網(wǎng),城域網(wǎng)等。
[0109]總線502可以是ISA總線、PCI總線或EISA總線等。所述總線可以分為地址總線、數(shù)據(jù)總線、控制總線等。為便于表示,圖5中僅用一個雙向箭頭表示,但并不表示僅有一根總線或一種類型的總線。
[0110]其中,存儲器501用于存儲程序,所述處理器500在接收到執(zhí)行指令后,執(zhí)行所述程序,前述本發(fā)明實施例任一實施例揭示的流程定義的裝置所執(zhí)行的方法可以應(yīng)用于處理器500中,或者由處理器500實現(xiàn)。
[0111]處理器500可能是一種集成電路芯片,具有信號的處理能力。在實現(xiàn)過程中,上述方法的各步驟可以通過處理器500中的硬件的集成邏輯電路或者軟件形式的指令完成。上述的處理器500可以是通用處理器,包括中央處理器(Central Processing Unit,簡稱數(shù)據(jù)請求端)、網(wǎng)絡(luò)處理器(Network Processor,簡稱NP)等;還可以是數(shù)字信號處理器(DSP)、專用集成電路(ASIC)、現(xiàn)成可編程門陣列(FPGA)或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件??梢詫崿F(xiàn)或者執(zhí)行本發(fā)明實施例中的公開的各方法、步驟及邏輯框圖。通用處理器可以是微處理器或者該處理器也可以是任何常規(guī)的處理器等。結(jié)合本發(fā)明實施例所公開的方法的步驟可以直接體現(xiàn)為硬件譯碼處理器執(zhí)行完成,或者用譯碼處理器中的硬件及軟件模塊組合執(zhí)行完成。軟件模塊可以位于隨機(jī)存儲器,閃存、只讀存儲器,可編程只讀存儲器或者電可擦寫可編程存儲器、寄存器等本領(lǐng)域成熟的存儲介質(zhì)中。該存儲介質(zhì)位于存儲器501,處理器500讀取存儲器501中的信息,結(jié)合其硬件完成上述方法的步驟。
[0112]另外,附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個實施例的系統(tǒng)、方法和計算機(jī)程序產(chǎn)品的可能實現(xiàn)的體系架構(gòu)、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機(jī)指令的組合來實現(xiàn)。
[0113]本發(fā)明實施例所提供的進(jìn)行一種數(shù)據(jù)讀取裝置的計算機(jī)程序產(chǎn)品,包括存儲了程序代碼的計算機(jī)可讀存儲介質(zhì),所述程序代碼包括的指令可用于執(zhí)行前面方法實施例中所述的方法,具體實現(xiàn)可參見方法實施例,在此不再贅述。
[0114]所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng)、裝置和單元的具體工作過程,可以參考前述方法實施例中的對應(yīng)過程,在此不再贅述。
[0115]在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的系統(tǒng)、裝置和方法,可以通過其它的方式實現(xiàn)。以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,又例如,多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些通信接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
[0116]所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
[0117]另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。
[0118]所述功能如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機(jī)可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機(jī)設(shè)備(可以是個人計算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機(jī)存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
[0119]需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
[0120]在本發(fā)明的描述中,還需要說明的是,除非另有明確的規(guī)定和限定,術(shù)語“設(shè)置”、“安裝”、“相連”、“連接”應(yīng)做廣義理解,例如,可以是固定連接,也可以是可拆卸連接,或一體地連接;可以是機(jī)械連接,也可以是電連接;可以是直接相連,也可以通過中間媒介間接相連,可以是兩個元件內(nèi)部的連通。對于本領(lǐng)域的普通技術(shù)人員而言,可以具體情況理解上述術(shù)語在本發(fā)明中的具體含義。
[0121]以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。應(yīng)注意到:相似的標(biāo)號和字母在下面的附圖中表示類似項,因此,一旦某一項在一個附圖中被定義,則在隨后的附圖中不需要對其進(jìn)行進(jìn)一步定義和解釋。
【權(quán)利要求】
1.一種數(shù)據(jù)讀取方法,其特征在于,應(yīng)用于數(shù)據(jù)讀取系統(tǒng),所述數(shù)據(jù)讀取系統(tǒng)包括數(shù)據(jù)請求端、緩存以及存儲有數(shù)據(jù)的存儲節(jié)點,所述方法包括: 所述緩存接收所述數(shù)據(jù)請求端發(fā)送的讀取請求指令,所述讀取請求指令包括需要讀取的數(shù)據(jù)的數(shù)量信息以及所述需要讀取的數(shù)據(jù)的地址信息; 向所述數(shù)據(jù)請求端發(fā)送應(yīng)答指令,在所述緩存中查找所述需要讀取的數(shù)據(jù); 如果所述緩存中沒有所述需要讀取的數(shù)據(jù),啟動預(yù)緩沖任務(wù),根據(jù)所述需要讀取的數(shù)據(jù)的地址信息從所述存儲節(jié)點讀取所述地址信息對應(yīng)的數(shù)據(jù); 所述緩存啟動數(shù)據(jù)返回任務(wù),將從所述存儲節(jié)點讀取的數(shù)據(jù)返回所述數(shù)據(jù)請求端; 所述預(yù)緩沖任務(wù)與所述數(shù)據(jù)返回任務(wù)同時執(zhí)行,相互獨立。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于, 所述從所述存儲節(jié)點讀取所述地址信息對應(yīng)的數(shù)據(jù),包括:從所述存儲節(jié)點一次讀取全部所述地址信息對應(yīng)的數(shù)據(jù); 所述將從所述存儲節(jié)點讀取的數(shù)據(jù)返回所述數(shù)據(jù)請求端,包括:將從所述存儲節(jié)點讀取的全部所述地址信息對應(yīng)的數(shù)據(jù)一次返回所述數(shù)據(jù)請求端。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述緩存分多個批次將所述需要讀取的數(shù)據(jù)返回所述數(shù)據(jù)請求端,所述緩存根據(jù)一次能從所述存儲節(jié)點讀取數(shù)據(jù)的數(shù)據(jù)量將所有所述需要讀取的數(shù)據(jù)的地址信息分為多組,如果所述緩存一個批次能夠返回數(shù)據(jù)量大于或等于一組所述需要讀取的數(shù)據(jù)的地址信息對應(yīng)的數(shù)據(jù)量, 所述從所述存儲節(jié)點讀取所述地址信息對應(yīng)的數(shù)據(jù),包括: 從所述存儲節(jié)點讀取一組所述地址信息對應(yīng)的數(shù)據(jù); 所述將從所述存儲節(jié)點讀取的數(shù)據(jù)返回所述數(shù)據(jù)請求端,包括: 所述緩存將所述一組所述地址信息對應(yīng)的數(shù)據(jù)返回所述數(shù)據(jù)請求端; 所述方法還包括:重復(fù)上述過程,一直到所述緩存將所述需要讀取的數(shù)據(jù)全部讀取并返回所述數(shù)據(jù)請求端。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,如果一個批次的數(shù)據(jù)能夠返回的數(shù)據(jù)量小于一組所述地址信息對應(yīng)的數(shù)據(jù)量, 所述緩存將所述一組所述地址信息對應(yīng)的數(shù)據(jù)返回所述數(shù)據(jù)請求端,包括: 所述緩存將所述一個批次的數(shù)據(jù)返回所述數(shù)據(jù)請求端,重復(fù)這個步驟,直到一組所述地址信息對應(yīng)的數(shù)據(jù)全部返回所述數(shù)據(jù)請求端。
5.一種數(shù)據(jù)讀取裝置,其特征在于,應(yīng)用于數(shù)據(jù)讀取系統(tǒng),所述數(shù)據(jù)讀取系統(tǒng)包括數(shù)據(jù)請求端、緩存以及存儲有數(shù)據(jù)的存儲節(jié)點,所述數(shù)據(jù)讀取裝置設(shè)置于所述緩存,所述裝置包括: 讀取請求指令接收單元,用于接收所述數(shù)據(jù)請求端發(fā)送的讀取請求指令,所述讀取請求指令包括需要讀取的數(shù)據(jù)的數(shù)量信息以及所述需要讀取的數(shù)據(jù)的地址信息; 應(yīng)答指令發(fā)送單元,用于向所述數(shù)據(jù)請求端發(fā)送應(yīng)答指令,并在所述緩存中查找所述需要讀取的數(shù)據(jù); 存儲數(shù)據(jù)讀取單元,用于如果所述緩存中沒有所述需要讀取的數(shù)據(jù),啟動預(yù)緩沖任務(wù),根據(jù)所述需要讀取的數(shù)據(jù)的地址信息從所述存儲節(jié)點讀取所述地址信息對應(yīng)的數(shù)據(jù);數(shù)據(jù)返回單元,用于啟動數(shù)據(jù)返回任務(wù),將從所述存儲節(jié)點讀取的數(shù)據(jù)返回所述數(shù)據(jù)請求端。
6.根據(jù)權(quán)利要求5所述的數(shù)據(jù)讀取裝置,其特征在于, 所述存儲數(shù)據(jù)讀取單元還用于:從所述存儲節(jié)點一次讀取全部所述地址信息對應(yīng)的數(shù)據(jù); 所述數(shù)據(jù)返回單元還用于:將從所述存儲節(jié)點讀取的全部所述地址信息對應(yīng)的數(shù)據(jù)一次返回所述數(shù)據(jù)請求端。
7.根據(jù)權(quán)利要求5所述的數(shù)據(jù)讀取裝置,其特征在于,所述緩存分多個批次將所述需要讀取的數(shù)據(jù)返回所述數(shù)據(jù)請求端,所述緩存根據(jù)一次能從所述存儲節(jié)點讀取數(shù)據(jù)的數(shù)據(jù)量將所有所述需要讀取的數(shù)據(jù)的地址信息分為多組,如果所述緩存一個批次能夠返回數(shù)據(jù)量大于或等于一組所述需要讀取的數(shù)據(jù)的地址信息對應(yīng)的數(shù)據(jù)量, 所述存儲數(shù)據(jù)讀取單元還用于:從所述存儲節(jié)點讀取一組所述地址信息對應(yīng)的數(shù)據(jù); 所述數(shù)據(jù)返回單元還用于:所述緩存將所述一組所述地址信息對應(yīng)的數(shù)據(jù)返回所述數(shù)據(jù)請求端。
8.根據(jù)權(quán)利要求7所述的數(shù)據(jù)讀取裝置,其特征在于,如果一個批次的數(shù)據(jù)能夠返回的數(shù)據(jù)量小于一組所述地址信息對應(yīng)的數(shù)據(jù)量, 所述數(shù)據(jù)返回單元還用于:所述緩存將所述一個批次的數(shù)據(jù)返回所述數(shù)據(jù)請求端,重復(fù)這個步驟,直到一組所述地址信息對應(yīng)的數(shù)據(jù)全部返回所述數(shù)據(jù)請求端。
9.一種數(shù)據(jù)讀取系統(tǒng),其特征在于,所述數(shù)據(jù)讀取系統(tǒng)包括數(shù)據(jù)請求端、緩存以及存儲有數(shù)據(jù)的存儲節(jié)點, 所述數(shù)據(jù)請求端向所述緩存發(fā)送讀取請求指令; 所述緩存接收所述數(shù)據(jù)請求端發(fā)送的讀取請求指令,所述讀取請求指令包括需要讀取的數(shù)據(jù)的數(shù)量信息以及所述需要讀取的數(shù)據(jù)的地址信息; 所述緩存向所述數(shù)據(jù)請求端發(fā)送應(yīng)答指令,在所述緩存中查找所述需要讀取的數(shù)據(jù);如果所述緩存中沒有所述需要讀取的數(shù)據(jù),根據(jù)所述需要讀取的數(shù)據(jù)的地址信息,所述緩存從所述存儲節(jié)點讀取所述地址信息對應(yīng)的數(shù)據(jù); 所述緩存將從所述存儲節(jié)點讀取的數(shù)據(jù)返回所述數(shù)據(jù)請求端。
10.根據(jù)權(quán)利要求9所述的數(shù)據(jù)讀取系統(tǒng),其特征在于,所述數(shù)據(jù)讀取系統(tǒng)應(yīng)用于分布式存儲系統(tǒng)。
【文檔編號】G06F12/08GK104461943SQ201410836741
【公開日】2015年3月25日 申請日期:2014年12月29日 優(yōu)先權(quán)日:2014年12月29日
【發(fā)明者】黃睿 申請人:成都致云科技有限公司