一种提高存储系统处理小文件的方法以及存储系统与流程

文档序号:18544801发布日期:2019-08-27 21:33阅读:148来源:国知局
一种提高存储系统处理小文件的方法以及存储系统与流程

本发明涉及存储处理技术领域,特别是涉及一种提高存储系统处理小文件的方法以及存储系统。



背景技术:

随着科学技术的发展,电子设备越来越小,人们越来越喜欢通过电子设备进行办公、学习、娱乐等等。

为了方便异地取数据,用户越来越喜欢将数据存储在云端的存储系统,由此造成云端的存储系统所存储的数据呈现爆炸性的增长,存储系统也越来越庞大。庞大的存储数据对存储系统的处理性能也提出更高的要求。为了应对庞大的存储数据,传统存储系统主要通过增加处理器的方式来提高处理性能,其成本非常昂贵。

在本申请的发明人在长期的研究中发现:大部份的存储系统中所存储的数据中大部分文件都是小于1M的小文件,在某些应用场景下,小文件的数量可达到千万级别以上,并且小文件的读写频率也非常高,但是传统存储系统没有区别小文件和大文件,而统一存储,因此,很多时候,存储系统频繁读写小文件的极限为存储系统的性能瓶颈。



技术实现要素:

本发明主要解决的技术问题是提供一种提高存储系统处理小文件的方法以及存储系统,能够提高对大小小于阈值的文件的读写速度。

为解决上述技术问题,本发明采用的一个技术方案是:提供一种提高存储系统处理小文件的方法,存储系统包括第一存储空间、第二存储空间和第三存储空间,所述第二存储空间的读写性能优于第一存储空间的读写性能,所述方法包括:接收待存储文件;判断待存储文件的大小是否大于阈值;若大于阈值,将所述待存储文件存储至第一存储空间;若小于或等于阈值,将所述待存储文件存储至第二存储空间;将所述待存储文件的文件标识、大小以及所述待存储文件在第一存储空间或者第二存储空间的存储地址存储至元数据,并建立所述待存储文件的文件标识、大小和存储地址之间的对应关系。

其中,所述方法包括:接收文件增加请求,其中,所述文件增加请求携带待增内容和待增文件的文件标识;根据所述待增文件的文件标识,从所述第三存储空间获取所述待增文件所存储的存储地址和待增文件的大小;根据所述待增文件的大小,判断所述待增文件是否存储在第二存储空间;若是,则判断所述待增内容的大小和待增文件的大小之和是否大于阈值;若大于阈值,则根据所述待增文件所存储的存储地址获取待增文件,并将所述待增文件转移至第一存储空间;将所述待增内容存储至待增文件中,并将所述待增文件在第一存储空间的存储地址以及增加内容后的待增文件的大小更新至第三存储空间。

其中,所述方法包括:接收文件内容删除请求,其中,所述文件内容删除请求携带待删文件的文件标识和删除标识;根据所述待删文件的文件标识,从所述第三存储空间获取所述待删文件所存储的存储地址和待删文件的大小;根据所述待删文件所存储的存储地址,获取所述待删文件,并结合删除标识对所述待删文件的内容进行删除;根据待删文件的大小,判断所述待删文件是否位于第一存储空间,以及判断删除内容后的待删除文件的大小是否小于或者等于阈值;若所述待删文件位于第一存储空间,以及删除内容后的所述待删除文件的大小小于或者等于阈值,则将所述删除内容后的待删除文件转移至第二存储空间,并将所述待删除文件在第二存储空间中的存储地址以及删除内容后的所述待删除文件的大小更新至第三存储空间。

其中,所述方法还包括:接收文件读取请求,其中,所述文件读取请求携带待读文件的文件标识;根据所述待读文件的文件标识,从所述第三存储空间获取所述待读文件所存储的存储地址;根据所述待读文件所存储的存储地址,提取所述待读文件,并返回所述待读文件。

其中,所述第一存储空间为机械硬盘,所述第二存储空间和第三存储空间均为固态硬盘。

为解决上述技术问题,本发明采用的另一个技术方案是:提供一种存储系统,包括第一存储空间、第二存储空间和第三存储空间,所述第二存储空间的读写性能优于第一存储空间的读写性能,所述存储系统还包括:第一接收模块,用于接收待存储文件;第一判断模块,用于判断待存储文件的大小是否大于阈值;第一存储模块,用于在所述第一判断模块判断到所述存储文件的大小大于阈值时,将所述待存储文件存储至第一存储空间;第二存储模块,用于在所述第一判断模块判断到所述存储文件的大小小于或等于阈值时,将所述待存储文件存储至第二存储空间;第一更新单元,用于将所述待存储文件的文件标识、大小以及所述待存储文件在第一存储空间或者第二存储空间的存储地址存储至元数据,并建立所述待存储文件的文件标识、大小与存储地址之间对应关系。

其中,所述存储系统包括:第二接收模块,用于接收文件增加请求,其中,所述文件增加请求携带待增内容和待增文件的文件标识;第一提取模块,用于根据所述待增文件的文件标识,从所述第三存储空间获取所述待增文件所存储的存储地址和待增文件的大小;第二判断模块,用于根据所述待增文件的大小,判断所述待增文件是否存储在第二存储空间;第三判断模块,用于在所述第二判断模块判断到所述待增文件存储在第二存储空间时,判断所述待增内容的大小和待增文件的大小之和是否大于阈值;第一转换模块,用于在所述第三判断模块判断到待增内容的大小和待增文件的大小之和大于阈值时,根据所述待增文件所存储的存储地址获取待增文件,并将所述待增文件转移至第一存储空间,以及将所述待增文件在第一存储空间的存储地址更新至第三存储空间;第三存储模块,用于将所述待增内容存储至待增文件中。

其中,所述存储系统包括:第三接收模块,用于接收文件内容删除请求,其中,所述文件删除请求携带待删文件的文件标识和删除标识;第二提取模块,用于根据所述待删文件的文件标识,从所述第三存储空间获取所述待删文件所存储的存储地址和待删文件的大小;删除模块,用于根据所述待删文件所存储的存储地址,获取所述待删文件,并结合删除标识对所述待删文件的内容进行删除;第四判断模块,用于根据待删文件的大小,判断所述待删文件是否位于第一存储空间,以及判断删除内容后的待删除文件的大小是否小于或者等于阈值;第二转换模块,用于在所述第四判断模块判断到所述待删文件位于第一存储空间,以及删除内容后的所述待删除文件的大小小于或者等于阈值时,将所述删除内容后的待删除文件转移至第二存储空间,并将所述待删除文件在第二存储空间中的存储地址以及删除内容后的所述待删除文件的大小更新至第三存储空间。

其中,所述存储系统包括:第四接收模块,用于接收文件读取请求,其中,所述文件读取请求携带待读文件的文件标识;第三提取模块,用于根据所述待读文件的文件标识,从所述第三存储空间获取所述待读文件所存储的存储地址;返回模块,用于根据所述待读文件所存储的存储地址,提取所述待读文件,并返回所述待读文件。

其中,所述第一存储空间为机械硬盘,所述第二存储空间和第三存储空间均为固态硬盘。

本发明的有益效果是:区别于现有技术的情况,本发明将大小小于阈值的文件存储在第二存储空间,将大小大于或等于阈值的文件存储在第一存储空间,由于第二存储空间的读写性能优于第一存储空间,提高对大小小于阈值的文件的读写速度,非常适合对小文件有性能要求的应用场景。

附图说明

图1是本发明提高存储系统处理小文件的方法实施方式的流程图;

图2是本发明提高存储系统处理小文件的方法实施方式中当第二存储空间中的文件的大小超过阈值时,将文件移动至第一存储空间中的流程意图;

图3是本发明提高存储系统处理小文件的方法实施方式中在第一存储空间中的文件的大小低于阈值时,将文件移动至第二存储空间中的流程图;

图4是本发明提高存储系统处理小文件的方法实施方式中根据文件读取请求返回待读文件的流程图;

图5是本发明存储系统实施方式的示意图。

具体实施方式

下面结合附图和实施方式对本发明进行详细说明。

存储系统包括第一存储空间、第二存储空间和第三存储空间,第一存储空间的读写性能优于第二存储空间,在本实施方式中,第一存储空间为机械硬盘,第二存储空间和第三存储空间均为固态硬盘,请参阅图1,方法包括:

步骤S201:接收待存储文件;

步骤S202:判断待存储文件的大小是否大于阈值,若大于阈值,则进入步骤S203,否则进入步骤S204;

阈值设置成可调的,以使工作人员可根据实际情况调节阈值的大小。

步骤S203:将待存储文件存储至第一存储空间;

步骤S204:将待存储文件存储至第二存储空间;

步骤S205:将待存储文件的文件标识、大小以及待存储文件在第一存储空间或者第二存储空间的存储地址存储至第三存储空间,并建立待存储文件的文件标识、大小和存储地址之间的对应关系。

将小于阈值的文件存储至第二存储空间,将大于或等于阈值的文件存储至第一存储空间,而第二存储空间的读写性能更好,有利于提高存储系统处理小文件的速度。

进一步的,当存储系统中的文件的内容发生变动时,还可根据变动后的文件的大小调整文件所在的位置,以保证小文件的处理速度更好,具体的,在第二存储空间中的文件的大小超过阈值时,将文件移动至第一存储空间中,请参阅图2,方法还包括:

步骤:S301:接收文件增加请求,其中,文件增加请求携带待增内容和待增文件的文件标识;

步骤S302:根据待增文件的文件标识,从第三存储空间获取待增文件所存储的存储地址和待增文件的大小;

步骤S303:根据待增文件的大小,判断待增文件是否存储在第二存储空间,若是,则进入步骤S304,否则不处理;

步骤S304:判断待增内容的大小和待增文件的大小之和是否大于阈值,若大于阈值,则进入步骤S305,否则不处理;

步骤S305:根据待增文件所存储的存储地址获取待增文件,并将待增文件转移至第一存储空间;

在待增文件增加内容后,待增文件的大小会超出阈值,因此,先将待增文件转移至第一存储空间,再在第一存储空间中为待增文件增加内容,减少写入的次数。若先将待增内容写待增文件,再移动待增文件,则待增内容需要执行两次写入操作,浪费资源。

步骤S306:将待增内容存储至待增文件中,并将待增文件在第一存储空间的存储地址以及增加内容后的待增文件的大小更新至第三存储空间;

在将待增文件在第一存储空间的存储地址以及增加内容后的待增文件的大小更新至第三存储空间之后,待增文件在第三存储空间的原存储地址和原大小均被覆盖,以免出错。

另外,在第一存储空间中的文件的大小低于阈值时,也可将文件移动至第二存储空间中,保证小文件位于第二存储空间,大文件位于第一存储空间,请参阅图3,方法包括:

步骤S401:接收文件内容删除请求,其中,文件内容删除请求携带待删文件的文件标识和删除标识;

删除标识用于指示删除待删除文件哪部份内容。

步骤S402:根据待删文件的文件标识,从第三存储空间获取待删文件所存储的存储地址和待删文件的大小;

步骤S403:根据待删文件所存储的存储地址,获取所述待删文件,并结合删除标识对待删文件的内容进行删除;

步骤S404:根据待删文件的大小,判断待删文件是否位于第一存储空间,以及判断删除内容后的待删除文件的大小是否小于或者等于阈值,若待删文件位于第一存储空间,以及删除内容后的待删除文件的大小小于或者等于阈值,则进入步骤S405,否则不处理;

步骤S405:将删除内容后的待删除文件转移至第二存储空间,并将待删除文件在第二存储空间中的存储地址以及删除内容后的待删除文件的大小更新至第三存储空间;

先根据删除标识将待删内容删掉,再移动待删文件,有利于减少移动待删文件的移动量,减少存储系统的资源开销。

进一步的,请参阅图4,方法还包括:

步骤S501:接收文件读取请求,其中,文件读取请求携带待读文件的文件标识;

步骤S502:根据待读文件的文件标识,从第三存储空间获取待读文件所存储的存储地址;

步骤S503:根据待读文件所存储的存储地址,提取待读文件,并返回待读文件。

当待读文件的大小小于阈值时,待读文件会存储在第二存储空间,当待读文件的大小大于阈值时,待读文件会存储在第一存储空间,而第二存储空间的读写性能优于第一存储空间,因此,从第一存储空间读取待读文件的速度快。

在本发明实施方式中,将大小小于阈值的文件存储在第二存储空间,将大小大于或等于阈值的文件存储在第一存储空间,由于第二存储空间的读写性能优于第一存储空间,提高对大小小于阈值的文件的读写速度,非常适合对小文件有性能要求的应用场景。

本发明又提供存储系统实施方式。请参阅图5,存储系统60包括第一存储空间61、第二存储空间62、第三存储空间63、第一接收模块64、第一判断模块65、第一存储模块66、第二存储模块67和第一更新单元68。第二存储空间62的读写性能优于第一存储空间61的读写性能,在本实施方式中,第一存储空间61为机械硬盘,第二存储空间62和第三存储空间63均为固态硬盘。

第一接收模块64用于接收待存储文件。第一判断模块65用于判断待存储文件的大小是否大于阈值。第一存储模块66用于在第一判断模块65判断到存储文件的大小大于阈值时,将待存储文件存储至第一存储空间61。第二存储模块67用于在第一判断模块65判断到存储文件的大小小于或等于阈值时,将待存储文件存储至第二存储空间62。第一更新单元68用于将待存储文件的文件标识、大小以及待存储文件在第一存储空间61或者第二存储空间62的存储地址存储至元数据,并建立文件标识、大小与存储地址之间对应关系。

在存储系统60中的文件发生改变时,可以根据改变之后的文件的大小,重新调节文件所在的位置,则存储系统60还包括第二接收模块69、第一提取模块70、第二判断模块71、第三判断模块72、第一转换模块73、第三存储模块74、第三接收模块75、第二提取模块76、删除模块77、第四判断模块78和第二转换模块79。

第二接收模块69用于接收文件增加请求,其中,文件增加请求携带待增内容和待增文件的文件标识。第一提取模块70用于根据待增文件的文件标识,从第三存储空间63获取待增文件所存储的存储地址和待增文件的大小。第二判断模块71用于根据待增文件的大小,判断待增文件是否存储在第二存储空间62。第三判断模块72用于在第二判断模块71判断到待增文件存储在第二存储空间62时,判断待增内容的大小和待增文件的大小之和是否大于阈值。第一转换模块73用于在第三判断模块72判断到待增内容的大小和待增文件的大小之和大于阈值时,根据待增文件所存储的存储地址获取待增文件,并将待增文件转移至第一存储空间61,以及将待增文件在第一存储空间61的存储地址更新至第三存储空间63。第三存储模块74用于将待增内容存储至待增文件中。

第三接收模块75,用于接收文件内容删除请求,其中,文件删除请求携带待删文件的文件标识和删除标识。第二提取模块76,用于根据待删文件的文件标识,从第三存储空间63获取所述待删文件所存储的存储地址和待删文件的大小。删除模块77,用于根据待删文件所存储的存储地址,获取待删文件,并结合删除标识对待删文件的内容进行删除。第四判断模块78,用于根据待删文件的大小,判断待删文件是否位于第一存储空间61,以及判断删除内容后的待删除文件的大小是否小于或者等于阈值。第二转换模块79,用于在第四判断模块78判断到待删文件位于第一存储空间61,以及删除内容后的待删除文件的大小小于或者等于阈值时,将删除内容后的待删除文件转移至第二存储空间62,并将待删除文件在第二存储空间62中的存储地址以及删除内容后的待删除文件的大小更新至第三存储空间63。

存储系统60还包括第四接收模块80、第三提取模块81和返回模块82。第四接收模块80,用于接收文件读取请求,其中,所述文件读取请求携带待读文件的文件标识。第三提取模块81,用于根据待读文件的文件标识,从第三存储空间63获取待读文件所存储的存储地址。返回模块82,用于根据待读文件所存储的存储地址,提取待读文件,并返回待读文件。

在本发明实施方式中,在待存储文件的大小小于阈值时,将待存储文件存储至第二存储空间62,在待存储文件的大小大于或等于阈值时,将待存储文件存储至第一存储空间61,由于第二存储空间62的读写性能优于第一存储空间61,提高对大小小于阈值的文件的读写速度,非常适合对小文件有性能要求的应用场景。

以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1