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