[发明专利]一种文件存储的方法和装置在审
| 申请号: | 201810819557.6 | 申请日: | 2018-07-24 |
| 公开(公告)号: | CN109002543A | 公开(公告)日: | 2018-12-14 |
| 发明(设计)人: | 李希亮 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30 |
| 代理公司: | 中原信达知识产权代理有限责任公司 11219 | 代理人: | 张一军;张效荣 |
| 地址: | 100195 北京市海淀区杏石口路6*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 缓存 待存储文件 文件存储 分布式文件系统 方法和装置 计算机技术领域 读取 管理者节点 内存占用率 有效地减少 策略确定 存储文件 文件保存 磁盘I/O 释放 阈值时 保存 上传 预设 判定 合并 淘汰 | ||
本发明公开了一种文件存储的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:获取待存储文件,并对待存储文件的大小进行判定;当待存储文件的大小不超过预设阈值时,将待存储文件保存到缓存中;根据缓存淘汰策略确定缓存中的待释放文件,将待释放文件进行合并后保存到分布式文件系统中。该实施方式能够基于缓存和分布式文件系统进行文件存储,在文件保存可靠的基础上,有效地减少了管理者节点的内存占用率,并且可以减少磁盘I/O,提升文件的上传速度和读取速度。
技术领域
本发明涉及计算机技术领域,尤其涉及一种文件存储的方法和装置。
背景技术
在系统运行过程中,会产生很多文件,而其中大部分文件为小文件,例如为小于50MB的文件。以某电商平台的财务系统为例,财务系统中会存在大量的对账操作,对账单文件的来源渠道可能包括微信、财付通、网银、银联、各国内银行直连、海外银行等多种渠道,相应地对账单文件也很多,而对账单文件中大部分为小文件。对于海量的小文件的存储,既要保证其可靠性,还要兼顾文件的访问效率。目前,对账单文件进行存储的方式主要包括:
1)存储在单点的服务器中;
2)存储在缓存中;
3)存储在分布式文件系统中。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
1)使用单点的服务器来存储对账单文件时,可靠性难以保证;
2)使用缓存来存储对账单文件时,对缓存的容量要求较高,并且可靠性难以保证;
3)使用分布式文件系统来存储对账单文件时,虽然在可靠性上得以保证,但是小文件存储效率较低。在分布式文件系统中,采用管理者(NameNode)来维护文件路径到数据块的映射、数据块到工作者(DataNode)的映射、监控DataNode的心跳和维护数据块副本的个数等。当大量的小文件存储到分布式文件系统中时,NameNode会耗尽大部分内存来执行上述操作,故而会造成存储效率低下,限制了文件的访问速度。而当把小文件整合为一个大文件进行文件存储时,又使得对账单文件的访问效率较低。
发明内容
有鉴于此,本发明实施例提供一种文件存储的方法和装置,能够基于缓存和分布式文件系统进行文件存储,在文件保存可靠的基础上,有效地减少了管理者节点的内存占用率,并且可以减少磁盘I/O,提升文件的上传速度和读取速度。
为实现上述目的,根据本发明实施例的一个方面,提供了一种文件存储的方法。
一种文件存储的方法,包括:获取待存储文件,并对所述待存储文件的大小进行判定;当所述待存储文件的大小不超过预设阈值时,将所述待存储文件保存到缓存中;根据缓存淘汰策略确定所述缓存中的待释放文件,将所述待释放文件进行合并后保存到分布式文件系统中。
可选地,还包括:当所述待存储文件的大小超过预设阈值时,将所述待存储文件直接保存到分布式文件系统中。
可选地,根据缓存淘汰策略确定所述缓存中的待释放文件之前,还包括:确定所述缓存中的文件总量已达到预定阈值。
可选地,根据缓存淘汰策略确定所述缓存中的待释放文件包括:计算所述缓存中的文件的访问热度;将所述访问热度小于预设的访问热度阈值的文件确定为所述待释放文件。
可选地,所述访问热度根据文件的访问量和文件的生成天数计算得到。
根据本发明实施例的另一方面,提供了一种文件存储的装置。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810819557.6/2.html,转载请声明来源钻瓜专利网。





