文件的访问方法及装置的制造方法

文档序号:8258595阅读:227来源:国知局
文件的访问方法及装置的制造方法
【技术领域】
[0001]本发明涉及文件系统技术领域,特别是涉及一种文件的访问方法及装置。
【背景技术】
[0002]在很多情况下,数据库与文件系统是相对独立的,两者间的运行也是只有“利用”关系,而无“结盟”关系,数据库只是调用文件系统的读写功能,文件系统也不管接收的请求是否是数据库的请求。文件系统提供它自己的接口,数据库只能让文件系统将所有数据取出,然后再一个个筛选,文件系统返回了很多无用的数据,增大了开销,并且文件系统对待接口的操作方式是:尝试在内存中读取这个文件,如果文件还未加载到内存,则导致缺页中断,然后真正调用1驱动获取数据。
[0003]IBM公司做了一款产品:它将数据库的业务放在文件系统中实现。即文件系统允许用户按照条件输入,但文件系统只能判断该条件的边界,实际运行时还是需要调用文件系统接口来获取数据,即用户通过文件描述符及偏移量,调用文件系统接口获取数据。每次调用文件系统接口获取数据时,都需要判断内存中是否加载该数据,如果还未加载该数据则缺页中断,并调用1驱动获取该数据,而不会一次性将所有符合条件的数据都加载到内存中。
[0004]本申请的发明人在长期的研发中发现,上述方案均会由于一次查询带来多次的缺页中断以及磁盘的1开销,导致文件系统的查询性能较低。

【发明内容】

