CN109947721B - 一种小文件处理方法和装置 - Google Patents
一种小文件处理方法和装置 Download PDFInfo
- Publication number
- CN109947721B CN109947721B CN201711252485.3A CN201711252485A CN109947721B CN 109947721 B CN109947721 B CN 109947721B CN 201711252485 A CN201711252485 A CN 201711252485A CN 109947721 B CN109947721 B CN 109947721B
- Authority
- CN
- China
- Prior art keywords
- file
- small
- elimination
- files
- written
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种小文件处理方法和装置,用以解决目前在涉及到大量小文件还原,且还原的小文件需要进行定期的删除的场景下,直接删除大量小文件会产生大量的随机访问,从而导致磁盘低效的问题。该方法包括:将每一个淘汰周期内还原的小文件写入到一个索引节点对应的大文件;不同淘汰周期内还原的小文件写入到不同索引节点对应的大文件;其中,所述小文件是小于预设大小的文件,所述大文件由若干个小文件整合而成;在确定需要删除一个淘汰周期内还原的小文件后,删除该淘汰周期对应的大文件的元数据,并删除该淘汰周期对应的大文件;其中,一个大文件的元数据包括该大文件的存储位置。
Description
技术领域
本发明涉及文件处理技术领域,尤其涉及一种小文件处理方法和装置。
背景技术
目前,面对越来越复杂的网络攻击环境及多样的功能攻击手段,需要对网络流量中的数据进行文件还原,从而发现其中的潜在的、未知的威胁,并对网络数据取证留存。此时,检测分析设备可以旁路接入网络中,通过镜像方式获取网络数据,并进行文件还原,这会涉及到大量的文件还原,而还原的文件一般而言都是小文件并且文件重复率很低,这些还原的文件一旦产生就不会再修改;同时为了节省磁盘空间,还原的文件要定期删除,一般按照先产生先淘汰的特性进行删除,在删除还原的小文件时,通常需要批量删除还原的小文件,并不需要单个删除某个还原的小文件。
虽然在win7及以上的操作系统中,可以使用系统自带的forfiles命令批量检测并删除指定日期以前的文件,但是,由于在文件系统中,文件的索引节点和数据保存在存储器的不同位置上,因此,删除一个文件就需要经理多次独立的随机访问,因此,当有海量小文件需要删除时,直接删除小文件会产生大量的随机访问,这就需要进行大量的磁盘IO操作,这对于磁盘系统来说是非常低效的。
发明内容
本发明实施例提供了一种小文件处理方法和装置,用以解决目前在涉及到大量小文件还原,且还原的小文件需要进行定期的删除的场景下,直接删除大量小文件会产生大量的随机访问,从而导致磁盘低效的问题。
基于上述问题,本发明实施例提供的一种小文件处理方法,包括:
将每一个淘汰周期内还原的小文件写入到一个索引节点对应的大文件;不同淘汰周期内还原的小文件写入到不同索引节点对应的大文件;其中,所述小文件是小于预设大小的文件,所述大文件由若干个小文件整合而成;
在确定需要删除一个淘汰周期内还原的小文件后,删除该淘汰周期对应的大文件的元数据,并删除该淘汰周期对应的大文件;其中,一个大文件的元数据包括该大文件的存储位置。
本发明实施例提供的一种小文件处理装置,包括:
存储模块,用于将每一个淘汰周期内还原的小文件写入到一个索引节点对应的大文件;不同淘汰周期内还原的小文件写入到不同索引节点对应的大文件;其中,所述小文件是小于预设大小的文件,所述大文件由若干个小文件整合而成;
删除模块,用于在确定需要删除一个淘汰周期内还原的小文件后,删除该淘汰周期对应的大文件的元数据,并删除该淘汰周期对应的大文件;其中,一个大文件的元数据包括该大文件的存储位置。
本发明实施例的有益效果包括:
本发明实施例提供的一种小文件处理方法和装置,将一个淘汰周期内的小文件写入到一个索引节点对应的大文件,在确定需要删除一个淘汰周期内还原的小文件时,直接删除该淘汰周期对应的大文件及其元数据,这样避免了直接删除大量小文件时所产生的大量的随机访问,从而提高了磁盘系统的操作效率。
附图说明
图1为本发明实施例提供的一种小文件处理方法的流程图之一;
图2为本发明实施例提供的一种小文件处理方法的流程图之二;
图3为本发明实施例提供的一种小文件处理方法的流程图之三;
图4为本发明实施例提供的一种小文件处理方法的流程图之四;
图5为本发明实施例提供的一种小文件处理方法的流程图之五;
图6为本发明实施例提供的一种小文件处理装置的结构图之一。
具体实施方式
本发明实施例提供的一种小文件处理方法和装置,将还原的小文件按照最小淘汰周期存储为与各个淘汰周期一一对应的大文件,也就是说,将一个淘汰周期内的小文件写入到一个索引节点对应的大文件,在确定需要删除一个淘汰周期内还原的小文件时,直接删除该淘汰周期对应的大文件及其元数据,这样避免了直接删除大量小文件时所产生的大量的随机访问,从而提高了磁盘系统的操作效率。
下面结合说明书附图,对本发明实施例提供的一种小文件处理方法和装置的具体实施方式进行说明。
本发明实施例提供的一种小文件的处理方法,如图1所示,具体包括以下步骤:
S101,将每一个淘汰周期内还原的小文件写入到一个索引节点对应的大文件;不同淘汰周期内还原的小文件写入到不同索引节点对应的大文件;其中,所述小文件是小于预设大小的文件,所述大文件由若干个小文件整合而成;
其中,最小的淘汰周期可以是一小时,一天,一周,或者一个月等等。
在S101中,若最小的淘汰周期为一天,则将一天内还原的小文件都写入到一个索引节点对应的大文件中;若最小的淘汰周期为一周,则将一周内还原的小文件都写入到一个索引节点对应的大文件中。
S102,在确定需要删除一个淘汰周期内还原的小文件时,删除该淘汰周期对应的大文件的元数据,并删除该淘汰周期对应的大文件;其中,一个大文件的元数据包括该大文件的存储位置。
在某一应用场景中,最小的淘汰周期为一天,仅保留一周内还原的小文件,周一还原的小文件写入到一个索引节点对应的大文件FILE1中,周二还原的小文件写入到一个索引节点对应的大文件FILE2中,依此类推,周日还原的小文件写入到一个索引节点对应的大文件FILE7中,并且在确定本周日需要删除上周日还原的小文件后,可以根据上周日的大文件FILE0的元数据确定上周日的大文件FILE0的存储位置,然后删除该存储位置上的数据及其元数据,从而避免了直接删除大量小文件所导致的磁盘操作效率低的问题。
可选地,一个淘汰周期对应的大文件的元数据中还包括该大文件中每个小文件与该大文件的关联信息,该大文件中的每个小文件的键key,该大文件中的每个小文件相对于该大文件的存储位置偏移量,该大文件中的每个小文件的文件长度,和该大文件中的每个小文件的最后引用时间。
其中,一个大文件中的每个小文件与该大文件的关联信息可以是该大文件的存储路径,也可以是该大文件对应的淘汰周期所在的时间段,还可以是其他的能够将一个淘汰周期内的小文件与该淘汰周期对应的大文件关联起来的信息。
其中,每个小文件的key可以用文件的消息摘要算法第五版(MD5, MessageDigest Algorithm 5, MD5)的值来表示,当然,也可以用其他的能够唯一标识一个小文件的内容的值来表示。
一个淘汰周期对应的大文件中的一个小文件相对于该大文件的存储位置偏移,即这个小文件的存储位置的偏移量,可以是这个小文件存储的起始位置相对于该大文件的存储的起始位置的偏移量。
可选地,本发明实施例提供的一种小文件的处理方法,如图2所示,包括:
S201、在将一个淘汰周期内还原的小文件写入到一个索引节点对应的大文件时,根据待写入的小文件的key判断该淘汰周期对应的大文件或者该淘汰周期之前的淘汰周期对应的大文件中是否包含相同内容的小文件;若是,则执行S202,否则,执行S203;
S202、将包含相同内容的小文件的大文件中与待写入的小文件的内容相同的小文件的最后引用时间更新为待写入的小文件的还原时间;
S203、将待写入的小文件写入到该淘汰周期对应的大文件中,并将待写入的小文件与该淘汰周期对应的大文件的关联信息,待写入的小文件的key,待写入的小文件相对于该淘汰周期对应的大文件的存储位置偏移量,待写入的小文件的文件长度写入到元数据中;以及将待写入的小文件写入到该淘汰周期对应的大文件中的时间作为待写入的小文件的最后引用时间,写入到元数据中。
在执行完S202或者S203之后,再执行S102.
若在上述的应用场景中执行S201-S203,假设通过比较周三还原的一个小文件file-1的key与已经还原并且未被删除的各个小文件的key(其中,已经还原并且未被删除的各个小文件包括周一还原的各个小文件,周二还原的各个小文件和周三在小文件file-1还原之前已经还原的小文件),发现周三还原的小文件file-1的内容与周一还原的一个小文件file-2的内容相同,那么,周三还原的小文件file-1并不写入周三对应的大文件FILE3中,而仅仅将周一对应的大文件FILE1中的小文件file-2的最后引用时间修改为周三还原的小文件file-1的还原时间. 如果通过比较周三还原的一个小文件file-1的key与已经还原并且未被删除的各个小文件的key,发现周三还原的小文件file-1的内容与已经还原并且未被删除的各个小文件的内容均不相同,那么可以将周三还原的小文件file-1写入周三对应的大文件FILE3的末尾,并将小文件file-1与周三对应的大文件FILE3的关联信息,小文件file-1的key,小文件file-1相对于大文件FILE3的存储位置偏移量,小文件file-1的文件长度写入到元数据中;以及将小文件file-1写入到大文件FILE3中的时间作为小文件file-1的最后引用时间,写入到元数据中。
可选地,本发明实施例提供的一种小文件处理方法,如图3所示,包括:
S301、在将一个淘汰周期内还原的小文件写入到一个索引节点对应的大文件时,根据待写入的小文件的key判断该淘汰周期对应的大文件或者该淘汰周期之前的淘汰周期对应的大文件中是否包含相同内容的小文件;若是,执行S302,否则,执行S303;
S302、将待写入的小文件写入到该淘汰周期对应的大文件中;并将元数据中与待写入的小文件的内容相同的小文件的存储位置偏移量,更新为待写入的小文件相对于该淘汰周期对应的大文件的存储位置偏移量;以及将元数据中内容相同的小文件与其大文件的关联信息,更新为待写入的小文件与该淘汰周期对应的大文件的关联信息;并将元数据中与待写入的小文件的内容相同的小文件的最后引用时间,更新为待写入的小文件写入到该淘汰周期对应的大文件中的时间;
S303、将待写入的小文件写入到该淘汰周期对应的大文件中,并将待写入的小文件与该淘汰周期对应的大文件的关联信息,待写入的小文件的key,待写入的小文件相对于该大文件的存储位置偏移量,待写入的小文件的文件长度写入到元数据中;以及将待写入的小文件写入到该淘汰周期对应的大文件中的时间作为待写入的小文件的最后引用时间,写入到元数据中。
在执行完S303之后,执行S102.
若在上述的应用场景中执行S301-S303,假设通过比较周三还原的一个小文件file-1的key与已经还原并且未被删除的各个小文件的key(其中,已经还原并且未被删除的各个小文件包括周一还原的各个小文件,周二还原的各个小文件和周三在小文件file-1还原之前已经还原的小文件),发现周三还原的小文件file-1的内容与周一还原的一个小文件file-2的内容相同,那么,将周三还原的小文件file-1写入周三对应的大文件FILE3的末尾,并将元数据中周一还原的小文件file-2与周一对应的大文件FILE1的关联信息,更新为周三还原的小文件file-1与周三对应的大文件FILE3的关联信息,将元数据中周一还原的小文件file-2相对于周一对应的大文件FILE1的存储位置偏移量,更新为周三还原的小文件file-1相对于周三对应的大文件FILE3的存储位置偏移量,将元数据中周一还原的小文件file-2的最后引用时间更新为周三还原的小文件file-1写入到周三对应的大文件FILE3中的时间,从而使得更新前指向周一还原的小文件file-2和周一对应的大文件FILE1的元数据在更新后不再指向周一还原的小文件file-2和周一对应的大文件FILE1,而指向周三还原的小文件file-1和周三对应的大文件FILE3,这样,周一还原的小文件file-2虽然还在周一对应的大文件FILE1中,但是不再有元数据指向周一还原的小文件file-2。
如果通过比较周三还原的一个小文件file-1的key与已经还原并且未被删除的各个小文件的key,发现周三还原的小文件file-1的内容与已经还原并且未被删除的各个小文件的内容均不相同,那么无需再删除小文件,直接将周三还原的小文件file-1写入周三对应的大文件FILE3的末尾,并小文件file-1与周三对应的大文件FILE3的关联信息,将小文件file-1的key,小文件file-1相对于大文件FILE3的存储位置偏移量,小文件file-1的文件长度写入到元数据中;以及将小文件file-1写入到大文件FILE3中的时间作为小文件file-1的最后引用时间,写入到元数据中。
虽然图3所示的小文件处理方法会有一些内容相同的小文件重复存储,但是由于在网络流量设备旁路还原文件等类似场景下还原的小文件的重复率很低,因此,涉及到的重复存储的小文件的数量很小。
可选地,如图4所示,本发明实施例还提供了一种小文件处理方法,包括:
S101、将每一个淘汰周期内还原的小文件写入到一个索引节点对应的大文件;不同淘汰周期内还原的小文件写入到不同索引节点对应的大文件;
其中,S101可以采用S201-S203的流程实现,也可以采用S301-S303的流程实现,还可以采用其他流程实现;
S401、确定需要删除一个淘汰周期内还原的小文件;
S402、确定待删除的大文件中最后引用时间不在待删除的大文件对应的淘汰周期所表示的时间段内的各个小文件;其中,待删除的大文件为包含需要删除的淘汰周期内还原的小文件的大文件;
S403、将所述待删除的大文件中的每一个最后引用时间不在该淘汰周期所表示的时间段内的小文件,写入到当前时间所在的淘汰周期对应的大文件中;并将各个写入的小文件与当前时间所在的淘汰周期对应的大文件的关联信息,各个写入的小文件的key,各个写入的小文件相对于当前时间所在的淘汰周期对应的大文件的存储位置偏移量,和各个写入的小文件的文件长度写入到元数据中;以及将各个写入的小文件写入当前时间所在的淘汰周期对应的大文件中的时间作为其最后引用时间,写入到元数据中;
S404、删除待删除的大文件及其元数据。
在上述应用场景中,若S101可以采用S201-S203的流程实现,那么在确定删除上周一还原的小文件时,由于上周一对应的大文件FILE1中的小文件file-2的最后引用时间为上周三,因此,将上周一对应的大文件FILE1中的小文件file-2写入到这个周一对应的大文件FILE8中,并在元数据中写入小文件file-2与大文件FILE8的关联信息,小文件file-2的key,小文件file-2相对于大文件FILE8的存储位置偏移量,和小文件file-2的文件长度,以及将小文件file-2写入到大文件FILE8中的时间作为小文件file-2的最后引用时间,写入到元数据中。如果上周一对应的大文件FILE1中的除小文件file-2以外的其他小文件的最后引用时间都在上周一,那么就可以将上周一对应的大文件FILE1删除,并删除大文件FILE1的元数据。
在上述应用场景中,若S101可以采用S301-S303的流程实现,那么在确定删除上周一还原的小文件时,由于上周一对应的大文件FILE1中的小文件file-2与上周三还原的小文件file-1的内容相同,并且,小文件file-2写入了大文件FILE1中,小文件file-1写入了大文件FILE3中,但是,元数据原来指向小文件file-2的数据已经更新为指向小文件file-1,因此,可以直接将上周一对应的大文件FILE1及其元数据删除。
可选地,如图5所示,本发明实施例还提供了一种小文件处理方法,包括:
S101、将每一个淘汰周期内还原的小文件写入到一个索引节点对应的大文件;不同淘汰周期内还原的小文件写入到不同索引节点对应的大文件;
其中,S101可以采用S201-S203的流程实现,也可以采用S301-S303的流程实现,还可以其他流程实现;
S501、确定需要删除一个淘汰周期内还原的小文件;
S502、确定待删除的大文件中最后引用时间不在待删除的大文件对应的淘汰周期所表示的时间段内的各个小文件;其中,待删除的大文件为包含需要删除的淘汰周期内还原的小文件的大文件;
S503、针对待删除的大文件中的一个最后引用时间不在该淘汰周期所表示的时间段内的小文件,将该小文件写入到该小文件的最后引用时间所在的淘汰周期对应的大文件中,并将该小文件与该小文件的最后引用时间所在的淘汰周期对应的大文件的关联信息,该小文件的key,该小文件相对于其最后引用时间所在的淘汰周期对应的大文件的存储位置偏移量,该小文件的文件长度,该小文件的最后引用时间写入到元数据中;
S504、删除待删除的大文件及其元数据。
在上述应用场景中,若S101可以采用S201-S203的流程实现,那么在确定删除上周一还原的小文件时,由于上周一对应的大文件FILE1中的小文件file-2的最后引用时间为上周三,因此,上周一对应的大文件FILE1中的小文件file-2应该写入到上周三对应的大文件FILE3中,并在元数据中写入小文件file-2与大文件FILE3的关联信息,小文件file-2的key,小文件file-2相对于大文件FILE3的存储位置偏移量,小文件file-2的文件长度和小文件file-2的最后引用时间。如果上周一对应的大文件FILE1中的除小文件file-2以外的其他小文件的最后引用时间都在上周一,那么就可以将上周一对应的大文件FILE1删除,并删除大文件FILE1的元数据。
在上述应用场景中,若S101可以采用S301-S303的流程实现,那么在确定删除上周一还原的小文件时,由于上周一对应的大文件FILE1中的小文件file-2与上周三还原的小文件file-1的内容相同,并且,小文件file-2写入了大文件FILE1中,小文件file-1写入了大文件FILE3中,但是,元数据原来指向小文件file-2的数据已经更新为指向小文件file-1,因此,可以直接将上周一对应的大文件FILE1及其元数据删除。
进一步地,当按照S201-S203的流程,或按照S301-S303的流程将一个淘汰周期内还原的小文件整合为一个索引节点对应的大文件后,在需要获取一个小文件的内容时,可以根据待获取的小文件key以及待获取的小文件与大文件的关联信息查找到待获取的小文件所在的大文件,根据元数据中记录的查找到的大文件的存储位置、待获取的小文件的存储位置偏移量和文件长度,读取待获取的小文件。
在上述应用场景中,当按照S201-S203的流程将一个淘汰周期内还原的小文件整合为一个索引节点对应的大文件后,如果要获取小文件file-2的内容,那么根据小文件的key(可以用MD5来表示)和小文件与大文件的关联信息查找到小文件file-2所在的大文件为FILE1,然后从元数据中获取大文件FILE1的存储位置,小文件file-2相对于大文件FILE1的存储位置偏移量和小文件file-2的文件长度,读取待获取的小文件file-2的内容。
在上述应用场景中,当按照S301-S303的流程将一个淘汰周期内还原的小文件整合为一个索引节点对应的大文件后,如果要获取小文件file-2的内容,由于小文件file-2的内容与小文件file-1的内容相同,即小文件file-2的key与小文件file-1的key相同,并且元数据中已经没有数据指向小文件file-2,因此,根据小文件的key和小文件与大文件的关联信息查找到小文件file-1所在的大文件,FILE3,然后从元数据中获取大文件FILE3的存储位置,小文件file-1相对于大文件FILE3的存储位置偏移量和小文件file-1的文件长度,读取待获取的小文件file-1的内容,即获取了小文件file-2的内容。
基于同一发明构思,本发明实施例还提供了一种小文件处理装置,由于该装置所解决问题的原理与前述小文件处理方法相似,因此该装置的实施可以参见前述方法的实施,重复之处不再赘述。
本发明实施例提供的一种小文件处理装置,如图6所示,包括:
存储模块61,用于将每一个淘汰周期内还原的小文件写入到一个索引节点对应的大文件;不同淘汰周期内还原的小文件写入到不同索引节点对应的大文件;其中,所述小文件是小于预设大小的文件,所述大文件由若干个小文件整合而成;
删除模块62,用于在确定需要删除一个淘汰周期内还原的小文件后,删除该淘汰周期对应的大文件的元数据,并删除该淘汰周期对应的大文件;其中,一个大文件的元数据包括该大文件的存储位置。
可选地,一个大文件的元数据还包括该大文件中每个小文件与该大文件的关联信息,该大文件中的每个小文件的键key,该大文件中的每个小文件相对于该大文件的存储位置偏移量,该大文件中的每个小文件的文件长度,和该大文件中的每个小文件的最后引用时间;
存储模块61,用于在将一个淘汰周期内还原的小文件写入到一个索引节点对应的大文件时,根据待写入的小文件的key确定该淘汰周期对应的大文件或者该淘汰周期之前的淘汰周期对应的大文件中包含相同内容的小文件;将包含相同内容的小文件的大文件中与待写入的小文件的内容相同的小文件的最后引用时间更新为待写入的小文件的还原时间。
或者,存储模块61,用于在将一个淘汰周期内还原的小文件写入到一个索引节点对应的大文件时,根据待写入小文件的key确定该淘汰周期对应的大文件或者该淘汰周期之前的淘汰周期对应的大文件中包含相同内容的小文件;将待写入的小文件写入到该淘汰周期对应的大文件中;并将元数据中与待写入的小文件的内容相同的小文件的存储位置偏移量,更新为待写入的小文件相对于该淘汰周期对应的大文件的存储位置偏移量;以及将元数据中内容相同的小文件与其大文件的关联信息,更新为待写入的小文件与该淘汰周期对应的大文件的关联信息;并将元数据中与待写入的小文件的内容相同的小文件的最后引用时间,更新为待写入的小文件写入到该淘汰周期对应的大文件中的时间。
或者,存储模块61,用于在将一个淘汰周期内还原的小文件写入到一个索引节点对应的大文件时,根据待写入小文件的key确定该淘汰周期对应的大文件以及该淘汰周期之前的淘汰周期对应的大文件中不包含相同内容的小文件;将待写入的小文件写入到该淘汰周期对应的大文件中,并将待写入的小文件与该淘汰周期对应的大文件的关联信息,待写入的小文件的key,待写入的小文件相对于该淘汰周期对应的大文件的存储位置偏移量,待写入的小文件的文件长度写入到元数据中;以及将待写入的小文件写入到该淘汰周期对应的大文件中的时间作为待写入的小文件的最后引用时间,写入到元数据中。
可选地,本发明实施例提供的另一种小文件处理装置,还包括第一确定模块和第一重新写入模块;
第一确定模块,用于在确定需要删除一个淘汰周期内还原的小文件之后,在删除该淘汰周期对应的大文件的元数据,并删除该淘汰周期对应的大文件之前,确定待删除的大文件中最后引用时间不在该淘汰周期所表示的时间段内的各个小文件;其中,待删除的大文件为包含需要删除的淘汰周期内还原的小文件的大文件;
第一重新写入模块,用于将所述待删除的大文件中的每一个最后引用时间不在该淘汰周期所表示的时间段内的小文件,写入到当前时间所在的淘汰周期对应的大文件中;并将各个写入的小文件与当前时间所在的淘汰周期对应的大文件的关联信息,各个写入的小文件的key,各个写入的小文件相对于当前时间所在的淘汰周期对应的大文件的存储位置偏移量,和各个写入的小文件的文件长度写入到元数据中;以及将各个写入的小文件写入当前时间所在的淘汰周期对应的大文件中的时间作为各个写入的小文件的最后引用时间,写入到元数据中。
可选地,本发明实施例提供的另一种小文件处理装置,还包括第二确定模块和第二重新写入模块;
第二确定模块,用于在确定需要删除一个淘汰周期内还原的小文件之后,在删除该淘汰周期对应的大文件的元数据,并删除该淘汰周期对应的大文件之前,确定待删除的大文件中最后引用时间不在该淘汰周期所表示的时间段内的各个小文件;其中,待删除的大文件为包含需要删除的淘汰周期内还原的小文件的大文件;
第二重新写入模块,用于针对所述待删除的大文件中的一个最后引用时间不在该淘汰周期所表示的时间段内的小文件,将该小文件与该小文件的最后引用时间所在的淘汰周期对应的大文件的关联信息,该小文件写入到该小文件的最后引用时间所在的淘汰周期对应的大文件中,并将该小文件的key,该小文件相对于其最后引用时间所在的淘汰周期对应的大文件的存储位置偏移量,该小文件的文件长度,该小文件的最后引用时间写入到元数据中。
可选地,本发明实施里提供的再一种小文件处理装置,还包括获取模块;
获取模块,用于在需要获取一个小文件的内容时,根据待获取的小文件的key以及待获取的小文件与大文件的关联信息查找到待获取的小文件所在的大文件,根据元数据中记录的查找到的该大文件的存储位置、待获取的小文件的存储位置偏移量和文件长度,读取待获取的小文件。
上述的写入模块,删除模块,第一确定模块,第一重新写入模块,第二确定模块,第二重新写入模块,和获取模块可以通过将实现这些模块的功能的指令存储到存储器中,并由与存储器相连的处理器来执行存储器存储的指令的方式来实现。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明实施例可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (12)
1.一种小文件处理方法,其特征在于,包括:
将每一个淘汰周期内还原的小文件写入到一个索引节点对应的大文件;不同淘汰周期内还原的小文件写入到不同索引节点对应的大文件;其中,所述小文件是小于预设大小的文件,所述大文件由若干个小文件整合而成;
在确定需要删除一个淘汰周期内还原的小文件后,删除该淘汰周期对应的大文件的元数据,并删除该淘汰周期对应的大文件;其中,一个大文件的元数据包括该大文件的存储位置;
一个大文件的元数据还包括该大文件中每个小文件与该大文件的关联信息,该大文件中的每个小文件的键key,该大文件中的每个小文件相对于该大文件的存储位置偏移量,该大文件中的每个小文件的文件长度,和该大文件中的每个小文件的最后引用时间;
将一个淘汰周期内还原的小文件写入到一个索引节点对应的大文件,包括:
根据待写入的小文件的key确定该淘汰周期对应的大文件或者该淘汰周期之前的淘汰周期对应的大文件中包含相同内容的小文件;
将包含相同内容的小文件的大文件中与待写入的小文件的内容相同的小文件的最后引用时间更新为待写入的小文件的还原时间。
2.如权利要求1所述的方法,其特征在于,一个大文件的元数据还包括该大文件中每个小文件与该大文件的关联信息,该大文件中的每个小文件的键key,该大文件中的每个小文件相对于该大文件的存储位置偏移量,该大文件中的每个小文件的文件长度,和该大文件中的每个小文件的最后引用时间;
将一个淘汰周期内还原的小文件写入到一个索引节点对应的大文件,包括:
根据待写入小文件的key确定该淘汰周期对应的大文件或者该淘汰周期之前的淘汰周期对应的大文件中包含相同内容的小文件;
将待写入的小文件写入到该淘汰周期对应的大文件中;并将元数据中与待写入的小文件的内容相同的小文件的存储位置偏移量,更新为待写入的小文件相对于该淘汰周期对应的大文件的存储位置偏移量;以及将元数据中内容相同的小文件与其大文件的关联信息,更新为待写入的小文件与该淘汰周期对应的大文件的关联信息;并将元数据中与待写入的小文件的内容相同的小文件的最后引用时间,更新为待写入的小文件写入到该淘汰周期对应的大文件中的时间。
3.如权利要求1所述的方法,其特征在于,一个大文件的元数据还包括该大文件中每个小文件与该大文件的关联信息,该大文件中的每个小文件的键key,该大文件中的每个小文件相对于该大文件的存储位置偏移量,该大文件中的每个小文件的文件长度,和该大文件中的每个小文件的最后引用时间;
将一个淘汰周期内还原的小文件写入到一个索引节点对应的大文件,包括:
根据待写入小文件的key确定该淘汰周期对应的大文件以及该淘汰周期之前的淘汰周期对应的大文件中不包含相同内容的小文件;
将待写入的小文件写入到该淘汰周期对应的大文件中,并将待写入的小文件与该淘汰周期对应的大文件的关联信息,待写入的小文件的key,待写入的小文件相对于该淘汰周期对应的大文件的存储位置偏移量,待写入的小文件的文件长度写入到元数据中;并将待写入的小文件写入到该淘汰周期对应的大文件中的时间作为待写入的小文件的最后引用时间,写入到元数据中。
4.如权利要求1-3任一所述的方法,其特征在于,在确定需要删除一个淘汰周期内还原的小文件之后,在删除该淘汰周期对应的大文件的元数据,并删除该淘汰周期对应的大文件之前,所述方法还包括;
确定待删除的大文件中最后引用时间不在该淘汰周期所表示的时间段内的各个小文件;其中,待删除的大文件为包含需要删除的淘汰周期内还原的小文件的大文件;
将所述待删除的大文件中的每一个最后引用时间不在该淘汰周期所表示的时间段内的小文件,写入到当前时间所在的淘汰周期对应的大文件中;并将各个写入的小文件与当前时间所在的淘汰周期对应的大文件的关联信息,各个写入的小文件的key,各个写入的小文件相对于当前时间所在的淘汰周期对应的大文件的存储位置偏移量,和各个写入的小文件的文件长度写入到元数据中;以及将各个写入的小文件写入当前时间所在的淘汰周期对应的大文件中的时间作为各个写入的小文件的最后引用时间,写入到元数据中。
5.如权利要求1-3任一所述的方法,其特征在于,在确定需要删除一个淘汰周期内还原的小文件之后,在删除该淘汰周期对应的大文件的元数据,并删除该淘汰周期对应的大文件之前,所述方法还包括;
确定待删除的大文件中最后引用时间不在该淘汰周期所表示的时间段内的各个小文件;其中,待删除的大文件为包含需要删除的淘汰周期内还原的小文件的大文件;
针对所述待删除的大文件中的一个最后引用时间不在该淘汰周期所表示的时间段内的小文件,将该小文件写入到该小文件的最后引用时间所在的淘汰周期对应的大文件中,并将该小文件与该小文件的最后引用时间所在的淘汰周期对应的大文件的关联信息,该小文件的key,该小文件相对于其最后引用时间所在的淘汰周期对应的大文件的存储位置偏移量,该小文件的文件长度,该小文件的最后引用时间写入到元数据中。
6.如权利要求1-3任一所述的方法,其特征在于,在需要获取一个小文件的内容时,根据待获取的小文件的key以及待获取的小文件与大文件的关联信息查找到待获取的小文件所在的大文件,根据元数据中记录的查找到的大文件的存储位置、待获取的小文件的存储位置偏移量和文件长度,读取待获取的小文件。
7.一种小文件处理装置,其特征在于,包括:
存储模块,用于将每一个淘汰周期内还原的小文件写入到一个索引节点对应的大文件;不同淘汰周期内还原的小文件写入到不同索引节点对应的大文件;其中,所述小文件是小于预设大小的文件,所述大文件由若干个小文件整合而成;
删除模块,用于在确定需要删除一个淘汰周期内还原的小文件后,删除该淘汰周期对应的大文件的元数据,并删除该淘汰周期对应的大文件;其中,一个大文件的元数据包括该大文件的存储位置;
一个大文件的元数据还包括该大文件中每个小文件与该大文件的关联信息,该大文件中的每个小文件的键key,该大文件中的每个小文件相对于该大文件的存储位置偏移量,该大文件中的每个小文件的文件长度,和该大文件中的每个小文件的最后引用时间;
所述存储模块,用于在将一个淘汰周期内还原的小文件写入到一个索引节点对应的大文件时,根据待写入的小文件的key确定该淘汰周期对应的大文件或者该淘汰周期之前的淘汰周期对应的大文件中包含相同内容的小文件;将包含相同内容的小文件的大文件中与待写入的小文件的内容相同的小文件的最后引用时间更新为待写入的小文件的还原时间。
8.如权利要求7所述的装置,其特征在于,一个大文件的元数据还包括该大文件中每个小文件与该大文件的关联信息,该大文件中的每个小文件的键key,该大文件中的每个小文件相对于该大文件的存储位置偏移量,该大文件中的每个小文件的文件长度,和该大文件中的每个小文件的最后引用时间;
所述存储模块,用于在将一个淘汰周期内还原的小文件写入到一个索引节点对应的大文件时,根据待写入小文件的key确定该淘汰周期对应的大文件或者该淘汰周期之前的淘汰周期对应的大文件中包含相同内容的小文件;将待写入的小文件写入到该淘汰周期对应的大文件中;并将元数据中与待写入的小文件的内容相同的小文件的存储位置偏移量,更新为待写入的小文件相对于该淘汰周期对应的大文件的存储位置偏移量;以及将元数据中内容相同的小文件与其大文件的关联信息,更新为待写入的小文件与该淘汰周期对应的大文件的关联信息;并将元数据中与待写入的小文件的内容相同的小文件的最后引用时间,更新为待写入的小文件写入到该淘汰周期对应的大文件中的时间。
9.如权利要求7所述的装置,其特征在于,一个大文件的元数据还包括该大文件中每个小文件与该大文件的关联信息,该大文件中的每个小文件的键key,该大文件中的每个小文件相对于该大文件的存储位置偏移量,该大文件中的每个小文件的文件长度,和该大文件中的每个小文件的最后引用时间;
所述存储模块,用于在将一个淘汰周期内还原的小文件写入到一个索引节点对应的大文件时,根据待写入小文件的key确定该淘汰周期对应的大文件以及该淘汰周期之前的淘汰周期对应的大文件中不包含相同内容的小文件;将待写入的小文件写入到该淘汰周期对应的大文件中,并将待写入的小文件与该淘汰周期对应的大文件的关联信息,待写入的小文件的key,待写入的小文件相对于该淘汰周期对应的大文件的存储位置偏移量,待写入的小文件的文件长度写入到元数据中;以及将待写入的小文件写入到该淘汰周期对应的大文件中的时间作为待写入的小文件的最后引用时间,写入到元数据中。
10.如权利要求7-9任一所述的装置,其特征在于,所述装置还包括第一确定模块和第一重新写入模块;
所述第一确定模块,用于在确定需要删除一个淘汰周期内还原的小文件之后,在删除该淘汰周期对应的大文件的元数据,并删除该淘汰周期对应的大文件之前,确定待删除的大文件中最后引用时间不在该淘汰周期所表示的时间段内的各个小文件;其中,待删除的大文件为包含需要删除的淘汰周期内还原的小文件的大文件;
所述第一重新写入模块,用于将所述待删除的大文件中的每一个最后引用时间不在该淘汰周期所表示的时间段内的小文件,写入到当前时间所在的淘汰周期对应的大文件中;并将各个写入的小文件与当前时间所在的淘汰周期对应的大文件的关联信息,各个写入的小文件的key,各个写入的小文件相对于当前时间所在的淘汰周期对应的大文件的存储位置偏移量,和各个写入的小文件的文件长度写入到元数据中;以及将各个写入的小文件写入当前时间所在的淘汰周期对应的大文件中的时间作为各个写入的小文件的最后引用时间,写入到元数据中。
11.如权利要求7-9任一所述的装置,其特征在于,所述装置还包括第二确定模块和第二重新写入模块;
所述第二确定模块,用于在确定需要删除一个淘汰周期内还原的小文件之后,在删除该淘汰周期对应的大文件的元数据,并删除该淘汰周期对应的大文件之前,确定待删除的大文件中最后引用时间不在该淘汰周期所表示的时间段内的各个小文件;其中,待删除的大文件为包含需要删除的淘汰周期内还原的小文件的大文件;
所述第二重新写入模块,用于针对所述待删除的大文件中的一个最后引用时间不在该淘汰周期所表示的时间段内的小文件,将该小文件写入到该小文件的最后引用时间所在的淘汰周期对应的大文件中,并将该小文件与该小文件的最后引用时间所在的淘汰周期对应的大文件的关联信息,该小文件的key,该小文件相对于其最后引用时间所在的淘汰周期对应的大文件的存储位置偏移量,该小文件的文件长度,该小文件的最后引用时间写入到元数据中。
12.如权利要求7-9任一所述的装置,其特征在于,所述装置还包括获取模块;
所述获取模块,用于在需要获取一个小文件的内容时,根据待获取的小文件的key以及待获取的小文件与大文件的关联信息查找到待获取的小文件所在的大文件,根据元数据中记录的查找到的大文件的存储位置、待获取的小文件的存储位置偏移量和文件长度,读取待获取的小文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711252485.3A CN109947721B (zh) | 2017-12-01 | 2017-12-01 | 一种小文件处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711252485.3A CN109947721B (zh) | 2017-12-01 | 2017-12-01 | 一种小文件处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109947721A CN109947721A (zh) | 2019-06-28 |
CN109947721B true CN109947721B (zh) | 2021-08-17 |
Family
ID=67005089
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711252485.3A Active CN109947721B (zh) | 2017-12-01 | 2017-12-01 | 一种小文件处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109947721B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113110801A (zh) * | 2021-04-15 | 2021-07-13 | 山东英信计算机技术有限公司 | 一种加快小文件读取速度的方法、系统、设备和存储介质 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8171113B2 (en) * | 2000-04-18 | 2012-05-01 | Hoshiko Llc | Management of bandwidth allocation in a network server |
US8572055B1 (en) * | 2008-06-30 | 2013-10-29 | Symantec Operating Corporation | Method and system for efficiently handling small files in a single instance storage data store |
CN103514210A (zh) * | 2012-06-28 | 2014-01-15 | 华为技术有限公司 | 小文件处理方法及装置 |
CN103530387A (zh) * | 2013-10-22 | 2014-01-22 | 浪潮电子信息产业股份有限公司 | 一种hdfs针对小文件的改进方法 |
CN104123237A (zh) * | 2014-06-24 | 2014-10-29 | 中电科华云信息技术有限公司 | 海量小文件分级存储方法及系统 |
CN104346384A (zh) * | 2013-07-31 | 2015-02-11 | 上海云端广告有限公司 | 一种小文件处理方法及装置 |
CN104462563A (zh) * | 2014-12-26 | 2015-03-25 | 浙江宇视科技有限公司 | 一种文件存储方法和系统 |
CN104572670A (zh) * | 2013-10-15 | 2015-04-29 | 方正国际软件(北京)有限公司 | 一种小文件的存储、查询及删除方法和系统 |
CN104765876A (zh) * | 2015-04-24 | 2015-07-08 | 中国人民解放军信息工程大学 | 海量gnss小文件云存储方法 |
CN105843841A (zh) * | 2016-03-07 | 2016-08-10 | 青岛理工大学 | 一种小文件存储方法和系统 |
CN105868286A (zh) * | 2016-03-23 | 2016-08-17 | 中国科学院计算技术研究所 | 基于分布式文件系统小文件合并的并行追加方法及系统 |
CN105912664A (zh) * | 2016-04-11 | 2016-08-31 | 华为技术有限公司 | 一种文件处理方法和设备 |
-
2017
- 2017-12-01 CN CN201711252485.3A patent/CN109947721B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8171113B2 (en) * | 2000-04-18 | 2012-05-01 | Hoshiko Llc | Management of bandwidth allocation in a network server |
US8572055B1 (en) * | 2008-06-30 | 2013-10-29 | Symantec Operating Corporation | Method and system for efficiently handling small files in a single instance storage data store |
CN103514210A (zh) * | 2012-06-28 | 2014-01-15 | 华为技术有限公司 | 小文件处理方法及装置 |
CN104346384A (zh) * | 2013-07-31 | 2015-02-11 | 上海云端广告有限公司 | 一种小文件处理方法及装置 |
CN104572670A (zh) * | 2013-10-15 | 2015-04-29 | 方正国际软件(北京)有限公司 | 一种小文件的存储、查询及删除方法和系统 |
CN103530387A (zh) * | 2013-10-22 | 2014-01-22 | 浪潮电子信息产业股份有限公司 | 一种hdfs针对小文件的改进方法 |
CN104123237A (zh) * | 2014-06-24 | 2014-10-29 | 中电科华云信息技术有限公司 | 海量小文件分级存储方法及系统 |
CN104462563A (zh) * | 2014-12-26 | 2015-03-25 | 浙江宇视科技有限公司 | 一种文件存储方法和系统 |
CN104765876A (zh) * | 2015-04-24 | 2015-07-08 | 中国人民解放军信息工程大学 | 海量gnss小文件云存储方法 |
CN105843841A (zh) * | 2016-03-07 | 2016-08-10 | 青岛理工大学 | 一种小文件存储方法和系统 |
CN105868286A (zh) * | 2016-03-23 | 2016-08-17 | 中国科学院计算技术研究所 | 基于分布式文件系统小文件合并的并行追加方法及系统 |
CN105912664A (zh) * | 2016-04-11 | 2016-08-31 | 华为技术有限公司 | 一种文件处理方法和设备 |
Non-Patent Citations (4)
Title |
---|
HDFS下海量小文件高效存储与索引方法;肖玉泽等;《小型微型计算机系统》;20151031;第2218-2223页 * |
Optimizing Small File Storage Process of the HDFS Which Based on the Indexing Mechanism;Cheng, Wenjuan等;《2017 IEEE 2nd International Conference on Cloud Computing and Big Data Analysis (ICCCBDA)》;20170430;第44-48页 * |
基于Hadoop的海量教育资源小文件的存储研究与实现;游小容;《中国优秀硕士学位论文全文数据库信息科技辑》;20160315;I138-5291 * |
小文件存取优化方法的研究与应用;宋亚龙;《中国优秀硕士学位论文全文数据库信息科技辑》;20160515;I137-35 * |
Also Published As
Publication number | Publication date |
---|---|
CN109947721A (zh) | 2019-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9128948B1 (en) | Integration of deduplicating backup server with cloud storage | |
US8904125B1 (en) | Systems and methods for creating reference-based synthetic backups | |
US10394797B2 (en) | Method and computing apparatus for managing main memory database | |
CN106970930B (zh) | 消息发送确定方法及装置、数据表创建方法及装置 | |
CN111444196B (zh) | 块链式账本中全局状态的哈希的生成方法、装置及设备 | |
EP3438845A1 (en) | Data updating method and device for a distributed database system | |
CN111444192B (zh) | 块链式账本中全局状态的哈希的生成方法、装置及设备 | |
CN108255989B (zh) | 图片存储方法、装置、终端设备及计算机存储介质 | |
US10572335B2 (en) | Metadata recovery method and apparatus | |
CN106708912B (zh) | 垃圾文件识别及管理方法、识别装置、管理装置和终端 | |
US11042507B2 (en) | System and method of deletion of files and counteracting their restoration | |
US9606749B2 (en) | Asynchronous tape backup and restore from tape backup in a disk storage environment | |
CN111382011B (zh) | 一种文件数据存取方法、装置和计算机可读存储介质 | |
CN109947721B (zh) | 一种小文件处理方法和装置 | |
EP3449372B1 (en) | Fault-tolerant enterprise object storage system for small objects | |
KR20170106626A (ko) | 메인 메모리 데이터 베이스를 관리 하기 위한 방법 및 컴퓨팅 장치 | |
US10620872B2 (en) | Replicating data in a data storage system | |
CN109542860B (zh) | 基于hdfs的业务数据管理方法、终端设备 | |
US10635645B1 (en) | Systems and methods for maintaining aggregate tables in databases | |
CN114924911B (zh) | Windows操作系统有效数据备份方法、装置、设备和存储介质 | |
CN115858471A (zh) | 业务数据变更记录方法、装置、计算机设备及介质 | |
CN115328704A (zh) | 文件备份方法、文件恢复方法、装置、设备和存储介质 | |
US8281096B1 (en) | Systems and methods for creating snapshots | |
CN115328851A (zh) | 一种数据保护方法、装置、设备及介质 | |
CN112463741A (zh) | 一种聚合大文件的清理方法及相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |