[发明专利]一种回收存储空间的方法和装置有效
申请号: | 201810643419.7 | 申请日: | 2018-06-21 |
公开(公告)号: | CN109086220B | 公开(公告)日: | 2023-04-28 |
发明(设计)人: | 李杰辉;王文涛 | 申请(专利权)人: | 北京奇艺世纪科技有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02;G06F16/17 |
代理公司: | 北京柏杉松知识产权代理事务所(普通合伙) 11413 | 代理人: | 马敬;项京 |
地址: | 100080 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 回收 存储空间 方法 装置 | ||
本发明实施例提供了一种回收存储空间的方法和装置,方法包括:获取待处理可移植操作系统接口POSIX文件,当接收到删除指令时,将POSIX文件中第一目标小文件标识为已删除,并回收第一目标小文件的存储空间,得到预回收POSIX文件,当预回收POSIX文件满足预设回收条件时,针对预回收POSIX文件中的每个小文件,判断该小文件是否被标识为已删除,如果该小文件未被标识为已删除,则将该小文件复制到预设存储空间,并回收该小文件的存储空间。基于上述处理,可以合并删除小文件产生的文件空间,减少文件空洞的数量,进而降低删除小文件对服务器的系统性能的影响。
技术领域
本发明涉及数据存储技术领域,特别是涉及一种回收存储空间的方法和装置。
背景技术
随着互联网的高速发展,互联网中产生了数量巨大(数以亿计)的图片和文档等文件。这些文件通常较小(一般在100KB以下),可称为小文件。合并存储的方法是将数量巨大的小文件的内容存放到POSIX(Portable Operating System Interface of UNIX,可移植操作系统接口)文件。当前回收POSIX文件中这些小文件存储空间的通用做法是采用Copy-Commit(复制-提交)方法。例如,Facebook(脸书)的Haystack,LinkedIn(领英)的Ambry和淘宝的TFS(Taobao File System,淘宝文件系统)。
现有技术中,服务器将数量巨大的小文件的内容存放到POSIX文件后,还需要记录小文件在大文件中偏移量,也就是索引信息,然后将该索引信息添加到索引文件中。当服务器接收到针对某一小文件的删除请求时,可以根据该小文件的索引信息,将该小文件从POSIX文件中删除,并回收该小文件所占的存储空间。
然而,发明人在实现本发明的过程中发现,现有技术至少存在如下问题:
由于在删除每一小文件时,该小文件对应的存储空间会变成文件空洞。当删除POSIX文件中较多的小文件时,会导致POSIX文件中存在较多的文件空洞。服务器需要分配系统资源维护每一个文件空洞,进而会降低服务器的系统性能。
发明内容
本发明实施例的目的在于提供一种回收存储空间的方法和装置,可以降低对服务器的系统性能的影响。具体技术方案如下:
第一方面,为达到上述目的,本发明实施例公开了一种回收存储空间的方法,所述方法包括:
获取待处理的可移植操作系统接口POSIX文件;
当接收到删除指令时,将所述POSIX文件中第一目标小文件标识为已删除,并回收所述第一目标小文件的存储空间,得到预回收POSIX文件;
当所述预回收POSIX文件满足预设回收条件时,针对所述预回收POSIX文件中的每个小文件,判断该小文件是否被标识为已删除;
如果该小文件未被标识为已删除,则将该小文件复制到预设存储空间,并回收该小文件的存储空间。
可选的,所述针对所述预回收POSIX文件中的每个小文件,判断该小文件是否被标识为已删除,包括:
将所述预回收POSIX文件按照预设的方式进行分段,得到多个文件段,所述文件段包括多个小文件;
针对所述多个文件段中的每个文件段,计算出该文件段的空洞密度,所述空洞密度表示该文件段内被回收的存储空间与该文件段内存储空间的比值;
根据所述多个文件段中的每个文件段的空洞密度,按照所述空洞密度的大小对所述多个文件段进行排序;
根据所述多个文件段对应的顺序,获取待处理的文件段包含的小文件,针对获取到的每个小文件,判断该小文件是否被标识为已删除。
可选的,所述预回收POSIX文件满足预设回收条件,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇艺世纪科技有限公司,未经北京奇艺世纪科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810643419.7/2.html,转载请声明来源钻瓜专利网。