[0005]本发明主要解决的技术问题是提供一种文件的访问方法及装置,能够避免一次查询带来的多次缺页中断以及多次磁盘10。
[0006]第一方面,本发明提供一种文件的访问方法,包括:文件系统接收来自应用层的文件访问请求;若所述文件访问请求是根据查询条件获取所述文件的内容,则获取所述文件的元数据,其中,所述文件的元数据中包含所述文件的索引信息,所述查询条件是针对所述文件的索引信息选择所述文件的内容;根据所述文件的索引信息,确定符合所述查询条件的所述文件的内容;通过磁盘1控制器获取所有符合查询条件的所述文件的内容,以便于所述应用层访问所述文件。
[0007]在第一方面的第一种可能的实现方式中,所述文件系统接收来自应用层的文件访问请求的步骤之前,包括:所述文件系统对所述文件按照预设要求进行预处理,获得所述文件的索引信息;将所述文件的索引信息保存在所述文件的元数据中。
[0008]结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述索引信息至少包括规则类型和每个簇包含的范围,其中,所述规则类型中规定了对所述文件进行预处理的方式。
[0009]在第一方面的第三种可能的实现方式中,所述若所述文件访问请求是根据查询条件获取所述文件的内容,则获取所述文件的元数据的步骤之前,包括:判断所述文件访问请求是否是根据查询条件获取所述文件的内容;若所述文件访问请求中至少包含文件描述符、与所述查询条件相关的参数以及缓冲区,则所述文件访问请求是根据查询条件获取所述文件的内容。
[0010]结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述缓冲区包括完全匹配缓冲区和半匹配缓冲区。
[0011]结合第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述通过磁盘1控制器获取所有符合所述查询条件的所述文件的内容的步骤之后,包括:若所述获取的所述文件的内容完全匹配所述查询条件,则将所述获取的所述文件的内容放入所述完全匹配缓冲区,若所述获取的所述文件的内容部分匹配所述查询条件,则将所述获取的所述文件的内容放入所述半匹配缓冲区。
[0012]第二方面,本发明提供一种文件的访问装置,所述装置包括:接收模块、第一获取模块、确定模块以及第二获取模块;所述接收模块用于接收来自应用层的文件访问请求;所述第一获取模块用于在所述接收模块接收来自应用层的文件访问请求后,在所述文件访问请求是根据查询条件获取所述文件的内容时,获取所述文件的元数据,其中,所述文件的元数据中包含所述文件的索引信息,所述查询条件是针对所述文件的索引信息选择所述文件的内容;所述确定模块用于在所述第一获取模块获取所述文件的元数据后,根据所述文件的索引信息,确定符合所述查询条件的所述文件的内容;所述第二获取模块用于在所述确定模块确定符合所述查询条件的所述文件的内容后,通过磁盘1控制器获取所有符合所述查询条件的所述文件的内容,以便于所述应用层访问所述文件。
[0013]在第二方面的第一种可能的实现方式中,所述装置还包括:获得模块和保存模块;所述获得模块用于对所述文件按照预设要求进行预处理,获得所述文件的索引信息;所述保存模块用于在所述获得模块获得所述文件的索引信息后,将所述文件的索引信息保存在所述文件的元数据中。
[0014]结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述索引信息至少包括规则类型和每个簇包含的范围,其中,所述规则类型中规定了对所述文件进行预处理的方式。
[0015]在第二方面的第三种可能的实现方式中,所述装置还包括:判断模块;所述判断模块用于判断所述文件访问请求是否是根据查询条件获取所述文件的内容,在所述文件访问请求中至少包含文件描述符、与所述查询条件相关的参数以及缓冲区时,判断所述文件访问请求是根据查询条件获取所述文件的内容。
[0016]结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述缓冲区包括完全匹配缓冲区和半匹配缓冲区。
[0017]结合第二方面的第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述装置还包括存放模块;所述存放模块用于在所述获取的所述文件的内容完全匹配所述查询条件时,将所述获取的所述文件的内容放入所述完全匹配缓冲区,在所述获取的所述文件的内容部分匹配所述查询条件时,将所述获取的所述文件的内容放入所述半匹配缓冲区。
[0018]本发明的有益效果是:区别于现有技术的情况,本发明由于文件的元数据中保存有文件的索引信息,在接收到来自应用层的包含针对索引信息的查询条件的文件访问请求时,根据文件的索引信息,即可通过磁盘1控制器获取所有符合查询条件的文件的内容,因此,通过这种方式,能够避免一次查询带来的多次缺页中断以及多次磁盘10,并且通过过滤部分数据减少内存使用。
【附图说明】
[0019]图1是本发明文件的访问方法一实施方式的流程图;
[0020]图2是本发明文件的访问方法另一实施方式的流程图;
[0021]图3是本发明文件的访问方法又一实施方式的流程图;
[0022]图4是本发明文件的访问方法一个具体实例的应用示意图;
[0023]图5是本发明文件的访问装置一实施方式的结构示意图;
[0024]图6是本发明文件的访问装置另一实施方式的结构示意图;
[0025]图7是本发明文件的访问装置又一实施方式的结构示意图;
[0026]图8是本发明文件的访问装置又一实施方式的结构示意图。
【具体实施方式】
[0027]下面结合附图和实施方式对本发明进行详细说明。
[0028]参阅图1,图1是本发明文件的访问方法一实施方式的流程图,包括:
[0029]步骤SlOl:文件系统接收来自应用层的文件访问请求。
[0030]本发明文件的访问系统包括三层:一个是应用层,数据库通常在应用层;第二个是文件系统层,第三个是磁盘,即文件的存放位置。
[0031]文件系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构,即在磁盘上数据的组织方法。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,当用户不再使用时撤销文件等。
[0032]在一般情况下,文件系统对文件是不做任何处理的,数据库是按照数据结构来组织、存储和管理数据的仓库,在本发明实施方式中,文件系统已经按照预设要求对文件进行了预处理,即将数据库的部分功能加入文件系统中来。预设要求是预先设定的对文件进行预处理(例如组织、排序、分类、整理等等)的要求,例如:按照某种条件对文件进行排序,列数据库文件记录某个列的信息,可以按照某列进行排序;或者按照哈希值对文件进行处理;或者按照该文件的某个参数的范围对该文件进行处理等等。
[0033]步骤S102:若文件访问请求是根据查询条件获取文件的内容,则获取文件的元数据,其中,文件的元数据中包含文件的索引信息,查询条件是针对文件的索引信息选择文件的内容。
[0034]元数据(Metadata)是描述其它数据的数据(data about other data),或者说是用于提供某种资源的有关信息的结构数据(structured data)。
[0035]索引本身是数据库中经常需要使用的信息,是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。在本发明实施方式中,将索引信息引入到文件系统中,将对文件预处理后获得的索引信息保存在该文件的元数据中。
[0036]在文件系统对文件按照预设要求进行预处理后,获得该文件的索引信息,将该文件的索引信息保存在该文件的元数据中。如果文件访问请求是根据查询条件获取文件的内容,那么获取该文件的元数据。因为元数据中保存有已预处理的文件的索引信息,查询条件是针对文件的索引信息选择文件的内容的,那么根据该索引信息,
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1