[发明专利]一种分布式存储中文件批量读取方法有效
申请号: | 201710451855.X | 申请日: | 2017-06-15 |
公开(公告)号: | CN107291870B | 公开(公告)日: | 2021-03-09 |
发明(设计)人: | 张书扬 | 申请(专利权)人: | 苏州浪潮智能科技有限公司 |
主分类号: | G06F16/172 | 分类号: | G06F16/172;G06F16/182 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 罗满 |
地址: | 215100 江苏省苏州市吴*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 分布式 存储 文件批量 读取 方法 | ||
本发明公开了一种分布式存储中文件批量读取方法,该方法包括:在文件进行open操作时,向元数据服务器mds发送请求,获取当前文件以及当前文件之后的若干待读文件的元数据信息;将元数据信息中的索引号ino和目录项dentry存入dentry_map结构中;依据元数据信息查找到存储文件数据的对应的对象存储设备osd,从osd中读取待读文件的数据;完成待读文件的数据读取后,根据dentry_map结构中的存储顺序进行文件预读。该方法实现减少文件读取的IO流程,提高读取速度。
技术领域
本发明涉及文件读取技术领域,特别是涉及一种分布式存储中文件批量读取方法。
背景技术
目前,随着信息技术和互联网技术的飞速发展,企业所需传输、存储的数据也随之剧增。在海量小文件的场景,如,如社交购物网站、广电、网络视频等,系统产生文本、图片、音乐等大量小文件,这些文件具有如下特点:文件数量多,大小一般在1Mb以下;文件的读取一般都是顺序读取。
分布式数据存储系统中,文件读取时,客户端首先要向mds端发送请求,获取文件的权限和元数据信息,然后客户端通过获取到的元数据信息,找到对应的存储文件数据osd,从osd中读取文件的数据信息。整个文件读取过程需要经过较长的IO流程。当批量读取大量文件时,每个文件都独立经过所有IO流程,这样会频繁地向mds请求文件的元数据信息,然后又频繁调用objectcacher中的读接口,从osd中读取数据。文件读取过程中重复请求发送、处理频繁,对系统压力大。
分布式文件系统中,文件读取时每次都需客户端向mds端请求待读取文件的元数据信息,获取元数据信息之后再从osd中获取文件的数据信息。文件读取时需要较长的IO流程,读取速度较低。
发明内容
本发明的目的是提供一种分布式存储中文件批量读取方法,以实现减少文件读取的IO流程,提高读取速度。
为解决上述技术问题,本发明提供一种分布式存储中文件批量读取方法,应用于客户端,包括:
在文件进行open操作时,向元数据服务器mds发送请求,获取当前文件以及当前文件之后的若干待读文件的元数据信息;
将元数据信息中的索引号ino和目录项dentry存入dentry_map结构中;
依据元数据信息查找到存储文件数据的对应的对象存储设备osd,从osd中读取待读文件的数据;
完成待读文件的数据读取后,根据dentry_map结构中的存储顺序进行文件预读。
优选的,所述将元数据信息中的索引号ino和目录项dentry存入dentry_map结构中,包括:
按照索引号ino递增的方式,将元数据信息中的索引号ino及相应的目录项dentry存放到客户端的dentry_map结构中。
优选的,所述根据dentry_map结构中的存储顺序进行文件预读,包括:
根据dentry目录结构获取相应的inode结构,根据inode结构从相应的osd中读取指定个数的文件。
优选的,所述请求为在当前文件元数据请求中同时获取相邻文件元数据。
优选的,所述元数据信息的数量通过配置项动态配置。
优选的,所述完成待读文件的数据读取后,根据dentry_map结构中的存储顺序进行文件预读之后,还包括:
顺序读取下一个文件,命中客户端缓存,从客户端缓存中获取文件数据。
优选的,所述顺序读取下一个文件,命中客户端缓存,从客户端缓存中获取文件数据之后,还包括:
若待读取的文件没有命中客户端缓存,从osd中预读指定个数的文件到客户端缓存中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州浪潮智能科技有限公司,未经苏州浪潮智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710451855.X/2.html,转载请声明来源钻瓜专利网。