CN103984640B - 实现数据预取方法及装置 - Google Patents
实现数据预取方法及装置 Download PDFInfo
- Publication number
- CN103984640B CN103984640B CN201410201982.0A CN201410201982A CN103984640B CN 103984640 B CN103984640 B CN 103984640B CN 201410201982 A CN201410201982 A CN 201410201982A CN 103984640 B CN103984640 B CN 103984640B
- Authority
- CN
- China
- Prior art keywords
- data
- storage
- storage address
- file
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种实现数据预取方法及装置,属于计算机技术领域。所述方法包括:获取所述多个文件的元数据;解析每一个文件的元数据,得到所述每一个文件的数据存储项的存储地址;根据所述每一个文件的元数据的存储地址和数据存储项的存储地址,建立数据关联关系表;本发明中由于元数据中记录了数据之间的关联关系,所以无需耗费大量时间和内存资源进行数据关联关系的挖掘,数据关联关系表建立过程较为简单和迅速,当接收到文件读取请求时,基于建立的数据关联关系进行数据预取可大幅提升数据的读取效率。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种实现数据预取方法及装置。
背景技术
应用服务器从存储阵列读取数据过程中,常常需消耗大量的时间。为了减少数据读取所占用的大量时间,通常会进行数据预取。目前,通常采取如下所示的顺序预取方式和关联预取方式进行数据预取。
针对顺序预取方式来说,存储阵列在基于应用服务器的读请求读取第一数据之后,还将读取与第一数据所在扇区相邻的扇区中的第二数据,并将第二数据存储在缓冲区中。后续应用服务器再发送读请求时,若该读请求对应的数据为第二数据,则直接将存储在缓冲区中第二数据返回给应用服务器。
针对关联预取方式来说,通常采用C-miner算法和QuickMine算法实现。对于C-miner算法,在存储阵列侧基于历史请求的频繁序列,挖掘数据之间的关联关系,并将该关联关系进行存储。当接收到应用服务器发送的读请求后,存储阵列侧根据存储的关联关系预读与请求的数据相关联的数据。对于QuickMine算法,在应用服务器侧基于历史请求的频繁序列,挖掘数据之间的关联关系,并将该关联关系发送给存储阵列。当存储阵列接收到应用服务器发送的读请求后,根据存储的关联关系预读与请求的数据相关联的数据。
现有的数据预取方式,由于顺序预取方式中可能会出现大量并发数据,从而产生大量不同的数据序列,这样将导致无法识别数据是否顺序的,还可能存在由于数据本身比较小,所以识别数据较为困难的情况,所以该种数据预取方式效果较差;由于关联预取方式中需根据数目众多的频繁序列进行关联关系的挖掘,所以需消耗大量的时间和内存资源,该种数据预取方式的效果较差。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种实现数据预取方法及装置。所述技术方案如下:
第一方面,提供了一种实现数据预取方法,所述方法包括:
获取所述多个文件的元数据;
解析每一个文件的元数据,得到所述每一个文件的数据存储项的存储地址;
根据所述每一个文件的元数据的存储地址和数据存储项的存储地址,建立数据关联关系表。
在第一方面的第一种可能的实现方式中,所述根据所述每一个文件的元数据的存储地址和数据存储项的存储地址,建立数据关联关系表,包括:
对于所述每一个文件,根据所述每一个文件的元数据的存储地址和数据存储项的存储地址,建立一个数据关联表项;
所述多个文件的元数据的存储地址和数据存储项的存储地址的数据关联表项组成所述数据关联关系表。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述方法还包括;
在存储地址查询表的所述每一个文件的元数据和数据存储项的存储地址中记录所述每一个文件的元数据的存储地址和数据存储项的存储地址的数据关联表项在所述数据关联关系表中的地址;其中,所述存储地址查询表是按照存储地址顺序构成的。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第三种可能的实现方式中,所述解析所述每一个文件的元数据,还包括获得所述每一个文件的数据存储项的长度,则所述每一个文件的元数据的存储地址和数据存储项的存储地址的数据关联表项中还包括数据存储项的长度。
结合第一方面、第一方面的第一种至第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述根据所述每一个文件的元数据的存储地址和数据存储项的存储地址,建立数据关联关系表之后,所述方法还包括:
当检测到所述多个文件中任一个文件的元数据或数据存储项发生变化时,向存储设备发送通知消息,所述通知信息中包括变化的元数据或变化的数据存储项,以使所述存储设备在接收到所述通知消息后,根据所述通知消息更新变化的文件的元数据的存储地址和数据存储项的存储地址的数据关联表项。
第二方面,提供了一种实现数据预取方法,应用于存储设备,所述存储设备中存储多个文件,其特征在于,所述方法包括:
接收文件读取请求,所述文件读取请求中包括读取的目标数据存储地址和目标数据长度;
查询数据关联关系表,确定与所述读取的目标数据存储地址存在关联关系的预取数据存储地址;
根据所述读取的目标数据长度对所述预取数据存储地址中的数据进行预取;
其中,所述数据关联关系表中存储了每一个文件的元数据的存储地址与数据存储项的存储地址的关联关系,其中,所述目标数据存储地址和所述预取数据存储地址为所述元数据的存储地址和所述数据存储项的存储地址中的一种。
在第二方面的第一种可能的实现方式中,所述查询数据关联关系表,确定与所述读取的目标数据存储地址存在关联关系的预取存储地址,包括:
查询存储地址查询表,根据所述读取的目标数据存储地址,确定所述读取的目标数据存储地址所在的数据关联表项在所述数据关联关系表中的地址;
在所述数据关联表项中,查找所述目标数据存储地址的关联存储地址;
将所述关联存储地址中的起始数据存储地址作为预取数据存储地址;
其中,在存储地址查询表的所述每一个文件的元数据和数据存储项的存储地址中记录所述每一个文件的元数据的存储地址和数据存储项的存储地址的数据关联表项在所述数据关联关系表中的地址;其中,所述存储地址查询表是按照存储地址顺序构成的。
第三方面,提供了一种实现数据预取装置,所述装置包括:
数据获取模块,用于获取所述多个文件的元数据;
数据解析模块,用于解析每一个文件的元数据,得到所述每一个文件的数据存储项的存储地址;
关联关系建立模块,用于根据所述每一个文件的元数据的存储地址和数据存储项的存储地址,建立数据关联关系表。
在第三方面的第一种可能的实现方式中,所述关联关系建立模块,用于对于所述每一个文件,根据所述每一个文件的元数据的存储地址和数据存储项的存储地址,建立一个数据关联表项;所述多个文件的元数据的存储地址和数据存储项的存储地址的数据关联表项组成所述数据关联关系表。
结合第三方面,在第三方面的第二种可能的实现方式中,所述装置还包括:
存储地址记录模块,用于在存储地址查询表的所述每一个文件的元数据和数据存储项的存储地址中记录所述每一个文件的元数据的存储地址和数据存储项的存储地址的数据关联表项在所述数据关联关系表中的地址;其中,所述存储地址查询表是按照存储地址顺序构成的。
结合第三方面及第三方面的第一种可能的实现方式,在第三方面的第三种可能的实现方式中,所述数据解析模块,还用于获得所述每一个文件的数据存储项的长度,则所述每一个文件的元数据的存储地址和数据存储项的存储地址的数据关联表项中还包括数据存储项的长度。
结合第三方面、第三方面的第一种至第三种可能的实现方式,在第三方面的第四种可能的实现方式中,所述装置还包括:
通知消息发送模块,用于当检测到所述多个文件中任一一个文件的元数据或数据存储项发生变化时,向存储设备发送通知消息,所述通知信息中包括变化的元数据或变化的数据存储项,以使所述存储设备在接收到所述通知消息后,根据所述通知消息更新变化的文件的元数据的存储地址和数据存储项的存储地址的数据关联表项。
第四方面,提供了一种实现数据预取装置,应用于存储设备,所述存储设备中存储多个文件,其特征在于,所述装置包括:
读取请求接收模块,用于接收文件读取请求,所述文件读取请求中包括读取的目标数据存储地址和目标数据长度;
存储地址确定模块,用于查询数据关联关系表,确定与所述读取的目标数据存储地址存在关联关系的预取数据存储地址;
数据预取模块,用于根据所述读取的目标数据长度对所述预取数据存储地址中的数据进行预取;
其中,所述数据关联关系表中存储了每一个文件的元数据的存储地址与数据存储项的存储地址的关联关系,其中,所述目标数据存储地址和所述预取数据存储地址为所述元数据的存储地址和所述数据存储项的存储地址中的一种。
在第四方面的第一种可能的实现方式中,所述存储地址确定模块,用于查询存储地址查询表,根据所述读取的目标数据存储地址,确定所述读取的目标数据存储地址所在的数据关联表项在所述数据关联关系表中的地址;在所述数据关联表项中,查找所述目标数据存储地址的关联存储地址;将所述关联存储地址中的起始数据存储地址作为预取数据存储地址;
其中,在存储地址查询表的所述每一个文件的元数据和数据存储项的存储地址中记录所述每一个文件的元数据的存储地址和数据存储项的存储地址的数据关联表项在所述数据关联关系表中的地址;其中,所述存储地址查询表是按照存储地址顺序构成的。
本发明实施例提供的技术方案带来的有益效果是:
在获取多个文件的元数据后,解析每一个文件的元数据,得到每一个文件的数据存储项的存储地址;根据每一个文件的元数据的存储地址和数据存储项的存储地址,建立数据关联关系表,由于元数据中记录了数据之间的关联关系,所以无需耗费大量时间和内存资源进行数据关联关系的挖掘,数据关联关系表建立过程较为简单和迅速,当接收到文件读取请求时,基于建立的数据关联关系进行数据预取可大幅提升数据的读取效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种实现数据预取的方法流程图;
图2是本发明实施例提供的一种实现数据预取的方法流程图;
图3是本发明实施例提供的一种实现数据预取的方法流程图;
图4是本发明实施例提供的一种元数据与数据存储项的对应关系示意图;
图5是本发明实施例提供的一种数据关联关系表的示意图;
图6是本发明实施例提供的一种存储地址查询表的示意图;
图7是本发明实施例提供的一种数据预取***的组成示意图;
图8是本发明实施例提供的一种实现数据预取的方法流程图;
图9是本发明实施例提供的一种数据预取***的组成示意图;
图10是本发明实施例提供的一种数据预取***的组成示意图;
图11是本发明实施例提供的一种实现数据预取装置的结构示意图;
图12是本发明实施例提供的一种实现数据预取装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图1是本发明实施例提供的一种实现数据预取的方法流程图。参见图1,本发明实施例提供的方法应用存储设备,该存储设备中存储多个文件。本发明实施例提供的方法流程包括:
101、获取多个文件的元数据。
102、解析每一个文件的元数据,得到每一个文件的数据存储项的地址信息。
103、根据每一个文件的元数据的存储地址和数据存储项的存储地址,建立数据关联关系表。
其中,对于一个文件来说,其可包括多个数据存储项,本发明实施例中,数据存储项用Record表示,每一个数据存储项包括了该文件的部分数据。将一个文件的全部数据存储项进行组合,便得到该文件包括的完整文件数据。也即,数据存储项指代包括部分文件数据的子文件。
本发明实施例提供的方法,在获取多个文件的元数据后,解析每一个文件的元数据,得到每一个的数据存储项的存储地址;根据每一个文件的元数据的存储地址和数据存储项的存储地址,建立数据关联关系表,由于元数据中记录了数据之间的关联关系,所以无需耗费大量时间和内存资源进行数据关联关系的挖掘,数据关联关系表建立过程较为简单和迅速,当接收到文件读取请求时,基于建立的数据关联关系进行数据预取可大幅提升数据的读取效率。
可选地,根据每一个文件的元数据的存储地址和数据存储项的存储地址,建立数据关联关系表,包括:
对于每一个文件,根据每一个文件的元数据的存储地址和数据存储项的存储地址,建立一个数据关联表项;
多个文件的元数据的存储地址和数据存储项的存储地址的数据关联表项组成数据关联关系表。
其中,一个数据关联表项,是指组成一个文件的数据的存储地址,这里的数据包括文件元数据和文件数据。例如,如1个文件的元数据的存储地址为LBA0,数据存储项的存储地址为LBA3和LBA9,因此,访问该文件完整的数据,需要读取LBA0、LBA3和LBA9中的数据,则认为这些存储地址之间存在关联关系,则将这些存储地址组成一个数据关联表项,当读取其中任一个地址的数据时,则可以将该文件下一个存储地址的存储数据进行预取,从而加快数据读取速度,或者当只读取其中一个存储地址长度中部分数据时,则可以根据该数据关联表项中的关联关系,从该地址长度中剩余部分数据中进行预取。
可选地,该方法还包括;
在存储地址查询表的每一个文件的元数据和数据存储项的存储地址中记录每一个文件的元数据的存储地址和数据存储项的存储地址的数据关联表项在数据关联关系表中的地址;其中,存储地址查询表是按照存储地址顺序构成的。
其中一种实现方式根据逻辑块地址LBA组成,具体地,为LBA0,LBA1…LBAn。每个文件的元数据和数据存储项的存储地址为LBA地址,如文件1的元数据的存储地址为LBA0,数据存储项的存储地址为LBA3,文件1的元数据的存储地址和数据存储项的存储地址的数据关联表项在数据关联关系表中的地址为5,则在存储地址查询表LBA0和LBA3的位置记录数据关联表项的地址为5。但本发明实施例中元数据和数据存储项的存储地址并不限于逻辑块地址。
可选地,解析每一个文件的元数据,还包括获得每一个文件的数据存储项的长度,则每一个文件的元数据的存储地址和数据存储项的存储地址的数据关联表项中还包括数据存储项的长度。
可选地,根据每一个文件的元数据的存储地址和数据存储项的存储地址,建立数据关联关系表之后,该方法还包括:
当检测到多个文件中任一个文件的元数据或数据存储项发生变化时,向存储设备发送通知消息,通知信息中包括变化的元数据或变化的数据存储项,以使存储设备在接收到通知消息后,根据通知消息更新变化的文件的元数据的存储地址和数据存储项的存储地址的数据关联表项。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
图2是本发明实施例提供的一种实现数据预取的方法流程图。参见图2,本发明实施例提供的方法应用存储设备,该存储设备中存储多个文件。本发明实施例提供的方法流程包括:
201、接收文件读取请求,文件读取请求中包括读取的目标数据存储地址和目标数据长度。
202、查询数据关联关系表,确定与读取的目标数据存储地址存在关联关系的预取数据存储地址;其中,数据关联关系表中存储了每一个文件的元数据的存储地址与数据存储项的存储地址的关联关系,其中,目标数据存储地址和预取数据存储地址为元数据的存储地址和数据存储项的存储地址中的一种。
203、根据读取的目标数据长度对预取数据存储地址中的数据进行预取。
本发明实施例提供的方法,在获取多个文件的元数据后,解析每一个文件的数据存储项的存储地址;根据每一个文件的元数据的存储地址和数据存储项的存储地址,建立数据关联关系表,当接收到文件读取请求时,根据文件读取请求和数据关联关系表进行数据预取,由于元数据中记录了数据之间的关联关系,所以无需耗费大量时间和内存资源进行数据关联关系的挖掘,数据关联关系表建立过程较为简单和迅速,基于建立的数据关联关系进行数据预取可大幅提升数据的读取效率。
可选地,查询数据关联关系表,确定与读取的目标数据存储地址存在关联关系的预取存储地址,包括:
查询存储地址查询表,根据读取的目标数据存储地址,确定读取的目标数据存储地址所在的数据关联表项在数据关联关系表中的地址;
在数据关联表项中,查找目标数据存储地址的关联存储地址;
将关联存储地址中的起始数据存储地址作为预取数据存储地址;
其中,在存储地址查询表的每一个文件的元数据和数据存储项的存储地址中记录每一个文件的元数据的存储地址和数据存储项的存储地址的数据关联表项在数据关联关系表中的地址;其中,存储地址查询表是按照存储地址顺序构成的。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
图3是本发明实施例提供的一种实现数据预取的方法流程图,以数据关联关系表存储在应用服务器为例,现结合上述实施例提供的实现数据预取方式对本发明实施例进行详细阐述。参见图3,本发明实施例提供的方法流程包括:
301、获取多个文件的元数据。
其中,元数据(Meta data)是描述其它数据的数据(data about other data),或者是用于提供某种资源的有关信息的结构数据(structured data)。元数据是描述信息资源或数据等对象的数据,其使用目的在于:识别资源;评价资源;追踪资源在使用过程中的变化;实现简单高效地管理大量网络化数据;实现信息资源的有效发现、查找及对使用资源的有效管理。
在本发明实施例中,获取多个文件的元数据时,具体可采取下述方式实现:遍历扫描文件***的所有元数据区域,得到该文件***中每一个文件的元数据。
其中,元数据区域指代文件***中存储元数据的区域。在文件***中元数据区域可预先划分好,也即,可预先规定文件***中哪些区块用来存储每一个文件的元数据。针对不同的文件***来说,元数据的获取方式本质上是一致的,均需经过遍历获取操作,只不过针对不同文件***而言,实际的获取过程有所不同而已。下面以linux的ext2/ext3/ext4文件***和windows的ntfs文件***为例,对元数据的获取方式进行解释说明。
第一种方式、对于多个文件***分区中的每一个分区,获取存储在分区中的元数据。
上述第一种方式适用于linux的ext2/ext3/ext4文件***。针对这三种文件***来说,文件***被划分为若干个区块(block group);以存储地址的大小为依据的话,排在靠前的数据部分便为元数据。遍历文件***中的各个区块(block group),便可得到各个区块中的元数据。此外,还可通过fdisk命令或dumpe2fs命令在各个区块在进行元数据的获取。具体采用上述何种方式获取各个区块中的元数据,本实施例对比不作具体限定。
第二种方式、获取包含有多个元数据的特定文件,在特定文件中进行遍历查找,得到文件***中每一个文件的元数据。
上述第二种方式适用于windows的ntfs文件***,特定文件指代$MFT文件。对于ntfs文件***而言,所有的元数据均放置在$MFT文件中,遍历该文件,便可得到文件***中每一个文件的元数据。
302、解析每一个文件的元数据,得到每一个文件的数据存储项的存储地址和数据长度。
在本发明实施例中,在根据上述步骤301得到每一个文件的元数据后,为了挖掘数据之间的关联关系,还要对每个元数据进行解析,得到与每个元数据相关联的数据存储项的存储地址和数据长度。其中,数据存储项中存储了与元数据相关联的文件数据。且对一个元数据来说,与其相关联的数据存储项可能存在多个。如图4所示,元数据1对应两个数据存储项,分别为Record1和Record2;元数据2对应两个数据存储项,分别为Record3和Record4;元数据3对应一个数据存储项为Record5。
在对元数据进行解析时,可依据现有的解析方式实现,本实施例对此不作具体限定。在对一个元数据进行解析后,得到该元数据对应的数据存储项的存储地址(LBA)和数据长度(Len)。以存储地址为0x0000,数据长度为5为例,则表明了文件数据存储在地址0x0000至0x0005对应的存储空间上。
303、根据每一个文件的元数据的存储地址和数据长度、数据存储项的存储地址和数据长度,建立数据关联关系表。
在本发明实施例中,根据每一个文件的元数据的存储地址和数据长度、数据存储项的存储地址和数据长度,建立数据关联关系表时,具体可采用下述方法实现:
对于每一个文件,根据文件的元数据的存储地址和数据长度、数据存储项的存储地址和数据长度,建立一个数据关联表项;多个文件的元数据的存储地址和数据存储项的存储地址的数据关联表项组成数据关联关系表。
当然,除采取上述建立数据关联关系表的方式外还可采取其他建立方式,本发明实施例对此不作具体限定。对于每一个数据关联表项来说,其与一个文件相对应,每一个数据关联表项中包括元数据的存储地址和数据长度、数据存储项的存储地址和数据长度。在每一个数据关联表项中,元数据与其他数据存储项都存在关联关系,相邻的数据存储项之间存在关联关系。每一个文件对应的数据关联表项组成数据关联关系表。需要说明的是,不同的数据关联表项之间不存在任何的关联关系。一个数据关联表项中的元数据或数据存储项不可作为另一个数据关联表项中的元数据或数据存储项的预取数据。
下面结合图4,以一个具体的例子对建立数据关联关系表的实现方式进行详细地解释说明。
如图4所示,文件1的元数据1的存储地址为LBA0、数据长度为Len0,Record1的存储地址为LBA6、数据长度为Len6,Record2的存储地址为LBA5、数据长度为Len5;文件2的元数据2的存储地址为LBA1、数据长度为Len1,record3的存储地址为LBA4、数据长度为Len4,Record4的存储地址为LBA7、数据长度为Len7;文件3的元数据3的存储地址为LBA2、数据长度为Len2,Record5的存储地址为LBA3、数据长度为Len3。在建立数据关联关系表时,由于通过上述步骤302对元数据1进行解析,所以可知元数据1所在文件1有两个数据存储项,分别为Record1和Record2,由于访问该文件1完整的数据,需要读取元数据1、Record1和Record2,所以元数据1与Record1和Record2相对应,三者之间存在关联关系,所以根据三者的存储地址和数据长度建立一个如下表项1所示的数据关联表项。
表项1
元数据1 | LBA0 | Len0 |
Record1 | LBA6 | Len6 |
Record2 | LBA5 | Len5 |
由于通过上述步骤302对元数据2进行解析,所以可知元数据2所在文件2有两个数据存储项,分别为Record3和Record4,由于访问该文件2完整的数据,需要读取元数据2、Record3和Record4,所以元数据2与Record3和Record4相对应,三者之间存在关联关系,所以根据三者的存储地址和数据长度也可建立一个如下表项2所示的数据关联表项。
表项2
元数据2 | LBA1 | Len1 |
Record3 | LBA4 | Len4 |
Record4 | LBA7 | Len7 |
由于通过上述步骤302对元数据3进行解析,所以可知元数据3所在文件3有一个数据存储项,为Record5,由于访问该文件3完整的数据,需要读取元数据3、Record5,所以元数据3与Record5相对应,二者存在关联关系,所以根据二者的存储地址和数据长度也可建立一个如下表项3所示的数据关联表项。
表项3
元数据3 | LBA2 | Len2 |
Record5 | LBA3 | Len3 |
表项1、表项2和表项3组成如图5所示的数据关联关系表。
需要说明的是,在建立数据关联关系表后,该数据关联关系表既可存储在应用服务器,也可存储在存储设备。本实施例仅以数据关联关系表存储在应用服务器为例,对数据预取方式进行举例说明。对于数据关联关系表存储在存储设备时,数据预取的具体实现将在后续实施例中予以说明。
可选地,由于存储海量文件,所以在建立数据关联关系表时,数据关联关系表中的数据关联表项可能存在成千上万个,为了在数据关联关系表中快速地对某一数据关联表项进行定位,本发明实施例提供的方法还包括下述步骤304。
304、在存储地址查询表的每一个文件的元数据和数据存储项的存储地址中记录每一个文件的元数据的存储地址和数据存储项的存储地址的数据关联表项在数据关联关系表中的地址;其中,存储地址查询表是按照存储地址顺序构成的。
在本发明实施例中,对于每一个文件来说,其对应的数据关联表项中存储了该文件的元数据的存储地址和数据长度、数据存储项的存储地址和数据长度。在后续数据预取过程中,为了快速获知各个数据关联表项在数据关联关系表中的存储位置,本发明实施例提供的方法还设置了一个存储地址查询表。在该存储地址查询表中,分别在每一个文件的元数据和数据存储项的存储地址的位置记录该文件的元数据和数据存储项的存储地址的关联表项在数据关联关系表中的地址,通过文件读取请求中携带的读取的目标数据存储地址,查询该目标数据存储地址在存储地址查询表中位置,确定该目标数据存储地址对应的元数据和数据存储项的存储地址的关联表项在数据关联关系表中的地址,进而根据该元数据和数据存储项的存储地址的关联表项确定需要预取的数据,加快了确定预取数据的速度。其中一种实现方式,在数据关联表中,每一条数据关联表项通过该数据关联表项中的元数据的存储地址在数据关联表中的地址作为该数据关联表项在数据关联表中的地址。所以,在存储地址查询表文件的元数据的存储地址,获得该文件元数据的存储地址在数据关联表中的地址,就确定该文件的数据关联表项在数据关联表中的地址。
结合图4,以元数据1的存储地址在数据关联关系表中的地址为5、元数据2的存储地址在数据关联关系表中的地址为50、元数据3的存储地址在数据关联关系表中的地址为54为例,则可生成如图6所示的存储地址查询表(LBA表)。
结合图4和图6来说,存储地址查询表是按照存储地址顺序构成的,也即表明图4中元数据和数据存储项的存储地址顺序与图6中的元数据和数据存储项的存储地址顺序是一致的。即,图4中元数据1的表格与图6中的第一个值为“5”的表格对应,表明图6中的第一个值为“5”的表格用来描述元数据1在数据关联关系表中的位置。图4中元数据2的表格与图6中的第一个值为“50”的表格对应,表明图6中的第一个值为“50”的表格用来描述元数据2在数据关联关系表中的位置。依次类推,Record1和Record2的存储地址和数据长度所在数据关联表项在数据关联关系表中的地址为5;Record3和Record4的存储地址和数据长度所在数据关联表项在数据关联关系表中的地址为50;元数据3和Record5的存储地址和数据长度所在数据关联表项在数据关联关系表中的地址为54。
需要说明的是,在通过上述步骤301至步骤304建立数据关联关系表和存储地址查询表后,当应用服务器的应用向存储设备中的文件发起文件读取请求后,根据该文件读取请求、数据关联关系表和存储地址查询表便可进行数据预取,详细过程参见下述步骤305至步骤308。
在对步骤305至步骤308进行阐述之前,先对基于步骤304和步骤306进行数据预取进行简单介绍。参见图7包括应用服务器和存储设备。应用服务器中包括多个应用和文件***,且在文件***之下部署了可获取元数据的元数据感知单元和数据关联关系存储单元,这里可获取元数据的元数据感知单元和数据关联关系存储单元只是逻辑划分,具体实现可以作为单独的软件模块存储,也可以集成到文件***或驱动中,对此不作具体限定。一种实现方式,存储设备为存储阵列,包括控制器和磁盘阵列,其中,控制器中包括缓存,用于存储向磁盘阵列的写入数据或者从磁盘阵列中读取的数据。存储阵列存储多个文件。应用服务器与存储阵列进行通信时,通过存储协议实现。如应用服务器使用SCSI(Small ComputerSystem Interface,小型计算机***接口)协议中的mode sence私有页将打包的文件读取请求或预取信息发送至存储阵列。
305、接收文件读取请求,文件读取请求中包括读取的目标数据存储地址和目标数据长度。
在本发明实施例中,应用服务器会实时感知是否有存在文件读取请求;当感知到文件读取请求时,接收该文件读取请求。该文件读取请求中至少包括读取的目标数据存储地址和目标数据长度。当然,文件读取请求中除包括上述读取的目标数据存储地址和目标数据长度外,还可包括其他信息,例如,文件读取请求的生成时间等等,本发明实施例对此不进行具体限定。
306、查询存储地址查询表,根据读取的目标数据存储地址,确定读取的目标数据存储地址所在的数据关联表项在数据关联关系表中的地址。
针对该步骤,由于存储地址查询表中每一个文件的元数据的存储地址和数据存储项的存储地址中记录了每一个文件的元数据的存储地址和数据存储项的存储地址的数据关联表项在数据关联关系表中的地址,所以查询存储地址查询表便可确定与读取的目标数据存储地址中的存储的该文件的元数据的存储地址和数据存储项的存储地址的数据关联表项在数据关联关系表中的地址。结合图4、图5和图6来说,假设读取的目标数据存储地址为LBA6为例,则结合图6所示的存储地址查询表可确定读取的目标数据存储地址LBA6所在的数据关联表项在数据关联关系表中的地址为5。也即,通过存储地址查询表锁定了读取的目标数据存储地址LBA6所在的数据关联表项的地址。当然,也可以不使用存储地址查询表,而直接遍历数据关联关系表以查找到该数据关联表项。
307、在该数据关联表项中,查找目标数据存储地址的关联存储地址;将关联存储地址中的起始数据存储地址作为预取数据存储地址。
在本发明实施例中,当确定读取的目标数据存储地址所在的数据关联表项后,确定读取的目标数据存储地址在该数据关联表项中的位置。由于一个数据关联表项中的元数据的存储地址与该数据关联表项中的所有数据存储项存储地址均存在关联关系,所以在确定读取的目标数据存储地址在该数据关联表项中的位置后,便可继续查找读取的目标数据存储地址的关联存储地址。例如,读取的目标数据为文件A的数据,文件A的元数据地址为LBA1,数据存储项地址为LBA2和LBA5,读取文件A时,要访问LBA1,接下来还要访问LBA2和LBA5,这里LBA1、LBA2和LBA5组成关联表项,如果读取的目标数据存储地址为LBA2,则与读取的目标数据存储地址关联下一个存储地址为LBA5。在确定预取数据的存储地址后,还要根据请求数据长度确定预取数据的长度。
此外,在查找到读取的目标数据存储地址的关联存储地址后,便可将关联存储地址中的起始数据存储地址作为预取数据存储地址,再根据预取的数据长度,确定预取数据的范围。
需要说明的是,由于某些数据存储项(Record)中存储空间可能很大,可存储多次读取的数据。针对该种情况,在进行数据预取时,预取数据可能与请求数据处于同一数据存储项,只不过相对于请求数据而言,该预取数据要延后被读取到。此外,本发明实施例之所以将与读取的目标数据存储地址关联的下一个存储地址信息条目作为预取数据地址信息所在条目,是因为本发明实施例在建立数据关联关系表时是按照一定规则建立的。继续以图4为例,图4中的元数据1对应Record1和Record2,仅在Record1中存储空间使用完毕后,才会在Record2中继续存储读取的数据,所以Record2中的数据一定为Record1中的数据的预取数据。所以在建立数据关联关系表时,Record1的存储地址排列在Record1的存储地址之前。也即,对于一个关联关系表项来说,下一个存储地址对应的数据为上一个存储地址对应的数据的预取数据。
308、将读取的目标数据长度及预取数据存储地址发送至存储设备,以使存储设备在接收到读取的目标数据长度及预取数据存储地址后,根据读取的目标数据长度将预取数据存储地址中的数据作为预取数据进行预取。
在本发明实施例中,将读取的目标数据长度及预取数据存储地址发送至存储设备时,具体可采取下述方式实现:
将读取的目标数据长度及预取数据存储地址通过SCSI协议中的mode sence私有页发送至存储设备。
当然,除上述发送读取的目标数据长度及预取数据存储地址的方式外,还可采取其他发送方式,本实施例对此不作具体限定。
当存储设备接收到应用服务器发送的读取的目标数据长度及预取数据存储地址后,先根据预取数据存储地址确定预取数据的存储位置,之后根据读取的目标数据长度进行预取数据的读取,并将获取到的预取数据存储在自身的缓冲区,以方便当应用服务器后续的文件读取请求指向该预取数据时,可直接从缓冲区中获取该预取数据,节省了数据获取时间,提高了数据读取效率。
需要说明的是,在建立数据关联关系表后,若后续过程中应用服务器检测到文件***的元数据或文件数据发生变化时,比如对文件数据或元数据进行创建或删除操作时,则还需对已建立的数据关联关系表进行更新。由于本发明实施例中数据关联关系表存储在应用服务器,所以应用服务器可直接对已建立的数据关联关系表进行更新。当应用服务器检测到元数据或文件数据的创建操作时,在已建立的数据关联关系表中新建一或多个数据关联表项;当应用服务器检测到元数据或文件数据的删除操作时,在已建立的数据关联关系表中删除一或多个数据关联表项。另一种实现方式,本发明实施例中也可以应用到网络附件存储(Network Attached Storage,NAS)中,则在文件服务器的文件***之下部署了可获取元数据的元数据感知单元和数据关联关系存储单元,这里可获取元数据的元数据感知单元和数据关联关系存储单元只是逻辑划分,具体实现可以作为单独的软件模块存储,也可以集成到文件***或驱动中,对此不作具体限定。
本发明实施例提供的方法,在获取文件***的多个元数据后,对每个元数据进行解析,得到每个元数据对应的至少一个数据存储项的地址信息;根据多个元数据的地址信息和多个数据存储项的地址信息,建立数据关联关系表,当接收到文件读取请求时,根据文件读取请求和数据关联关系表进行数据预取,由于元数据中记录了数据之间的关联关系,所以无需耗费大量时间和内存资源进行数据关联关系的挖掘,数据关联关系表建立过程较为简单和迅速,基于建立的数据关联关系进行数据预取可大幅提升数据的读取效率。
图8是本发明实施例提供的一种数据预取方法的流程图,以存储设备为存储阵列为例,数据关联关系表存储在存储阵列,现结合上述实施例提供的实现数据预取方式对本发明实施例进行详细阐述。参见图8,本发明实施例提供的方法流程包括:
801、获取多个文件的元数据。
本步骤与上述步骤301同理,此处不再赘述。
802、解析每一个文件的元数据,得到每一个文件的数据存储项的存储地址和数据长度。
本步骤与上述步骤302同理,此处不再赘述。
803、根据每一个文件的元数据的存储地址和数据长度、数据存储项的存储地址和数据长度,建立数据关联关系表。
本步骤与上述步骤303同理,此处不再赘述。
需要说明的是,通过上述步骤801至步骤803建立数据关联关系表,由于存储海量文件,所以在建立数据关联关系表时,数据关联关系表中的数据关联表项可能存在成千上万个,为了在数据关联关系表中快速地对某一数据关联表项进行定位,本发明实施例提供的方法还包括下述步骤804。
804、在存储地址查询表的每一个文件的元数据和数据存储项的存储地址中记录每一个文件的元数据的存储地址和数据存储项的存储地址的数据关联表项在数据关联关系表中的地址;其中,存储地址查询表是按照存储地址顺序构成的。具体描述可参见前面实施例。
本步骤与上述步骤304同理,此处不再赘述。
需要说明的是,在通过上述步骤301至步骤304建立数据关联关系表和存储地址查询表后,当应用服务器的各个应用发起文件读取请求后,根据该文件读取请求和建立的数据关联关系表和存储地址查询表便可进行数据预取,详细过程参见下述步骤805。
在对步骤805进行阐述之前,先对基于步骤805进行数据预取的数据预取***进行简单介绍。数据预取***包括应用服务器和存储阵列。参见图9和图10,应用服务器中包括应用、文件***,且在文件***之下部署了可获取元数据的元数据感知单元。存储阵列包括存储数据的cache(缓存)和磁盘、数据预取单元和预取关联关系存储单元。应用服务器与存储阵列进行通信时,通过存储协议实现。如应用服务器使用SCSI协议中的mode sence私有页将打包的文件读取请求发送至存储阵列。
805、当接收到文件读取请求时,将文件读取请求发送至存储阵列,以使存储阵列在接收到文件读取请求后,查询存储地址查询表,根据读取的目标数据存储地址,确定读取的目标数据存储地址所在的数据关联表项在数据关联关系表中的地址;在数据关联表项中,查找目标数据存储地址的关联存储地址;将关联存储地址中的起始数据存储地址作为预取数据存储地址;根据读取的目标数据长度对预取数据存储地址中的数据进行预取。
存储阵列根据文件读取请求中包括的读取的目标数据存储地址和目标数据长度,查询关联关系表和存储地址查询表进行数据预取的方式,同上述步骤306至307同理,此处不再赘述。存储阵列在获取到预取数据后,将获取到的预取数据存储在自身的缓冲区。以方便当应用服务器后续的文件读取请求指向该预取数据时,可直接从缓冲区中获取该预取数据,节省了数据获取时间,提高了数据读取效率。
需要说明的是,在建立数据关联关系表后,若后续过程中应用服务器检测到文件***的元数据或文件数据发生变化时,比如对文件数据或元数据进行创建或删除操作时,则还需对已建立的数据关联关系表进行更新。由于本发明实施例中数据关联关系表存储在存储阵列,所以应用服务器需向存储阵列发送通知消息,该通知信息中包括变化的元数据或变化的文件数据,以使存储阵列在接收到通知消息后,根据通知消息更新数据关联关系表中变化的文件的元数据的存储地址和数据存储项的存储地址的数据关联表项。当应用服务器检测到元数据或文件数据的创建操作时,存储在阵列侧在已建立的数据关联关系表中新建一或多个数据关联表项;当应用服务器检测到元数据或文件数据的删除操作时,存储阵列在已建立的数据关联关系表中删除一或多个数据关联表项。
针对上面两个实施例而言,数据预取在均在存储阵列进行。针对cache来说,存储阵列的cache要比应用服务器的cache的存储空间大得多;若在文件***进行数据预取,由于应用服务器的cache太小,会存在虽然进行了数据预读但等不到应用进行数据读取该预取数据就被淘汰的情况。而存储阵列的数据预读可很好地解决这个问题。
本发明实施例提供的方法,在获取多个文件的元数据后,解析每一个文件的元数据,得到每一个文件的数据存储项的存储地址;根据每一个文件的元数据的存储地址和多个数据存储项的存储地址,建立数据关联关系表,当接收到文件读取请求时,根据文件读取请求和数据关联关系表进行数据预取,由于元数据中记录了数据之间的关联关系,所以无需耗费大量时间和内存资源进行数据关联关系的挖掘,数据关联关系表建立过程较为简单和迅速,基于建立的数据关联关系进行数据预取可大幅提升数据的读取效率。
图11是本发明实施例提供的一种数据预取装置,应用于存储设备,该存储设备中存储多个文件,参见图11,该装置包括:数据获取模块1101、数据解析模块1102、关联关系建立模块1103。
其中,数据获取模块1101,用于获取多个文件的元数据;数据解析模块1102与数据获取模块1101连接,用于解析每一个文件的元数据,得到每一个文件的数据存储项的存储地址;关联关系建立模块1103与数据解析模块1102连接,用于根据每一个文件的元数据的存储地址和数据存储项的存储地址,建立数据关联关系表。
可选地,关联关系建立模块,用于对于每一个文件,根据每一个文件的元数据的存储地址和数据存储项的存储地址,建立一个数据关联表项;多个文件的元数据的存储地址和数据存储项的存储地址的数据关联表项组成数据关联关系表。
可选地,该装置还包括:
存储地址记录模块,用于在存储地址查询表的每一个文件的元数据和数据存储项的存储地址中记录每一个文件的元数据的存储地址和数据存储项的存储地址的数据关联表项在数据关联关系表中的地址;其中,存储地址查询表是按照存储地址顺序构成的。
可选地,数据解析模块,还用于获得每一个文件的数据存储项的长度,则每一个文件的元数据的存储地址和数据存储项的存储地址的数据关联表项中还包括数据存储项的长度。
可选地,该装置还包括:
通知消息发送模块,用于当检测到多个文件中任一个文件的元数据或数据存储项发生变化时,向存储设备发送通知消息,通知信息中包括变化的元数据或变化的文件数据,以使存储阵列在接收到通知消息后,根据通知消息更新变化的文件的元数据的存储地址和数据存储项的存储地址的数据关联表项。
综上所述,本发明实施例提供的装置,在获取多个文件的元数据后,解析每一个文件的元数据,得到每一个文件的数据存储项的存储地址;根据每一个文件的元数据的存储地址和数据存储项的存储地址,建立数据关联关系表,由于元数据中记录了数据之间的关联关系,所以无需耗费大量时间和内存资源进行数据关联关系的挖掘,数据关联关系表建立过程较为简单和迅速,当接收到文件读取请求时,基于建立的数据关联关系进行数据预取可大幅提升数据的读取效率。
图12是本发明实施例提供的一种数据预取装置,应用于存储设备,存储设备中存储多个文件,参见图12,该装置包括:读取请求接收模块1201、存储地址确定模块1202及数据预取模块1203。
其中,读取请求接收模块1201,用于接收文件读取请求,文件读取请求中包括读取的目标数据存储地址和目标数据长度;存储地址确定模块1202与读取请求接收模块1201连接,用于查询数据关联关系表,确定与读取的目标数据存储地址存在关联关系的预取数据存储地址;数据预取模块1203与存储地址确定模块1202连接,用于根据读取的目标数据长度对预取数据存储地址中的数据作为预取数据进行预取;其中,数据关联关系表中存储了每一个文件的元数据的存储地址与数据存储项的存储地址的关联关系,其中,目标数据存储地址和预取数据存储地址为元数据的存储地址和数据存储项的存储地址中的一种。
可选地,存储地址确定模块,用于查询存储地址查询表,根据读取的目标数据存储地址,确定读取的目标数据存储地址所在的数据关联表项在数据关联关系表中的地址;在数据关联表项中,查找目标数据存储地址的关联存储地址;将关联存储地址中的起始数据存储地址作为预取数据存储地址;
其中,在存储地址查询表的每一个文件的元数据和数据存储项的存储地址中记录每一个文件的元数据的存储地址和数据存储项的存储地址的数据关联表项在数据关联关系表中的地址;其中,存储地址查询表是按照存储地址顺序构成的。
本发明实施例提供的装置,在获取多个文件的元数据后,解析每一个文件的数据存储项的存储地址;根据每一个文件的元数据的存储地址和数据存储项的存储地址,建立数据关联关系表,当接收到文件读取请求时,根据文件读取请求和数据关联关系表进行数据预取,由于元数据中记录了数据之间的关联关系,所以无需耗费大量时间和内存资源进行数据关联关系的挖掘,数据关联关系表建立过程较为简单和迅速,基于建立的数据关联关系进行数据预取可大幅提升数据的读取效率。
需要说明的是:上述实施例提供的实现数据预取装置在进行数据预取时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的实现数据预取装置与实现数据预取方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种实现数据预取方法,应用于存储设备,所述存储设备中存储多个文件,其特征在于,所述方法包括:
获取所述多个文件的元数据;
解析每一个文件的元数据,得到所述每一个文件的数据存储项的存储地址,所述每一个文件的数据存储项中存储了与元数据相关联的文件数据;
根据所述每一个文件的元数据的存储地址和数据存储项的存储地址,建立数据关联关系表;
其中,所述根据所述每一个文件的元数据的存储地址和数据存储项的存储地址,建立数据关联关系表,包括:
对于所述每一个文件,根据所述每一个文件的元数据的存储地址和数据存储项的存储地址,建立一个数据关联表项;
所述多个文件的元数据的存储地址和数据存储项的存储地址的数据关联表项组成所述数据关联关系表。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括;
在存储地址查询表的所述每一个文件的元数据和数据存储项的存储地址中记录所述每一个文件的元数据的存储地址和数据存储项的存储地址的数据关联表项在所述数据关联关系表中的地址;其中,所述存储地址查询表是按照存储地址顺序构成的。
3.根据权利要求1所述的方法,其特征在于,所述解析所述每一个文件的元数据,还包括获得所述每一个文件的数据存储项的长度,则所述每一个文件的元数据的存储地址和数据存储项的存储地址的数据关联表项中还包括数据存储项的长度。
4.根据权利要求1至3中任一权利要求所述的方法,其特征在于,所述根据所述每一个文件的元数据的存储地址和数据存储项的存储地址,建立数据关联关系表之后,所述方法还包括:
当检测到所述多个文件中任一个文件的元数据或数据存储项发生变化时,向存储设备发送通知消息,所述通知信息中包括变化的元数据或变化的数据存储项,以使所述存储设备在接收到所述通知消息后,根据所述通知消息更新变化的文件的元数据的存储地址和数据存储项的存储地址的数据关联表项。
5.一种实现数据预取方法,应用于存储设备,所述存储设备中存储多个文件,其特征在于,所述方法包括:
接收文件读取请求,所述文件读取请求中包括读取的目标数据存储地址和目标数据长度;
查询数据关联关系表,确定与所述读取的目标数据存储地址存在关联关系的预取数据存储地址;
根据所述读取的目标数据长度对所述预取数据存储地址中的数据进行预取;
其中,所述数据关联关系表中存储了每一个文件的元数据的存储地址与数据存储项的存储地址的关联关系,其中,所述目标数据存储地址和所述预取数据存储地址为所述元数据的存储地址和所述数据存储项的存储地址中的一种;
其中,所述每一个文件的元数据的存储地址与数据存储项的存储地址组成一个数据关联表项;所述每一个文件的元数据的存储地址和数据存储项的存储地址的数据关联表项组成所述数据关联关系表,所述每一个文件的数据存储项中存储了与元数据相关联的文件数据。
6.根据权利要求5所述的方法,其特征在于,所述查询数据关联关系表,确定与所述读取的目标数据存储地址存在关联关系的预取存储地址,包括:
查询存储地址查询表,根据所述读取的目标数据存储地址,确定所述读取的目标数据存储地址所在的数据关联表项在所述数据关联关系表中的地址;
在所述数据关联表项中,查找所述目标数据存储地址的关联存储地址;
将所述关联存储地址中的起始数据存储地址作为预取数据存储地址;
其中,在存储地址查询表的所述每一个文件的元数据和数据存储项的存储地址中记录所述每一个文件的元数据的存储地址和数据存储项的存储地址的数据关联表项在所述数据关联关系表中的地址;其中,所述存储地址查询表是按照存储地址顺序构成的。
7.一种实现数据预取装置,应用于存储设备,所述存储设备中存储多个文件,其特征在于,所述装置包括:
数据获取模块,用于获取所述多个文件的元数据;
数据解析模块,用于解析每一个文件的元数据,得到所述每一个文件的数据存储项的存储地址,所述每一个文件的数据存储项中存储了与元数据相关联的文件数据;
关联关系建立模块,用于根据所述每一个文件的元数据的存储地址和数据存储项的存储地址,建立数据关联关系表;
其中,所述关联关系建立模块,用于对于所述每一个文件,根据所述每一个文件的元数据的存储地址和数据存储项的存储地址,建立一个数据关联表项;所述多个文件的元数据的存储地址和数据存储项的存储地址的数据关联表项组成所述数据关联关系表。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
存储地址记录模块,用于在存储地址查询表的所述每一个文件的元数据和数据存储项的存储地址中记录所述每一个文件的元数据的存储地址和数据存储项的存储地址的数据关联表项在所述数据关联关系表中的地址;其中,所述存储地址查询表是按照存储地址顺序构成的。
9.根据权利要求7所述的装置,其特征在于,所述数据解析模块,还用于获得所述每一个文件的数据存储项的长度,则所述每一个文件的元数据的存储地址和数据存储项的存储地址的数据关联表项中还包括数据存储项的长度。
10.根据权利要求7至9中任一权利要求所述的装置,其特征在于,所述装置还包括:
通知消息发送模块,用于当检测到所述多个文件中任一个文件的元数据或数据存储项发生变化时,向存储设备发送通知消息,所述通知信息中包括变化的元数据或变化的数据存储项,以使所述存储设备在接收到所述通知消息后,根据所述通知消息更新变化的文件的元数据的存储地址和数据存储项的存储地址的数据关联表项。
11.一种实现数据预取装置,应用于存储设备,所述存储设备中存储多个文件,其特征在于,所述装置包括:
读取请求接收模块,用于接收文件读取请求,所述文件读取请求中包括读取的目标数据存储地址和目标数据长度;
存储地址确定模块,用于查询数据关联关系表,确定与所述读取的目标数据存储地址存在关联关系的预取数据存储地址;
数据预取模块,用于根据所述读取的目标数据长度对所述预取数据存储地址中的数据进行预取;
其中,所述数据关联关系表中存储了每一个文件的元数据的存储地址与数据存储项的存储地址的关联关系,其中,所述目标数据存储地址和所述预取数据存储地址为所述元数据的存储地址和所述数据存储项的存储地址中的一种;
其中,所述每一个文件的元数据的存储地址与数据存储项的存储地址组成一个数据关联表项;所述每一个文件的元数据的存储地址和数据存储项的存储地址的数据关联表项组成所述数据关联关系表,所述每一个文件的数据存储项中存储了与元数据相关联的文件数据。
12.根据权利要求11所述的装置,其特征在于,所述存储地址确定模块,用于查询存储地址查询表,根据所述读取的目标数据存储地址,确定所述读取的目标数据存储地址所在的数据关联表项在所述数据关联关系表中的地址;在所述数据关联表项中,查找所述目标数据存储地址的关联存储地址;将所述关联存储地址中的起始数据存储地址作为预取数据存储地址;
其中,在存储地址查询表的所述每一个文件的元数据和数据存储项的存储地址中记录所述每一个文件的元数据的存储地址和数据存储项的存储地址的数据关联表项在所述数据关联关系表中的地址;其中,所述存储地址查询表是按照存储地址顺序构成的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410201982.0A CN103984640B (zh) | 2014-05-14 | 2014-05-14 | 实现数据预取方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410201982.0A CN103984640B (zh) | 2014-05-14 | 2014-05-14 | 实现数据预取方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103984640A CN103984640A (zh) | 2014-08-13 |
CN103984640B true CN103984640B (zh) | 2017-06-20 |
Family
ID=51276628
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410201982.0A Active CN103984640B (zh) | 2014-05-14 | 2014-05-14 | 实现数据预取方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103984640B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11782637B2 (en) | 2021-01-05 | 2023-10-10 | Red Hat, Inc. | Prefetching metadata in a storage system |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104238963B (zh) * | 2014-09-30 | 2017-08-11 | 华为技术有限公司 | 一种数据存储方法、存储装置及存储*** |
CN105740166B (zh) * | 2014-12-11 | 2020-05-19 | 中兴通讯股份有限公司 | 缓存的读取、读取处理方法及装置 |
WO2016153378A1 (en) * | 2015-03-26 | 2016-09-29 | Intel Corporation | Cross-level prefetch for shared multi-level libraries |
CN108345459B (zh) * | 2017-01-22 | 2021-09-17 | 北京国双科技有限公司 | 一种站点部署方法及装置 |
CN107092671B (zh) * | 2017-04-13 | 2019-12-17 | 星环信息科技(上海)有限公司 | 一种元信息管理的方法及设备 |
CN107145574A (zh) * | 2017-05-05 | 2017-09-08 | 恒生电子股份有限公司 | 数据库数据处理方法、装置及存储介质和电子设备 |
CN107329908A (zh) * | 2017-07-07 | 2017-11-07 | 联想(北京)有限公司 | 一种数据处理方法和电子设备 |
CN109508143B (zh) * | 2018-08-17 | 2022-04-22 | 郑州云海信息技术有限公司 | 一种数据存储方法及装置 |
CN110941571B (zh) * | 2018-09-05 | 2022-03-01 | 合肥沛睿微电子股份有限公司 | 闪存控制器及相关的存取方法及电子装置 |
CN111143242B (zh) * | 2018-11-02 | 2022-05-10 | 华为技术有限公司 | 一种缓存预取方法和装置 |
CN110263060B (zh) * | 2019-06-06 | 2021-04-23 | 零搜科技(深圳)有限公司 | 一种erp电子附件管理方法及计算机设备 |
CN113050893B (zh) * | 2021-03-30 | 2022-08-30 | 重庆紫光华山智安科技有限公司 | 一种高并发的文件存储方法、***、介质及电子终端 |
CN115630025B (zh) * | 2022-12-21 | 2023-03-17 | 深圳市傲冠软件股份有限公司 | 用于监控共享文件***内文件变动的***和方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1517906A (zh) * | 2003-01-14 | 2004-08-04 | 联想(北京)有限公司 | 文件***及文件管理方法 |
CN103019953A (zh) * | 2012-12-28 | 2013-04-03 | 华为技术有限公司 | 一种元数据的构建***及其方法 |
CN103218404A (zh) * | 2013-03-20 | 2013-07-24 | 华中科技大学 | 一种基于关联特性的多维元数据管理方法和*** |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005148868A (ja) * | 2003-11-12 | 2005-06-09 | Hitachi Ltd | ストレージ装置におけるデータのプリフェッチ |
JP4767127B2 (ja) * | 2006-08-10 | 2011-09-07 | 株式会社日立製作所 | ファイルサーバ、計算機システム及びファイルの先読み方法。 |
-
2014
- 2014-05-14 CN CN201410201982.0A patent/CN103984640B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1517906A (zh) * | 2003-01-14 | 2004-08-04 | 联想(北京)有限公司 | 文件***及文件管理方法 |
CN103019953A (zh) * | 2012-12-28 | 2013-04-03 | 华为技术有限公司 | 一种元数据的构建***及其方法 |
CN103218404A (zh) * | 2013-03-20 | 2013-07-24 | 华中科技大学 | 一种基于关联特性的多维元数据管理方法和*** |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11782637B2 (en) | 2021-01-05 | 2023-10-10 | Red Hat, Inc. | Prefetching metadata in a storage system |
Also Published As
Publication number | Publication date |
---|---|
CN103984640A (zh) | 2014-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103984640B (zh) | 实现数据预取方法及装置 | |
JP6778795B2 (ja) | データを記憶するための方法、装置及びシステム | |
CN102164160B (zh) | 支持大并发量文件下载的方法、装置及*** | |
CN107562757B (zh) | 基于分布式文件***的查询、访问方法、装置及*** | |
US20140337484A1 (en) | Server side data cache system | |
US10216418B2 (en) | Storage apparatus and method for autonomous space compaction | |
CN109766312A (zh) | 一种区块链存储方法、***、装置及计算机可读存储介质 | |
CN109388590B (zh) | 提升多通道dma访问性能的动态缓存块管理方法和装置 | |
CN101350030A (zh) | 用于缓存数据的方法及装置 | |
CN110321325A (zh) | 文件索引节点查找方法、终端、服务器、***及存储介质 | |
CN103942011B (zh) | 一种差量快照***及其使用方法 | |
CN101504670A (zh) | 数据操作方法、***、客户端和数据服务器 | |
CN103116552A (zh) | 用于在分布式存储***中分配存储空间的方法和装置 | |
CN110401724A (zh) | 文件管理方法、文件传输协议服务器及存储介质 | |
US20130297969A1 (en) | File management method and apparatus for hybrid storage system | |
CN106817388B (zh) | 虚拟机、宿主机获取数据的方法、装置及访问数据的*** | |
CN105635196A (zh) | 一种获取文件数据的方法、***和应用服务器 | |
CN104660643A (zh) | 请求响应方法、装置及分布式文件*** | |
CN102467572A (zh) | 支持重复数据删除程序的数据区块查询方法 | |
CN108540510B (zh) | 一种云主机创建方法、装置及云服务*** | |
CN103970875A (zh) | 一种并行重复数据删除方法 | |
CN102984256B (zh) | 一种基于授权方式的元数据的处理方法和*** | |
CN103823807A (zh) | 一种去除重复数据的方法、装置及*** | |
CN102045399B (zh) | 云计算模式文件***及文件读取方法 | |
CN103019964B (zh) | 一种缓存数据访问方法及数据缓存*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |