實現數據預取方法及裝置制造方法
【專利摘要】本發明公開了一種實現數據預取方法及裝置,屬于計算機【技術領域】。所述方法包括:獲取所述多個文件的元數據;解析每一個文件的元數據,得到所述每一個文件的數據存儲項的存儲地址;根據所述每一個文件的元數據的存儲地址和數據存儲項的存儲地址,建立數據關聯關系表;本發明中由于元數據中記錄了數據之間的關聯關系,所以無需耗費大量時間和內存資源進行數據關聯關系的挖掘,數據關聯關系表建立過程較為簡單和迅速,當接收到文件讀取請求時,基于建立的數據關聯關系進行數據預取可大幅提升數據的讀取效率。
【專利說明】實現數據預取方法及裝置【技術領域】
[0001]本發明涉及計算機【技術領域】,特別涉及一種實現數據預取方法及裝置。
【背景技術】
[0002]應用服務器從存儲陣列讀取數據過程中,常常需消耗大量的時間。為了減少數據讀取所占用的大量時間,通常會進行數據預取。目前,通常采取如下所示的順序預取方式和關聯預取方式進行數據預取。
[0003]針對順序預取方式來說,存儲陣列在基于應用服務器的讀請求讀取第一數據之后,還將讀取與第一數據所在扇區相鄰的扇區中的第二數據,并將第二數據存儲在緩沖區中。后續應用服務器再發送讀請求時,若該讀請求對應的數據為第二數據,則直接將存儲在緩沖區中第二數據 返回給應用服務器。
[0004]針對關聯預取方式來說,通常采用C-miner算法和QuickMine算法實現。對于C-miner算法,在存儲陣列側基于歷史請求的頻繁序列,挖掘數據之間的關聯關系,并將該關聯關系進行存儲。當接收到應用服務器發送的讀請求后,存儲陣列側根據存儲的關聯關系預讀與請求的數據相關聯的數據。對于QuickMine算法,在應用服務器側基于歷史請求的頻繁序列,挖掘數據之間的關聯關系,并將該關聯關系發送給存儲陣列。當存儲陣列接收到應用服務器發送的讀請求后,根據存儲的關聯關系預讀與請求的數據相關聯的數據。
[0005]現有的數據預取方式,由于順序預取方式中可能會出現大量并發數據,從而產生大量不同的數據序列,這樣將導致無法識別數據是否順序的,還可能存在由于數據本身比較小,所以識別數據較為困難的情況,所以該種數據預取方式效果較差;由于關聯預取方式中需根據數目眾多的頻繁序列進行關聯關系的挖掘,所以需消耗大量的時間和內存資源,該種數據預取方式的效果較差。
【發明內容】
[0006]為了解決現有技術的問題,本發明實施例提供了一種實現數據預取方法及裝置。所述技術方案如下:
[0007]第一方面,提供了一種實現數據預取方法,所述方法包括:
[0008]獲取所述多個文件的元數據;
[0009]解析每一個文件的元數據,得到所述每一個文件的數據存儲項的存儲地址;
[0010]根據所述每一個文件的元數據的存儲地址和數據存儲項的存儲地址,建立數據關聯關系表。
[0011]在第一方面的第一種可能的實現方式中,所述根據所述每一個文件的元數據的存儲地址和數據存儲項的存儲地址,建立數據關聯關系表,包括:
[0012]對于所述每一個文件,根據所述每一個文件的元數據的存儲地址和數據存儲項的存儲地址,建立一個數據關聯表項;
[0013]所述多個文件的元數據的存儲地址和數據存儲項的存儲地址的數據關聯表項組成所述數據關聯關系表。
[0014]結合第一方面的第一種可能的實現方式,在第一方面的第二種可能的實現方式中,所述方法還包括;
[0015]在存儲地址查詢表的所述每一個文件的元數據和數據存儲項的存儲地址中記錄所述每一個文件的元數據的存儲地址和數據存儲項的存儲地址的數據關聯表項在所述數據關聯關系表中的地址;其中,所述存儲地址查詢表是按照存儲地址順序構成的。
[0016]結合第一方面或第一方面的第一種可能的實現方式,在第一方面的第三種可能的實現方式中,所述解析所述每一個文件的元數據,還包括獲得所述每一個文件的數據存儲項的長度,則所述每一個文件的元數據的存儲地址和數據存儲項的存儲地址的數據關聯表項中還包括數據存儲項的長度。
[0017]結合第一方面、第一方面的第一種至第三種可能的實現方式,在第一方面的第四種可能的實現方式中,所述根據所述每一個文件的元數據的存儲地址和數據存儲項的存儲地址,建立數據關聯關系表之后,所述方法還包括:
[0018]當檢測到所述多個文件中任一個文件的元數據或數據存儲項發生變化時,向存儲設備發送通知消息,所述通知信息中包括變化的元數據或變化的數據存儲項,以使所述存儲設備在接收到所述通知消息后,根據所述通知消息更新變化的文件的元數據的存儲地址和數據存儲項的存儲地址的數據關聯表項。
[0019]第二方面,提供了一種實現數據預取方法,應用于存儲設備,所述存儲設備中存儲多個文件,其特征在于,所述方法包括:
[0020]接收文件讀取請求,所述文件讀取請求中包括讀取的目標數據存儲地址和目標數據長度;
[0021]查詢數據關聯關系表,確定與所述讀取的目標數據存儲地址存在關聯關系的預取數據存儲地址;
[0022]根據所述讀取的目標數據長度對所述預取數據存儲地址中的數據進行預取;
[0023]其中,所述數據關聯關系表中存儲了每一個文件的元數據的存儲地址與數據存儲項的存儲地址的關聯關系,其中,所述目標數據存儲地址和所述預取數據存儲地址為所述元數據的存儲地址和所述數據存儲項的存儲地址中的一種。
[0024]在第二方面的第一種可能的實現方式中,所述查詢數據關聯關系表,確定與所述讀取的目標數據存儲地址存在關聯關系的預取存儲地址,包括:
[0025]查詢存儲地址查詢表,根據所述讀取的目標數據存儲地址,確定所述讀取的目標數據存儲地址所在的數據關聯表項在所述數據關聯關系表中的地址;
[0026]在所述數據關聯表項中,查找所述目標數據存儲地址的關聯存儲地址;
[0027]將所述關聯存儲地址中的起始數據存儲地址作為預取數據存儲地址;
[0028]其中,在存儲地址查詢表的所述每一個文件的元數據和數據存儲項的存儲地址中記錄所述每一個文件的元數據的存儲地址和數據存儲項的存儲地址的數據關聯表項在所述數據關聯關系表中的地址;其中,所述存儲地址查詢表是按照存儲地址順序構成的。
[0029]第三方面,提供了一種實現數據預取裝置,所述裝置包括:
[0030]數據獲取模塊,用于獲取所述多個文件的元數據;
[0031]數據解析模塊,用于解析每一個文件的元數據,得到所述每一個文件的數據存儲項的存儲地址;
[0032]關聯關系建立模塊,用于根據所述每一個文件的元數據的存儲地址和數據存儲項的存儲地址,建立數據關聯關系表。
[0033]在第三方面的第一種可能的實現方式中,所述關聯關系建立模塊,用于對于所述每一個文件,根據所述每一個文件的元數據的存儲地址和數據存儲項的存儲地址,建立一個數據關聯表項;所述多個文件的元數據的存儲地址和數據存儲項的存儲地址的數據關聯表項組成所述數據關聯關系表。
[0034]結合第三方面,在第三方面的第二種可能的實現方式中,所述裝置還包括:
[0035]存儲地址記錄模塊,用于在存儲地址查詢表的所述每一個文件的元數據和數據存儲項的存儲地址中記錄所述每一個文件的元數據的存儲地址和數據存儲項的存儲地址的數據關聯表項在所述數據關聯關系表中的地址;其中,所述存儲地址查詢表是按照存儲地址順序構成的。
[0036]結合第三方面及第三方面的第一種可能的實現方式,在第三方面的第三種可能的實現方式中,所述數據解析模塊,還用于獲得所述每一個文件的數據存儲項的長度,則所述每一個文件的元數據的存儲地址和數據存儲項的存儲地址的數據關聯表項中還包括數據存儲項的長度。
[0037]結合第三方面、第三方面的第一種至第三種可能的實現方式,在第三方面的第四種可能的實現方式中,所述裝置還包括:
[0038]通知消息發送模塊,用于當檢測到所述多個文件中任一一個文件的元數據或數據存儲項發生變化時,向存儲設備發送通知消息,所述通知信息中包括變化的元數據或變化的數據存儲項,以使所述存儲設備在接收到所述通知消息后,根據所述通知消息更新變化的文件的元數據的存儲地址和數據存儲項的存儲地址的數據關聯表項。
[0039]第四方面,提供了一種實現數據預取裝置,應用于存儲設備,所述存儲設備中存儲多個文件,其特征在于,所述裝置包括:
[0040]讀取請求接收模塊,用于接收文件讀取請求,所述文件讀取請求中包括讀取的目標數據存儲地址和目標數據長度;
[0041]存儲地址確定模塊,用于查詢數據關聯關系表,確定與所述讀取的目標數據存儲地址存在關聯關系的預取數據存儲地址;
[0042]數據預取模塊,用于根據所述讀取的目標數據長度對所述預取數據存儲地址中的數據進行預取;
[0043]其中,所述數據關聯關系表中存儲了每一個文件的元數據的存儲地址與數據存儲項的存儲地址的關聯關系,其中,所述目標數據存儲地址和所述預取數據存儲地址為所述元數據的存儲地址和所述數據存儲項的存儲地址中的一種。
[0044]在第四方面的第一種可能的實現方式中,所述存儲地址確定模塊,用于查詢存儲地址查詢表,根據所述讀取的目標數據存儲地址,確定所述讀取的目標數據存儲地址所在的數據關聯表項在所述數據關聯關系表中的地址;在所述數據關聯表項中,查找所述目標數據存儲地址的關聯存儲地址;將所述關聯存儲地址中的起始數據存儲地址作為預取數據存儲地址;
[0045]其中,在存儲地址查詢表的所述每一個文件的元數據和數據存儲項的存儲地址中記錄所述每一個文件的元數據的存儲地址和數據存儲項的存儲地址的數據關聯表項在所述數據關聯關系表中的地址;其中,所述存儲地址查詢表是按照存儲地址順序構成的。
[0046]本發明實施例提供的技術方案帶來的有益效果是:
[0047]在獲取多個文件的元數據后,解析每一個文件的元數據,得到每一個文件的數據存儲項的存儲地址;根據每一個文件的元數據的存儲地址和數據存儲項的存儲地址,建立數據關聯關系表,由于元數據中記錄了數據之間的關聯關系,所以無需耗費大量時間和內存資源進行數據關聯關系的挖掘,數據關聯關系表建立過程較為簡單和迅速,當接收到文件讀取請求時,基于建立的數據關聯關系進行數據預取可大幅提升數據的讀取效率。
【專利附圖】
【附圖說明】
[0048]為了更清楚地說明本發明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
[0049]圖1是本發明實施例提供的一種實現數據預取的方法流程圖;
[0050]圖2是本發明實施例提供的一種實現數據預取的方法流程圖;
[0051]圖3是本發明實施例提供的一種實現數據預取的方法流程圖;
[0052]圖4是本發明實施例提供的一種元數據與數據存儲項的對應關系示意圖;
[0053]圖5是本發明實施例提供的一種數據關聯關系表的示意圖;
[0054]圖6是本發明實施例提供的一種存儲地址查詢表的示意圖;
[0055]圖7是本發明實施例提供的一種數據預取系統的組成示意圖;
[0056]圖8是本發明實施例提供的一種實現數據預取的方法流程圖;
[0057]圖9是本發明實施例提供的一種數據預取系統的組成示意圖;
[0058]圖10是本發明實施例提供的一種數據預取系統的組成示意圖;
[0059]圖11是本發明實施例提供的一種實現數據預取裝置的結構示意圖;
[0060]圖12是本發明實施例提供的一種實現數據預取裝置的結構示意圖。
【具體實施方式】
[0061]為使本發明的目的、技術方案和優點更加清楚,下面將結合附圖對本發明實施方式作進一步地詳細描述。
[0062]圖1是本發明實施例提供的一種實現數據預取的方法流程圖。參見圖1,本發明實施例提供的方法應用存儲設備,該存儲設備中存儲多個文件。本發明實施例提供的方法流程包括:
[0063]101、獲取多個文件的元數據。
[0064]102、解析每一個文件的元數據,得到每一個文件的數據存儲項的地址信息。
[0065]103、根據每一個文件的元數據的存儲地址和數據存儲項的存儲地址,建立數據關聯關系表。
[0066]其中,對于一個文件來說,其可包括多個數據存儲項,本發明實施例中,數據存儲項用Record表示,每一個數據存儲項包括了該文件的部分數據。將一個文件的全部數據存儲項進行組合,便得到該文件包括的完整文件數據。也即,數據存儲項指代包括部分文件數據的子文件。
[0067]本發明實施例提供的方法,在獲取多個文件的元數據后,解析每一個文件的元數據,得到每一個的數據存儲項的存儲地址;根據每一個文件的元數據的存儲地址和數據存儲項的存儲地址,建立數據關聯關系表,由于元數據中記錄了數據之間的關聯關系,所以無需耗費大量時間和內存資源進行數據關聯關系的挖掘,數據關聯關系表建立過程較為簡單和迅速,當接收到文件讀取請求時,基于建立的數據關聯關系進行數據預取可大幅提升數據的讀取效率。
[0068]可選地,根據每一個文件的元數據的存儲地址和數據存儲項的存儲地址,建立數據關聯關系表,包括:
[0069]對于每一個文件,根據每一個文件的元數據的存儲地址和數據存儲項的存儲地址,建立一個數據關聯表項;
[0070]多個文件的元數據的存儲地址和數據存儲項的存儲地址的數據關聯表項組成數據關聯關系表。
[0071]其中,一個數據關聯表項,是指組成一個文件的數據的存儲地址,這里的數據包括文件元數據和文件數據。例如,如I個文件的元數據的存儲地址為LBA0,數據存儲項的存儲地址為LBA3和LBA9,因此,訪問該文件完整的數據,需要讀取LBA0、LBA3和LBA9中的數據,則認為這些存儲地址之間存在關聯關系,則將這些存儲地址組成一個數據關聯表項,當讀取其中任一個地址的數據時,則可以將該文件下一個存儲地址的存儲數據進行預取,從而加快數據讀取速 度,或者當只讀取其中一個存儲地址長度中部分數據時,則可以根據該數據關聯表項中的關聯關系,從該地址長度中剩余部分數據中進行預取。
[0072]可選地,該方法還包括;
[0073]在存儲地址查詢表的每一個文件的元數據和數據存儲項的存儲地址中記錄每一個文件的元數據的存儲地址和數據存儲項的存儲地址的數據關聯表項在數據關聯關系表中的地址;其中,存儲地址查詢表是按照存儲地址順序構成的。
[0074]其中一種實現方式根據邏輯塊地址LBA組成,具體地,為LBAOABAb^LBAn。每個文件的元數據和數據存儲項的存儲地址為LBA地址,如文件I的元數據的存儲地址為LBA0,數據存儲項的存儲地址為LBA3,文件I的元數據的存儲地址和數據存儲項的存儲地址的數據關聯表項在數據關聯關系表中的地址為5,則在存儲地址查詢表LBAO和LBA3的位置記錄數據關聯表項的地址為5。但本發明實施例中元數據和數據存儲項的存儲地址并不限于邏輯塊地址。
[0075]可選地,解析每一個文件的元數據,還包括獲得每一個文件的數據存儲項的長度,則每一個文件的元數據的存儲地址和數據存儲項的存儲地址的數據關聯表項中還包括數據存儲項的長度。
[0076]可選地,根據每一個文件的元數據的存儲地址和數據存儲項的存儲地址,建立數據關聯關系表之后,該方法還包括:
[0077]當檢測到多個文件中任一個文件的元數據或數據存儲項發生變化時,向存儲設備發送通知消息,通知信息中包括變化的元數據或變化的數據存儲項,以使存儲設備在接收到通知消息后,根據通知消息更新變化的文件的元數據的存儲地址和數據存儲項的存儲地址的數據關聯表項。
[0078]上述所有可選技術方案,可以采用任意結合形成本發明的可選實施例,在此不再
--贅述。
[0079]圖2是本發明實施例提供的一種實現數據預取的方法流程圖。參見圖2,本發明實施例提供的方法應用存儲設備,該存儲設備中存儲多個文件。本發明實施例提供的方法流程包括:
[0080]201、接收文件讀取請求,文件讀取請求中包括讀取的目標數據存儲地址和目標數據長度。
[0081]202、查詢數據關聯關系表,確定與讀取的目標數據存儲地址存在關聯關系的預取數據存儲地址;其中,數據關聯關系表中存儲了每一個文件的元數據的存儲地址與數據存儲項的存儲地址的關聯關系,其中,目標數據存儲地址和預取數據存儲地址為元數據的存儲地址和數據存儲項的存儲地址中的一種。
[0082]203、根據讀取的目標數據長度對預取數據存儲地址中的數據進行預取。
[0083]本發明實施例提供的方法,在獲取多個文件的元數據后,解析每一個文件的數據存儲項的存儲地址;根據每一個文件的元數據的存儲地址和數據存儲項的存儲地址,建立數據關聯關系表,當接收到文件讀取請求時,根據文件讀取請求和數據關聯關系表進行數據預取,由于元數據中記錄了數據之間的關聯關系,所以無需耗費大量時間和內存資源進行數據關聯關系的挖掘,數據關聯關系表建立過程較為簡單和迅速,基于建立的數據關聯關系進行數據預取可大幅提升數據的讀取效率。
[0084]可選地,查詢數據關聯關系表,確定與讀取的目標數據存儲地址存在關聯關系的預取存儲地址,包括:
[0085]查詢存儲地址查詢表,根據讀取的目標數據存儲地址,確定讀取的目標數據存儲地址所在的數據關聯表項在數據關聯關系表中的地址;
[0086]在數據關聯表項中,查找目標數據存儲地址的關聯存儲地址;
[0087]將關聯存儲地址中的起始數據存儲地址作為預取數據存儲地址;
[0088]其中,在存儲地址查詢表的每一個文件的元數據和數據存儲項的存儲地址中記錄每一個文件的元數據的存儲地址和數據存儲項的存儲地址的數據關聯表項在數據關聯關系表中的地址;其中,存儲地址查詢表是按照存儲地址順序構成的。
[0089]上述所有可選技術方案,可以采用任意結合形成本發明的可選實施例,在此不再--贅述。
[0090]圖3是本發明實施例提供的一種實現數據預取的方法流程圖,以數據關聯關系表存儲在應用服務器為例,現結合上述實施例提供的實現數據預取方式對本發明實施例進行詳細闡述。參見圖3,本發明實施例提供的方法流程包括:
[0091]301、獲取多個文件的元數據。
[0092]其中,元數據(Meta data)是描述其它數據的數據(data about other data),或者是用于提供某種資源的有關信息的結構數據(structured data)。元數據是描述信息資源或數據等對象的數據,其使用目的在于:識別資源;評價資源;追蹤資源在使用過程中的變化;實現簡單高效地管理大量網絡化數據;實現信息資源的有效發現、查找及對使用資源的有效管理。[0093]在本發明實施例中,獲取多個文件的元數據時,具體可采取下述方式實現:遍歷掃描文件系統的所有元數據區域,得到該文件系統中每一個文件的元數據。
[0094]其中,元數據區域指代文件系統中存儲元數據的區域。在文件系統中元數據區域可預先劃分好,也即,可預先規定文件系統中哪些區塊用來存儲每一個文件的元數據。針對不同的文件系統來說,元數據的獲取方式本質上是一致的,均需經過遍歷獲取操作,只不過針對不同文件系統而言,實際的獲取過程有所不同而已。下面以Iinux的ext2/ext3/ext4文件系統和windows的ntfs文件系統為例,對元數據的獲取方式進行解釋說明。
[0095]第一種方式、對于多個文件系統分區中的每一個分區,獲取存儲在分區中的元數據。
[0096]上述第一種方式適用于Iinux的ext2/ext3/ext4文件系統。針對這三種文件系統來說,文件系統被劃分為若干個區塊(block group);以存儲地址的大小為依據的話,排在靠前的數據部分便為元數據。遍歷文件系統中的各個區塊(block group),便可得到各個區塊中的元數據。此外,還可通過fdisk命令或dumpe2fs命令在各個區塊在進行元數據的獲取。具體采用上述何種方式獲取各個區塊中的元數據,本實施例對比不作具體限定。
[0097]第二種方式、獲取包含有多個元數據的特定文件,在特定文件中進行遍歷查找,得到文件系統中每一個文件的元數據。
[0098]上述第二種方式適用于windows的ntfs文件系統,特定文件指代$ MFT文件。對于ntfs文件系統而言,所有的元數據均放置在$ MFT文件中,遍歷該文件,便可得到文件系統中每一個文件的元數據。
[0099]302、解析每一個文件的元數據,得到每一個文件的數據存儲項的存儲地址和數據長度。
[0100]在本發明實施例中,在根據上述步驟301得到每一個文件的元數據后,為了挖掘數據之間的關聯關系,還要對每個元數據進行解析,得到與每個元數據相關聯的數據存儲項的存儲地址和數據長度。其中,數據存儲項中存儲了與元數據相關聯的文件數據。且對一個元數據來說,與其相關聯的數據存儲項可能存在多個。如圖4所示,元數據I對應兩個數據存儲項,分別為Recordl和ReCord2 ;元數據2對應兩個數據存儲項,分別為Record3和Record4 ;元數據3對應一個數據存儲項為Record5。
[0101]在對元數據進行解析時,可依據現有的解析方式實現,本實施例對此不作具體限定。在對一個元數據進行解析后,得到該元數據對應的數據存儲項的存儲地址(LBA)和數據長度(Len)。以存儲地址為0x0000,數據長度為5為例,則表明了文件數據存儲在地址0x0000至0x0005對應的存儲空間上。
[0102]303、根據每一個文件的元數據的存儲地址和數據長度、數據存儲項的存儲地址和數據長度,建立數據關聯關系表。
[0103]在本發明實施例中,根據每一個文件的元數據的存儲地址和數據長度、數據存儲項的存儲地址和數據長度,建立數據關聯關系表時,具體可采用下述方法實現:
[0104]對于每一個文件,根據文件的元數據的存儲地址和數據長度、數據存儲項的存儲地址和數據長度,建立一個數據關聯表項;多個文件的元數據的存儲地址和數據存儲項的存儲地址的數據關聯表項組成數據關聯關系表。
[0105]當然,除采取上述建立數據關聯關系表的方式外還可采取其他建立方式,本發明實施例對此不作具體限定。對于每一個數據關聯表項來說,其與一個文件相對應,每一個數據關聯表項中包括元數據的存儲地址和數據長度、數據存儲項的存儲地址和數據長度。在每一個數據關聯表項中,元數據與其他數據存儲項都存在關聯關系,相鄰的數據存儲項之間存在關聯關系。每一個文件對應的數據關聯表項組成數據關聯關系表。需要說明的是,不同的數據關聯表項之間不存在任何的關聯關系。一個數據關聯表項中的元數據或數據存儲項不可作為另一個數據關聯表項中的元數據或數據存儲項的預取數據。
[0106]下面結合圖4,以一個具體的例子對建立數據關聯關系表的實現方式進行詳細地解釋說明。
[0107]如圖4所示,文件I的元數據I的存儲地址為LBAO、數據長度為LenO,Recordl的存儲地址為LBA6、數據長度為Len6,Record2的存儲地址為LBA5、數據長度為Len5 ;文件2的元數據2的存儲地址為LBAl、數據長度為Lenl,record3的存儲地址為LBA4、數據長度為Len4,RecorcM的存儲地址為LBA7、數據長度為Len7 ;文件3的元數據3的存儲地址為LBA2、數據長度為Len2,ReCOrd5的存儲地址為LBA3、數據長度為Len3。在建立數據關聯關系表時,由于通過上述步驟302對元數據I進行解析,所以可知元數據I所在文件I有兩個數據存儲項,分別為Recordl和Record2,由于訪問該文件I完整的數據,需要讀取元數據
1、Recordl和Record2,所以元數據I與Recordl和Record2相對應,三者之間存在關聯關系,所以根據三者的存儲地址和數據長度建立一個如下表項I所示的數據關聯表項。
[0108]表項I
[0109]
【權利要求】
1.一種實現數據預取方法,應用于存儲設備,所述存儲設備中存儲多個文件,其特征在于,所述方法包括: 獲取所述多個文件的元數據; 解析每一個文件的元數據,得到所述每一個文件的數據存儲項的存儲地址; 根據所述每一個文件的元數據的存儲地址和數據存儲項的存儲地址,建立數據關聯關系表。
2.根據權利要求1所述的方法,所述根據所述每一個文件的元數據的存儲地址和數據存儲項的存儲地址,建立數據關聯關系表,包括: 對于所述每一個文件,根據所述每一個文件的元數據的存儲地址和數據存儲項的存儲地址,建立一個數據關聯表項; 所述多個文件的元數據的存儲地址和數據存儲項的存儲地址的數據關聯表項組成所述數據關聯關系表。
3.根據權利要求2所述的方法,其特征在于,所述方法還包括; 在存儲地址查詢表的所述每一個文件的元數據和數據存儲項的存儲地址中記錄所述每一個文件的元數據的存儲地址和數據存儲項的存儲地址的數據關聯表項在所述數據關聯關系表中的地址;其中,所述存儲地址查詢表是按照存儲地址順序構成的。
4.根據權利要求1或2所述的方法,其特征在于,所述解析所述每一個文件的元數據,還包括獲得所述每一個文件的數據存儲項的長度,則所述每一個文件的元數據的存儲地址和數據存儲項的存儲地址的數據關聯表項中還包括數據存儲項的長度。
5.根據權利要求1至4中任一權利要求所述的方法,其特征在于,所述根據所述每一個文件的元數據的存儲地址和數據存儲項的存儲地址,建立數據關聯關系表之后,所述方法還包括: 當檢測到所述多個文件中任一個文件的元數據或數據存儲項發生變化時,向存儲設備發送通知消息,所述通知信息中包括變化的元數據或變化的數據存儲項,以使所述存儲設備在接收到所述通知消息后,根據所述通知消息更新變化的文件的元數據的存儲地址和數據存儲項的存儲地址的數據關聯表項。
6.一種實現數據預取方法,應用于存儲設備,所述存儲設備中存儲多個文件,其特征在于,所述方法包括: 接收文件讀取請求,所述文件讀取請求中包括讀取的目標數據存儲地址和目標數據長度; 查詢數據關聯關系表,確定與所述讀取的目標數據存儲地址存在關聯關系的預取數據存儲地址; 根據所述讀取的目標數據長度對所述預取數據存儲地址中的數據進行預取; 其中,所述數據關聯關系表中存儲了每一個文件的元數據的存儲地址與數據存儲項的存儲地址的關聯關系,其中,所述目標數據存儲地址和所述預取數據存儲地址為所述元數據的存儲地址和所述數據存儲項的存儲地址中的一種。
7.根據權利要求6所述的方法,其特征在于,所述查詢數據關聯關系表,確定與所述讀取的目標數據存儲地址存在關聯關系的預取存儲地址,包括: 查詢存儲地址查詢表,根據所述讀取的目標數據存儲地址,確定所述讀取的目標數據存儲地址所在的數據關聯表項在所述數據關聯關系表中的地址; 在所述數據關聯表項中,查找所述目標數據存儲地址的關聯存儲地址; 將所述關聯存儲地址中的起始數據存儲地址作為預取數據存儲地址; 其中,在存儲地址查詢表的所述每一個文件的元數據和數據存儲項的存儲地址中記錄所述每一個文件的元數據的存儲地址和數據存儲項的存儲地址的數據關聯表項在所述數據關聯關系表中的地址;其中,所述存儲地址查詢表是按照存儲地址順序構成的。
8.一種實現數據預取裝置,應用于存儲設備,所述存儲設備中存儲多個文件,其特征在于,所述裝置包括: 數據獲取模塊,用于獲取所述多個文件的元數據; 數據解析模塊,用于解析每一個文件的元數據,得到所述每一個文件的數據存儲項的存儲地址; 關聯關系建立 模塊,用于根據所述每一個文件的元數據的存儲地址和數據存儲項的存儲地址,建立數據關聯關系表。
9.根據權利要求8所述的裝置,所述關聯關系建立模塊,用于對于所述每一個文件,根據所述每一個文件的元數據的存儲地址和數據存儲項的存儲地址,建立一個數據關聯表項;所述多個文件的元數據的存儲地址和數據存儲項的存儲地址的數據關聯表項組成所述數據關聯關系表。
10.根據權利要求9所述的裝置,其特征在于,所述裝置還包括: 存儲地址記錄模塊,用于在存儲地址查詢表的所述每一個文件的元數據和數據存儲項的存儲地址中記錄所述每一個文件的元數據的存儲地址和數據存儲項的存儲地址的數據關聯表項在所述數據關聯關系表中的地址;其中,所述存儲地址查詢表是按照存儲地址順序構成的。
11.根據權利要求8或9所述的裝置,其特征在于,所述數據解析模塊,還用于獲得所述每一個文件的數據存儲項的長度,則所述每一個文件的元數據的存儲地址和數據存儲項的存儲地址的數據關聯表項中還包括數據存儲項的長度。
12.根據權利要求8至11中任一權利要求所述的裝置,其特征在于,所述裝置還包括: 通知消息發送模塊,用于當檢測到所述多個文件中任一個文件的元數據或數據存儲項發生變化時,向存儲設備發送通知消息,所述通知信息中包括變化的元數據或變化的數據存儲項,以使所述存儲設備在接收到所述通知消息后,根據所述通知消息更新變化的文件的元數據的存儲地址和數據存儲項的存儲地址的數據關聯表項。
13.一種實現數據預取裝置,應用于存儲設備,所述存儲設備中存儲多個文件,其特征在于,所述裝置包括: 讀取請求接收模塊,用于接收文件讀取請求,所述文件讀取請求中包括讀取的目標數據存儲地址和目標數據長度; 存儲地址確定模塊,用于查詢數據關聯關系表,確定與所述讀取的目標數據存儲地址存在關聯關系的預取數據存儲地址; 數據預取模塊,用于根據所述讀取的目標數據長度對所述預取數據存儲地址中的數據進行預取; 其中,所述數據關聯關系表中存儲了每一個文件的元數據的存儲地址與數據存儲項的存儲地址的關聯關系,其中,所述目標數據存儲地址和所述預取數據存儲地址為所述元數據的存儲地址和所述數據存儲項的存儲地址中的一種。
14.根據權利要求13所述的裝置,其特征在于,所述存儲地址確定模塊,用于查詢存儲地址查詢表,根據所述讀取的目標數據存儲地址,確定所述讀取的目標數據存儲地址所在的數據關聯表項在所述數據關聯關系表中的地址;在所述數據關聯表項中,查找所述目標數據存儲地址的關聯存儲地址;將所述關聯存儲地址中的起始數據存儲地址作為預取數據存儲地址; 其中,在存儲地址查詢表的所述每一個文件的元數據和數據存儲項的存儲地址中記錄所述每一個文件的元數據的存儲地址和數據存儲項的存儲地址的數據關聯表項在所述數據關聯關系表中的 地址;其中,所述存儲地址查詢表是按照存儲地址順序構成的。
【文檔編號】G06F17/30GK103984640SQ201410201982
【公開日】2014年8月13日 申請日期:2014年5月14日 優先權日:2014年5月14日
【發明者】藍文海, 覃偉峰 申請人:華為技術有限公司