由于緩存裝置進行數(shù)據(jù)收發(fā)的效率較高,能有效提高數(shù)據(jù)收發(fā)效率,因而,本實施例中,第二發(fā)送單元305優(yōu)選先將組裝單元304組裝后的讀取反饋發(fā)送至緩存裝置,再通過緩存裝置發(fā)送至請求裝置,從而在將一個線程的工作分為了多個子線程的工作提高了數(shù)據(jù)讀取效率的基礎(chǔ)上,進一步提高了讀取反饋的發(fā)送效率,從而從整體上顯著提高了請求裝置獲得讀取反饋的效率。
[0096]為了避免傳輸擁堵,本實施例中,優(yōu)選第一發(fā)送單元302用于,采用滑動窗口將每個所述子請求發(fā)送至該子請求對應(yīng)的子數(shù)據(jù)所在的存儲節(jié)點;第二獲得單元303用于,采用滑動窗口獲得所述存儲節(jié)點反饋的每個子請求的子請求反饋;第二發(fā)送單元305用于,采用滑動窗口將所述讀取反饋發(fā)送至所述緩存裝置,采用滑動窗口通過所述緩存裝置將所述讀取反饋發(fā)送至所述請求裝置。
[0097]在上述基礎(chǔ)上,若請求裝置與存儲裝置相互“不識別”,例如:請求裝置發(fā)送的數(shù)據(jù)讀取請求無法被數(shù)據(jù)存儲裝置中的各存儲節(jié)點識別,各存儲節(jié)點返回的數(shù)據(jù)請求裝置亦無法識別,則組裝裝置還需進行“格式轉(zhuǎn)換”,例如:數(shù)據(jù)存儲裝置的各存儲節(jié)點能夠識別的是邏輯頁,請求裝置發(fā)送的數(shù)據(jù)讀取請求要求的是讀取物理數(shù)據(jù)頁信息,那么,如圖5所示,組裝裝置還需包括轉(zhuǎn)換單元306,用于在所述第一獲得單元300獲得所述請求裝置發(fā)送的數(shù)據(jù)讀取請求之后,將所述數(shù)據(jù)讀取請求轉(zhuǎn)換成邏輯頁序列。相應(yīng)地,拆分單元301用于,將所述邏輯頁序列拆分為多個子請求,所述多個子請求與所述多個子數(shù)據(jù)一一對應(yīng),所述多個子請求分別用于請求讀取對應(yīng)的子數(shù)據(jù)。各存儲節(jié)點接收到各子請求后,返回的是讀取的物理數(shù)據(jù)頁信息,因而,第二發(fā)送單元305接收到存儲節(jié)點反饋回的物理數(shù)據(jù)頁信息后,需將物理數(shù)據(jù)頁信息轉(zhuǎn)換成邏輯頁數(shù)據(jù),轉(zhuǎn)換的目的是因為,用戶看到的云存儲數(shù)據(jù)都是邏輯頁數(shù)據(jù),例如:邏輯(Logical Block Address,LBA)地址信息,因而,所述第二發(fā)送單元305用于,將獲得的所述讀取反饋轉(zhuǎn)換成邏輯頁,將所述邏輯頁發(fā)送至所述緩存裝置,通過所述緩存裝置將所述邏輯頁發(fā)送至所述請求裝置。
[0098]為了確保所有的子請求均發(fā)送至對應(yīng)的存儲節(jié)點,并且都被存儲節(jié)點所接受,避免因某個子請求請求失敗造成數(shù)據(jù)讀取失敗,本實施例中,組裝裝置優(yōu)選包括第三獲得單元,用于在所述第一發(fā)送單元302將每個所述子請求發(fā)送至該子請求對應(yīng)的子數(shù)據(jù)所在的存儲節(jié)點之后,針對每個子請求,獲得所述存儲節(jié)點的應(yīng)答反饋,當獲得所有所述子請求的應(yīng)答反饋之后,向所述請求裝置發(fā)送所述數(shù)據(jù)讀取請求發(fā)送成功的信息;當超過預(yù)設(shè)時限,未獲得針對某一個子請求,所述存儲節(jié)點的應(yīng)答反饋時,重新將所述子請求發(fā)送至所述子請求用于讀取的所述子數(shù)據(jù)對應(yīng)的存儲節(jié)點。
[0099]本發(fā)明實施例中,巧妙地將一個“大”的數(shù)據(jù)讀取請求拆分為多個“小”的子請求,將原本的一個讀取線程拆分為了多個子讀取線程,由多個子讀取線程進行讀取,且獲得的讀取反饋會先發(fā)送至Cache,通過Cache發(fā)送至請求裝置,這種“多并發(fā)”的工作模式顯著提高了數(shù)據(jù)讀取效率,有效縮短了讀取時間。本發(fā)明實施例實現(xiàn)了“流水線”讀取,即緩存裝置、數(shù)據(jù)存儲裝置、請求裝置、組裝裝置均只負責本單元的工作,完成一個數(shù)據(jù)處理后立刻進行下一個數(shù)據(jù)處理,各自的動作不會受到其他裝置的影響,這種“流水線”讀取方式,整體工作效率遠遠高于現(xiàn)有的讀取方式,優(yōu)勢十分明顯。
[0100]需要說明的是,在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露裝置和方法,可以通過其它的方式實現(xiàn)。以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式。
[0101]參見圖6,本發(fā)明實施例還提供的另一種組裝裝置,包括:處理器400,存儲器404,總線402和通信接口 403,所述處理器400、通信接口 403和存儲器404通過總線402連接;。
[0102]其中,存儲器404可能包含高速隨機存取存儲器(RAM:Random Access Memory),也可能還包括非不穩(wěn)定的存儲器(non-volatile memory),例如至少一個磁盤存儲器。通過至少一個通信接口 403 (可以是有線或者無線)實現(xiàn)該系統(tǒng)網(wǎng)元與至少一個其他網(wǎng)元之間的通信連接,可以使用互聯(lián)網(wǎng),廣域網(wǎng),本地網(wǎng),城域網(wǎng)等。
[0103]處理器400用于執(zhí)行存儲器404中的可執(zhí)行模塊,例如計算機程序401 ;處理器400通過通信接口 403接收數(shù)據(jù)流;
[0104]總線402可以是ISA總線、PCI總線或EISA總線等。所述總線可以分為地址總線、數(shù)據(jù)總線、控制總線等。為便于表示,圖6中僅用一個雙向箭頭表示,但并不表示僅有一根總線或一種類型的總線。
[0105]其中,存儲器404用于存儲程序401,所述處理器400在接收到執(zhí)行指令后,執(zhí)行所述程序401,前述本發(fā)明實施例任一實施例揭示的過程定義的裝置所執(zhí)行的方法可以應(yīng)用于處理器400中,或者由處理器400實現(xiàn)。
[0106]在具體實現(xiàn)中,程序401可以包括程序代碼,所述程序代碼包括計算機操作指令和算法等;
[0107]處理器400可能是一種集成電路芯片,具有信號的處理能力。在實現(xiàn)過程中,上述方法的各步驟可以通過處理器400中的硬件的集成邏輯電路或者軟件形式的指令完成。上述的處理器400可以是通用處理器,包括中央處理器(Central Processing Unit,簡稱CPU)、網(wǎng)絡(luò)處理器(Network Processor,簡稱NP)等;還可以是數(shù)字信號處理器(DSP)、專用集成電路(ASIC)、現(xiàn)成可編程門陣列(FPGA)或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件??梢詫崿F(xiàn)或者執(zhí)行本發(fā)明實施例中的公開的各方法、步驟及邏輯框圖。通用處理器可以是微處理器或者該處理器也可以是任何常規(guī)的處理器等。結(jié)合本發(fā)明實施例所公開的方法的步驟可以直接體現(xiàn)為硬件譯碼處理器執(zhí)行完成,或者用譯碼處理器中的硬件及軟件模塊組合執(zhí)行完成。軟件模塊可以位于隨機存儲器,閃存、只讀存儲器,可編程只讀存儲器或者電可擦寫可編程存儲器、寄存器等本領(lǐng)域成熟的存儲介質(zhì)中。該存儲介質(zhì)位于存儲器404,處理器400讀取存儲器404中的信息,結(jié)合其硬件完成上述方法的步驟。
[0108]本發(fā)明實施例所提供的進行裝置中的計算機程序產(chǎn)品,包括存儲了程序代碼的計算機可讀存儲介質(zhì),所述程序代碼包括的指令可用于執(zhí)行前面方法實施例中所述的方法,具體實現(xiàn)可參見方法實施例,在此不再贅述。
[0109]所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的裝置和單元的具體工作過程,可以參考前述方法實施例中的對應(yīng)過程,在此不再贅述。
[0110]在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的裝置和方法,可以通過其它的方式實現(xiàn)。以上所描述的裝置實施例僅僅是示意性的,例如,附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個實施例的裝置、方法和計算機程序產(chǎn)品的可能實現(xiàn)的體系架構(gòu)、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當注意,在有些作為替換的實現(xiàn)中,方框中所標注的功能也可以以不同于附圖中所標注的順序發(fā)生。例如,兩個連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機指令的組合來實現(xiàn)。
[0111]所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
[0112]另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。
[011