CN106354724A - 文件存档方法、文件读取方法及装置 - Google Patents

文件存档方法、文件读取方法及装置 Download PDF

Info

Publication number
CN106354724A
CN106354724A CN201510417166.8A CN201510417166A CN106354724A CN 106354724 A CN106354724 A CN 106354724A CN 201510417166 A CN201510417166 A CN 201510417166A CN 106354724 A CN106354724 A CN 106354724A
Authority
CN
China
Prior art keywords
history file
description information
queue
buffer memory
file
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.)
Granted
Application number
CN201510417166.8A
Other languages
English (en)
Other versions
CN106354724B (zh
Inventor
江梓龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201510417166.8A priority Critical patent/CN106354724B/zh
Publication of CN106354724A publication Critical patent/CN106354724A/zh
Application granted granted Critical
Publication of CN106354724B publication Critical patent/CN106354724B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种文件存档方法、文件读取方法及装置,该方法属于网络技术领域。包括:获取待存档的历史文件及其描述信息;从至少一个预设缓存队列中选取一个预设缓存队列,得到选定缓存队列;将所述历史文件及其描述信息写入所述选定缓存队列中;以及,定期将所述至少一个预设缓存队列中的历史文件及其描述信息写入磁盘中进行存档。该方案中,无需借助文件目录管理系统或文件分布式系统对历史文件及其描述信息进行存档,从而不会占用很多目录资源,相应地也减少访问延迟。

Description

文件存档方法、文件读取方法及装置
技术领域
本申请涉及网络技术领域,尤其涉及一种文件存档方法、文件读取方法及装置。
背景技术
随着网络技术的飞速发展,社交类应用程序(Application,APP)越来越多,用户之间可以通过社交类APP进行交流,常用的社交类APP有阿里旺旺、QQ、微信、飞信等等。服务器将用户之间每次通过社交类APP交互的信息作为一个历史文件写入磁盘进行存档,以便于用户再次查询和使用,历史文件可以为语音文件、视频文件、文本文件、图片文件等等。
目前,用户数量日益增多,历史文件的数量也越来越多,服务器需要借助于目录管理系统或者分布式文件系统等等将历史文件写入磁盘,为了便于区分众多的历史文件,通常需要将每个历史文件的描述信息也写入磁盘。按照现有的文件存档方法,服务器首先建立与用户对应的目录,然后将历史文件及其描述信息保存在该目录下,由于磁盘的每个目录下存储的历史文件及其描述信息的个数有最大值,当该目录下的历史文件及其描述信息的个数超过最大值时,需要将该目录下已有的历史文件及其描述信息保存在一个子目录中,并在该目录下建立新的子目录来保存其它的历史文件及其描述信息。
上述文件存档方法,需要借助文件目录管理系统或文件分布式系统对历史文件及其描述信息进行存档,由于每个目录下存储的历史文件及其描述信息的个数都有最大值,随着历史文件的数量增多,为了保存历史文件及其描述信息就需要不断建立子目录,这样会占用很多目录资源,并且相应地还会增大访问延迟。
发明内容
本申请实施例提供一种文件存档方法、文件读取方法及装置,用以解决相关技术中存在的占用很多目录资源,并且增大访问延迟的问题。
根据本申请实施例,提供一种文件存档方法,包括:
获取待存档的历史文件及其描述信息;
从至少一个预设缓存队列中选取一个预设缓存队列,得到选定缓存队列;
将所述历史文件及其描述信息写入所述选定缓存队列中;以及,
定期将所述至少一个预设缓存队列中的历史文件及其描述信息写入磁盘中进行存档。
具体的,从至少一个预设缓存队列中选取一个预设缓存队列,得到选定缓存队列,具体包括:
若所述至少一个预设缓存队列形成环形队列,确定当前预设缓存队列的剩余缓存空间大小是否超过所述历史文件的大小,若所述当前预设缓存队列的剩余缓存空间大小超过所述历史文件的大小,则将所述当前预设缓存队列确定为选定缓存队列;若所述当前预设缓存队列的剩余缓存空间大小小于所述历史文件的大小,则将所述环形队列中位于所述当前预设缓存队列之后的预设缓存队列确定为选定缓存队列;或者,
确定每个预设缓存队列的剩余缓存空间大小,选取剩余缓存空间大小超过所述历史文件的大小的一个预设缓存队列,得到选定缓存队列。
具体的,将所述历史文件及其描述信息写入所述选定缓存队列中,具体包括:
将所述历史文件写入所述选定缓存队列的文件子队列中;
将所述历史文件的描述信息以内存对齐的格式写入所述选定缓存队列的索引子队列中。
具体的,定期将所述至少一个预设缓存队列中的历史文件及其描述信息写入磁盘中进行存档,具体包括:
监控设定周期是否到期;
若所述设定周期到期,检测每个预设缓存队列的剩余缓存空间大小;
将剩余缓存空间大小小于设定数值的预设缓存队列中的历史文件及其描述信息按照设定规则写入磁盘中进行存档。
具体的,将剩余缓存空间大小小于设定数值的预设缓存队列中的历史文件及其描述信息按照设定规则写入磁盘中进行存档,具体包括:
输出剩余缓存空间大小小于设定数值的预设缓存队列中的历史文件及其描述信息;
以每个历史文件的描述信息中的发送时间命名对应的历史文件及其描述信息;
将命名后的历史文件及其描述信息按照发送时间的先后顺序分别进行归档。
可选的,还包括:
接收用户发送的历史文件获取请求;
根据所述历史文件获取请求获取描述信息;
从高速缓存中查找与所述描述信息名称相同的历史文件;
若在所述高速缓存中查找到与所述描述信息名称相同的历史文件,将查找到的历史文件发送给所述用户;若在所述高速缓存中未查找到与所述描述信息名称相同的历史文件,根据所述描述信息从所述磁盘中查找与所述描述信息名称相同的历史文件,将查找到的历史文件发送给所述用户并保存在所述高速缓存中。
可选的,还包括:
统计已有时段内接收到的历史文件的大小及其增长率;
根据所述已有时段内接收到的历史文件的大小及其增长率确定在未来时段内所述磁盘的容量是否满足需求;
若在所述未来时段内所述磁盘的容量不满足需求,则对所述磁盘进行扩容。
根据本申请实施例,还提供一种文件读取方法,包括:
接收用户发送的历史文件获取请求;
根据所述历史文件获取请求获取描述信息;
从高速缓存中查找与所述描述信息名称相同的历史文件;
若在所述高速缓存中查找到与所述描述信息名称相同的历史文件,将查找到的历史文件发送给所述用户;若在所述高速缓存中未查找到与所述描述信息名称相同的历史文件,根据所述描述信息从所述磁盘中查找与所述描述信息名称相同的历史文件,将查找到的历史文件发送给所述用户并保存在所述高速缓存中。
根据本申请实施例,还提供一种文件存档装置,包括:
第一获取单元,用于获取待存档的历史文件及其描述信息;
选取单元,用于从至少一个预设缓存队列中选取一个预设缓存队列,得到选定缓存队列;
第一写入单元,用于将所述历史文件及其描述信息写入所述选定缓存队列中;以及,
第二写入单元,用于定期将所述至少一个预设缓存队列中的历史文件及其描述信息写入磁盘中进行存档。
具体的,所述选取单元,用于从至少一个预设缓存队列中选取一个预设缓存队列,得到选定缓存队列,具体用于:
若所述至少一个预设缓存队列形成环形队列,确定当前预设缓存队列的剩余缓存空间大小是否超过所述历史文件的大小,若所述当前预设缓存队列的剩余缓存空间大小超过所述历史文件的大小,则将所述当前预设缓存队列确定为选定缓存队列;若所述当前预设缓存队列的剩余缓存空间大小小于所述历史文件的大小,则将所述环形队列中位于所述当前预设缓存队列之后的预设缓存队列确定为选定缓存队列;或者,
确定每个预设缓存队列的剩余缓存空间大小,选取剩余缓存空间大小超过所述历史文件的大小的一个预设缓存队列,得到选定缓存队列。
具体的,所述第一写入单元,用于将所述历史文件及其描述信息写入所述选定缓存队列中,具体用于:
将所述历史文件写入所述选定缓存队列的文件子队列中;
将所述历史文件的描述信息以内存对齐的格式写入所述选定缓存队列的索引子队列中。
具体的,所述第二写入单元,用于定期将所述至少一个预设缓存队列中的历史文件及其描述信息写入磁盘中进行存档,具体用于:
监控设定周期是否到期;
若所述设定周期到期,检测每个预设缓存队列的剩余缓存空间大小;
将剩余缓存空间大小小于设定数值的预设缓存队列中的历史文件及其描述信息按照设定规则写入磁盘中进行存档。
具体的,所述第二写入单元,用于将剩余缓存空间大小小于设定数值的预设缓存队列中的历史文件及其描述信息按照设定规则写入磁盘中进行存档,具体用于:
输出剩余缓存空间大小小于设定数值的预设缓存队列中的历史文件及其描述信息;
以每个历史文件的描述信息中的发送时间命名对应的历史文件及其描述信息;
将命名后的历史文件及其描述信息按照发送时间的先后顺序分别进行归档。
可选的,还包括:
接收单元,用于接收用户发送的历史文件获取请求;
第二获取单元,用于根据所述历史文件获取请求获取描述信息;
查找单元,用于从高速缓存中查找与所述描述信息名称相同的历史文件;
发送单元,用于若在所述高速缓存中查找到与所述描述信息名称相同的历史文件,将查找到的历史文件发送给所述用户;若在所述高速缓存中未查找到与所述描述信息名称相同的历史文件,根据所述描述信息从所述磁盘中查找与所述描述信息名称相同的历史文件,将查找到的历史文件发送给所述用户并保存在所述高速缓存中。
可选的,还包括:
统计单元,用于统计已有时段内接收到的历史文件的大小及其增长率;
确定单元,用于根据所述已有时段内接收到的历史文件的大小及其增长率确定在未来时段内所述磁盘的容量是否满足需求;
扩容单元,用于若在所述未来时段内所述磁盘的容量不满足需求,则对所述磁盘进行扩容。
根据本申请实施例,还提供一种文件读取装置,包括:
接收单元,用于接收用户发送的历史文件获取请求;
获取单元,用于根据所述历史文件获取请求获取描述信息;
查找单元,用于从高速缓存中查找与所述描述信息名称相同的历史文件;
发送单元,用于若在所述高速缓存中查找到与所述描述信息名称相同的历史文件,将查找到的历史文件发送给所述用户;若在所述高速缓存中未查找到与所述描述信息名称相同的历史文件,根据所述描述信息从所述磁盘中查找与所述描述信息名称相同的历史文件,将查找到的历史文件发送给所述用户并保存在所述高速缓存中。
本申请实施例提供一种文件存档方法、文件读取方法及装置,获取待存档的历史文件及其描述信息;从至少一个预设缓存队列中选取一个预设缓存队列,得到选定缓存队列;将所述历史文件及其描述信息写入所述选定缓存队列中;以及,定期将所述至少一个预设缓存队列中的历史文件及其描述信息写入磁盘中进行存档。该方案中,无需借助文件目录管理系统或文件分布式系统对历史文件及其描述信息进行存档,从而不会占用很多目录资源,相应地也减少访问延迟。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例中一种文件存档方法的流程图;
图2为本申请实施例中环形队列的示意图;
图3为本申请实施例中一个预设缓存队列中设置的两个子队列的结构示意图;
图4为本申请实施例中另一种文件存档方法的流程图;
图5为本申请实施例中再一种文件存档方法的流程图;
图6为本申请实施例中一种文件读取方法的流程图;
图7为本申请实施例中一种文件存档装置的结构示意图;
图8为本申请实施例中另一种文件存档装置的结构示意图;
图9为本申请实施例中再一种文件存档装置的结构示意图;
图10为本申请实施例一种文件读取装置的结构示意图。
具体实施方式
为了使本申请所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
为了解决相关技术中存在的占用很多目录资源,并且增大访问延迟的问题,本申请实施例提供一种文件存档方法,该方法的执行主体可以但不限于是服务器,流程如图1所示,具体包括如下步骤:
S11:获取待存档的历史文件及其描述信息。
用户之间每次通过社交类APP交互的信息都作为一个待存档的历史文件,服务器可以获取该历史文件及其描述信息,该历史文件的描述信息描述的是历史文件的相关信息,可以包括发送时间、用户标识、群组标识、类型、校验摘要等等。
S12:从至少一个预设缓存队列中选取一个预设缓存队列,得到选定缓存队列。
通常历史文件的大小不完全一致,文本文件相对较小,视频文件相对较大,若每获取一个待存档的历史文件及其描述信息就写入磁盘,会浪费很多时间,且严重降低文件存档的效率,为了避免该问题,可以首先将待存档的历史文件及其描述信息缓存在预设缓存队列中,然后再将预设缓存队列中的历史文件及其描述信息统一写入磁盘中。
通常可以设定至少一个预设缓存队列,例如设定为2个、3个、4个等等,然后从中选取一个作为选定缓存队列,预设缓存队列的数量及每个预设缓存队列的缓存空间大小可以根据磁盘的存储空间进行设定,预设缓存队列的缓存空间大小可以设定为256M、128M、512M等等。
S13:将历史文件及其描述信息写入选定缓存队列中。
S11-S13实现了将一个待存档的历史文件及其描述信息写入选定缓存队列中,服务器获取的待存档的历史文件都可以按照上述过程写入选定缓存队列中。
S14:定期将至少一个预设缓存队列中的历史文件及其描述信息写入磁盘中进行存档。
上述每个预设缓存队列的缓存空间大小是一定的,不可能无限制缓存历史文件及其描述信息,当预设缓存队列的缓存空间全部被占用后,预设缓存队列不能再容纳新的历史文件及其描述信息,因此,在执行S11-S13的同时,还需要定期将上述至少一个预设缓存队列中的历史文件及其描述信息写入磁盘中进行归档,这样就可以释放预设缓存队列中的缓存空间,缓存新的历史文件及其描述信息。
该方案中,无需借助文件目录管理系统或文件分布式系统对历史文件及其描述信息进行存档,从而不会占用很多目录资源,相应地也减少访问延迟。
具体的,上述S12中的从至少一个预设缓存队列中选取一个预设缓存队列,得到选定缓存队列有多种实现方式,下面列举两种方式进行说明:
第一种方式,若至少一个预设缓存队列形成环形队列,确定当前预设缓存队列的剩余缓存空间大小是否超过历史文件的大小,若当前预设缓存队列的剩余缓存空间大小超过历史文件的大小,则将当前预设缓存队列确定为选定缓存队列;若当前预设缓存队列的剩余缓存空间大小小于历史文件的大小,则将环形队列中位于当前预设缓存队列之后的预设缓存队列确定为选定缓存队列。
上述至少一个预设缓存队列可以采用环形队列的设计方式,如图2所示,可以根据历史文件及其描述信息的大小确定选定缓存队列,也就是确定要将历史文件及其描述信息写入当前预设缓存队列还是环形队列中位于当前预设缓存队列之后的预设缓存队列。
例如,若每个预设缓存队列的缓存空间为256M,当前预设缓存队列已用的缓存空间大小为250M,那么当前预设缓存队列的剩余缓存空间大小为6M,若历史文件及其描述信息的大小为50M,则当前预设缓存队列的剩余缓存空间不足以缓存该历史文件及其描述信息,要选取环形队列中位于当前预设缓存队列之后的预设缓存队列作为选定缓存队列。
第二种方式,确定每个预设缓存队列的剩余缓存空间大小,选取剩余缓存空间大小超过历史文件的大小的一个预设缓存队列,得到选定缓存队列。
上述至少一个预设缓存队列也可以采用普通队列的设计方式,在确定选定缓存队列时,选取剩余缓存空间大小超过历史文件的大小的一个预设缓存队列即可,具体可以采用随机选取的方式,也可以选取剩余缓存空间最大的预设缓存队列,还可以选取历史文件的写入时间最早的预设缓存队列。
具体的,选定缓存队列可以包括文件子队列和索引子队列,上述S13中的将历史文件及其描述信息写入选定缓存队列中,具体的实现过程为:将历史文件写入选定缓存队列的文件子队列中;将历史文件的描述信息以内存对齐的格式写入选定缓存队列的索引子队列中。
可以在每个预设缓存队列中设置两个子队列:文件子队列和索引子队列,文件子队列中写入历史文件,这将大量减少目录资源的损耗,每写完一个历史文件后往索引子队列里面写入一个索引头,如图3所示,该索引头可以是历史文件的全部描述信息,也可以是从描述信息中选取的一部分信息,例如历史文件的发送人标识、群组标识、起始位置、文件偏移、文件类型、发送时间、校验摘要等。
索引头的具体格式如下:
struct{
uint32 userid;//用户ID
uint32 chatroom;//群组
uint64 start;//起始偏移
uint32 len;//结束偏移量差
uint32 sendtime;//发送时间
uint16 type;//类型
uint16 checksum;//校验码
unit32 extend;//扩展
}head。
由于上述索引头采用内存对齐的方式,输出或写入没有任何额外的损耗。并且,针对userid和chatroom构建btree索引,便可以实现通过单个用户访问自己的历史文件或群组的历史文件。
具体的,上述S14中的定期将至少一个预设缓存队列中的历史文件及其描述信息写入磁盘中进行存档,具体包括:
监控设定周期是否到期;
若设定周期到期,检测每个预设缓存队列的剩余缓存空间大小;
将剩余缓存空间大小小于设定数值的预设缓存队列中的历史文件及其描述信息按照设定规则写入磁盘中进行存档。
由于待存档的历史文件及其描述信息的大小并没有固定规律,因此无需等到每个预设缓存队列的剩余缓存空间大小为零时再将该预设缓存队列中的历史文件及其描述信息写入磁盘,只要剩余缓存空间大小小于设定数值时即可,设定周期和设定数值可以根据实际需要进行设定。
将预设缓存队列中的历史文件及其描述信息写入磁盘进行存档的具体实现过程为:输出剩余缓存空间大小小于设定数值的预设缓存队列中的历史文件及其描述信息;以每个历史文件的描述信息中的发送时间命名对应的历史文件及其描述信息;将命名后的历史文件及其描述信息按照发送时间的先后顺序分别进行归档。
可以但不限于将历史文件的描述信息中的发送时间作为输出的历史文件和描述信息的文件名,格式为yyyyMMddHHmm,历史文件和描述信息的文件名相同,后缀不同。在将命名后的历史文件及其描述信息进行归档时,可以但不限于按照发送时间进行归档,具体的归档方式有多种,下面列举两种方式进行说明,若以小时为单位进行规律,归档的目录结构为/data/yyyy/MM/dd/hh/;若以天为单位进行归档,归档的目录结构为/data/yyyy/MM/dd/等等。
由于历史文件与描述信息的文件名相同,可保证能够获取到归档的历史文件的物理地址,也就确保能获取到归档的历史文件。
本申请实施例还提供另一种文件存档方法,如图4所示,在图1的基础上,还包括如下步骤:
S15:接收用户发送的历史文件获取请求。
当用户需要获取某个历史文件时,可以向服务器发送历史文件获取请求。
S16:根据历史文件获取请求获取描述信息。
服务器根据该历史文件获取请求获取描述信息,历史文件获取请求中可以携带用户标识、群组标识、发送时间等等信息,服务器可以根据这些信息获取描述信息。
S17:从高速缓存中查找与描述信息名称相同的历史文件。
为了节省历史文件的获取时间,可以设置高速缓存,在高速缓存中缓存最近一段时间用户获取的历史文件。在服务器确定描述信息后,可以首先在高速缓存中查找是否存在与描述信息名称相同的历史文件。
S18:若在高速缓存中查找到与描述信息名称相同的历史文件,将查找到的历史文件发送给用户;若在高速缓存中未查找到与描述信息名称相同的历史文件,根据描述信息从磁盘中查找与描述信息名称相同的历史文件,将查找到的历史文件发送给用户并保存在高速缓存中。
相关技术中,需要借助文件目录管理系统或文件分布式系统对历史文件及其描述信息进行存档,当用户再次查询和使用历史文件时,服务器需要加载与该用户标识对应的目录下的全部描述信息,然后在从中找到所需历史文件的位置,最后获取用户需要的历史文件发送给用户,当与该用户标识对应的目录下的描述信息的数量很多时,服务器需要耗费很多时间才能找到用户需要的历史文件,这就会严重影响用户体验;通过本申请实施例的方式,无需加载该用户标识对应的目录下的全部描述信息,而是直接根据历史文件获取请求确定描述信息,从而可以快速地读取历史文件,并发送给用户,满足用户再次查询和使用的需求,很好地提升了用户体验。
本申请实施例还提供再一种文件存档方法,如图5所示,在图1的基础上,还包括如下步骤:
S19:统计已有时段内接收到的历史文件的大小及其增长率。
S20:根据已有时段内接收到的历史文件的大小及其增长率确定在未来时段内磁盘的容量是否满足需求。
S21:若在未来时段内磁盘的容量不满足需求,则对磁盘进行扩容。
若磁盘的剩余容量不满足扩容要求,则删除磁盘中时间最早一天的历史文件及其对应的描述信息,从而释放磁盘的存储空间存储新的历史文件。已有时段和未来时段可以根据需要进行设定,例如,已有时段设定为最近一个月,未来时段设定为未来一个月。
假设,最近一个月内接收到的历史文件的大小为100M,最近一个月接收到的历史文件的增长率为1.05倍/天,那么,未来一个月内需要的磁盘的存储空间为(1.05+1.05^2+..1.05^30)*100M,从而求出扩容需要的存储空间,并根据该存储空间对磁盘进行扩容。
基于同一发明构思,本申请实施例还提供一种文件读取方法,该方法与上述文件存档方法相对应,流程如6所示,具体包括如下步骤:
S61:接收用户发送的历史文件获取请求。
S62:根据历史文件获取请求获取描述信息。
S63:从高速缓存中查找与描述信息名称相同的历史文件。
S64:若在高速缓存中查找到与描述信息名称相同的历史文件,将查找到的历史文件发送给用户;若在高速缓存中未查找到与描述信息名称相同的历史文件,根据描述信息从磁盘中查找与描述信息名称相同的历史文件,将查找到的历史文件发送给用户并保存在高速缓存中。
相关技术中,需要借助借助文件目录管理系统或文件分布式系统对历史文件及其描述信息进行存档,当用户再次查询和使用历史文件时,服务器需要加载与该用户标识对应的目录下的全部描述信息,然后在从中找到所需历史文件的位置,最后获取用户需要的历史文件发送给用户,当与该用户标识对应的目录下的描述信息的数量很多时,服务器需要耗费很多时间才能找到用户需要的历史文件,这就会严重影响用户体验;通过本申请实施例的方式,无需加载该用户标识对应的目录下的全部描述信息,而是直接根据历史文件获取请求确定描述信息,从而可以快速地读取历史文件,并发送给用户,满足用户再次查询和使用的需求,很好地提升了用户体验。
基于同一发明构思,本申请实施例还提供一种文件存档装置,该装置与如图1所示的文件存档方法相对应,该装置的结构如7图所示,包括:
第一获取单元71,用于获取待存档的历史文件及其描述信息;
选取单元72,用于从至少一个预设缓存队列中选取一个预设缓存队列,得到选定缓存队列;
第一写入单元73,用于将历史文件及其描述信息写入选定缓存队列中;以及,
第二写入单元74,用于定期将至少一个预设缓存队列中的历史文件及其描述信息写入磁盘中进行存档。
该方案中,无需借助文件目录管理系统或文件分布式系统对历史文件及其描述信息进行存档,从而不会占用很多目录资源,相应地也减少访问延迟。
具体的,上述选取单元72,用于从至少一个预设缓存队列中选取一个预设缓存队列,得到选定缓存队列,具体用于:
若至少一个预设缓存队列形成环形队列,确定当前预设缓存队列的剩余缓存空间大小是否超过历史文件的大小,若当前预设缓存队列的剩余缓存空间大小超过历史文件的大小,则将当前预设缓存队列确定为选定缓存队列;若当前预设缓存队列的剩余缓存空间大小小于历史文件的大小,则将环形队列中位于当前预设缓存队列之后的预设缓存队列确定为选定缓存队列;或者,
确定每个预设缓存队列的剩余缓存空间大小,选取剩余缓存空间大小超过历史文件的大小的一个预设缓存队列,得到选定缓存队列。
具体的,上述第一写入单元73,用于将历史文件及其描述信息写入选定缓存队列中,具体用于:
将历史文件写入选定缓存队列的文件子队列中;
将历史文件的描述信息以内存对齐的格式写入选定缓存队列的索引子队列中。
具体的,上述第二写入单元74,用于定期将至少一个预设缓存队列中的历史文件及其描述信息写入磁盘中进行存档,具体用于:
监控设定周期是否到期;
若设定周期到期,检测每个预设缓存队列的剩余缓存空间大小;
将剩余缓存空间大小小于设定数值的预设缓存队列中的历史文件及其描述信息按照设定规则写入磁盘中进行存档。
具体的,上述第二写入单元74,用于将剩余缓存空间大小小于设定数值的预设缓存队列中的历史文件及其描述信息按照设定规则写入磁盘中进行存档,具体用于:
输出剩余缓存空间大小小于设定数值的预设缓存队列中的历史文件及其描述信息;
以每个历史文件的描述信息中的发送时间命名对应的历史文件及其描述信息;
将命名后的历史文件及其描述信息按照发送时间的先后顺序分别进行归档。
本申请实施例还提供另一种文件存档装置,该装置与图7所示的装置相同的单元省略不表,该装置的结构如图8所示,在图7所示的装置的基础上,还包括:
接收单元75,用于接收用户发送的历史文件获取请求;
第二获取单元76,用于根据历史文件获取请求获取描述信息;
查找单元77,用于从高速缓存中查找与描述信息名称相同的历史文件;
发送单元78,用于若在高速缓存中查找到与描述信息名称相同的历史文件,将查找到的历史文件发送给用户;若在高速缓存中未查找到与描述信息名称相同的历史文件,根据描述信息从磁盘中查找与描述信息名称相同的历史文件,将查找到的历史文件发送给用户并保存在高速缓存中。
本申请实施例还提供再一种文件存档装置,该装置与图7所示的装置相同的单元省略不表,该装置的结构如图9所示,在图7所示的装置的基础上,还包括:
统计单元79,用于统计已有时段内接收到的历史文件的大小及其增长率;
确定单元80,用于根据已有时段内接收到的历史文件的大小及其增长率确定在未来时段内磁盘的容量是否满足需求;
扩容单元81,用于若在未来时段内磁盘的容量不满足需求,则对磁盘进行扩容。
基于同一发明构思,本申请实施例还提供一种文件读取装置,该装置与如图6所示的文件读取方法相对应,该装置的结构如10图所示,包括:
接收单元101,用于接收用户发送的历史文件获取请求;
获取单元102,用于根据历史文件获取请求获取描述信息;
查找单元103,用于从高速缓存中查找与描述信息名称相同的历史文件;
发送单元104,用于若在高速缓存中查找到与描述信息名称相同的历史文件,将查找到的历史文件发送给用户;若在高速缓存中未查找到与描述信息名称相同的历史文件,根据描述信息从磁盘中查找与描述信息名称相同的历史文件,将查找到的历史文件发送给用户并保存在高速缓存中。
相关技术中,需要借助文件目录管理系统或文件分布式系统对历史文件及其描述信息进行存档,当用户再次查询和使用历史文件时,服务器需要加载与该用户标识对应的目录下的全部描述信息,然后在从中找到所需历史文件的位置,最后获取用户需要的历史文件发送给用户,当与该用户标识对应的目录下的描述信息的数量很多时,服务器需要耗费很多时间才能找到用户需要的历史文件,这就会严重影响用户体验;通过本申请实施例的方式,无需加载该用户标识对应的目录下的全部描述信息,而是直接根据历史文件获取请求确定描述信息,从而可以快速地读取历史文件,并发送给用户,满足用户再次查询和使用的需求,很好地提升了用户体验。
上述说明示出并描述了本申请的优选实施例,但如前所述,应当理解本申请并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本申请的精神和范围,则都应在本申请所附权利要求的保护范围内。

Claims (16)

1.一种文件存档方法,其特征在于,包括:
获取待存档的历史文件及其描述信息;
从至少一个预设缓存队列中选取一个预设缓存队列,得到选定缓存队列;
将所述历史文件及其描述信息写入所述选定缓存队列中;以及,
定期将所述至少一个预设缓存队列中的历史文件及其描述信息写入磁盘中进行存档。
2.如权利要求1所述的方法,其特征在于,从至少一个预设缓存队列中选取一个预设缓存队列,得到选定缓存队列,具体包括:
若所述至少一个预设缓存队列形成环形队列,确定当前预设缓存队列的剩余缓存空间大小是否超过所述历史文件的大小,若所述当前预设缓存队列的剩余缓存空间大小超过所述历史文件的大小,则将所述当前预设缓存队列确定为选定缓存队列;若所述当前预设缓存队列的剩余缓存空间大小小于所述历史文件的大小,则将所述环形队列中位于所述当前预设缓存队列之后的预设缓存队列确定为选定缓存队列;或者,
确定每个预设缓存队列的剩余缓存空间大小,选取剩余缓存空间大小超过所述历史文件的大小的一个预设缓存队列,得到选定缓存队列。
3.如权利要求1所述的方法,其特征在于,将所述历史文件及其描述信息写入所述选定缓存队列中,具体包括:
将所述历史文件写入所述选定缓存队列的文件子队列中;
将所述历史文件的描述信息以内存对齐的格式写入所述选定缓存队列的索引子队列中。
4.如权利要求1所述的方法,其特征在于,定期将所述至少一个预设缓存队列中的历史文件及其描述信息写入磁盘中进行存档,具体包括:
监控设定周期是否到期;
若所述设定周期到期,检测每个预设缓存队列的剩余缓存空间大小;
将剩余缓存空间大小小于设定数值的预设缓存队列中的历史文件及其描述信息按照设定规则写入磁盘中进行存档。
5.如权利要求4所述的方法,其特征在于,将剩余缓存空间大小小于设定数值的预设缓存队列中的历史文件及其描述信息按照设定规则写入磁盘中进行存档,具体包括:
输出剩余缓存空间大小小于设定数值的预设缓存队列中的历史文件及其描述信息;
以每个历史文件的描述信息中的发送时间命名对应的历史文件及其描述信息;
将命名后的历史文件及其描述信息按照发送时间的先后顺序分别进行归档。
6.如权利要求1所述的方法,其特征在于,还包括:
接收用户发送的历史文件获取请求;
根据所述历史文件获取请求获取描述信息;
从高速缓存中查找与所述描述信息名称相同的历史文件;
若在所述高速缓存中查找到与所述描述信息名称相同的历史文件,将查找到的历史文件发送给所述用户;若在所述高速缓存中未查找到与所述描述信息名称相同的历史文件,根据所述描述信息从所述磁盘中查找与所述描述信息名称相同的历史文件,将查找到的历史文件发送给所述用户并保存在所述高速缓存中。
7.如权利要求1-6任一所述的方法,其特征在于,还包括:
统计已有时段内接收到的历史文件的大小及其增长率;
根据所述已有时段内接收到的历史文件的大小及其增长率确定在未来时段内所述磁盘的容量是否满足需求;
若在所述未来时段内所述磁盘的容量不满足需求,则对所述磁盘进行扩容。
8.一种文件读取方法,其特征在于,包括:
接收用户发送的历史文件获取请求;
根据所述历史文件获取请求获取描述信息;
从高速缓存中查找与所述描述信息名称相同的历史文件;
若在所述高速缓存中查找到与所述描述信息名称相同的历史文件,将查找到的历史文件发送给所述用户;若在所述高速缓存中未查找到与所述描述信息名称相同的历史文件,根据所述描述信息从所述磁盘中查找与所述描述信息名称相同的历史文件,将查找到的历史文件发送给所述用户并保存在所述高速缓存中。
9.一种文件存档装置,其特征在于,包括:
第一获取单元,用于获取待存档的历史文件及其描述信息;
选取单元,用于从至少一个预设缓存队列中选取一个预设缓存队列,得到选定缓存队列;
第一写入单元,用于将所述历史文件及其描述信息写入所述选定缓存队列中;以及,
第二写入单元,用于定期将所述至少一个预设缓存队列中的历史文件及其描述信息写入磁盘中进行存档。
10.如权利要求9所述的装置,其特征在于,所述选取单元,用于从至少一个预设缓存队列中选取一个预设缓存队列,得到选定缓存队列,具体用于:
若所述至少一个预设缓存队列形成环形队列,确定当前预设缓存队列的剩余缓存空间大小是否超过所述历史文件的大小,若所述当前预设缓存队列的剩余缓存空间大小超过所述历史文件的大小,则将所述当前预设缓存队列确定为选定缓存队列;若所述当前预设缓存队列的剩余缓存空间大小小于所述历史文件的大小,则将所述环形队列中位于所述当前预设缓存队列之后的预设缓存队列确定为选定缓存队列;或者,
确定每个预设缓存队列的剩余缓存空间大小,选取剩余缓存空间大小超过所述历史文件的大小的一个预设缓存队列,得到选定缓存队列。
11.如权利要求9所述的装置,其特征在于,所述第一写入单元,用于将所述历史文件及其描述信息写入所述选定缓存队列中,具体用于:
将所述历史文件写入所述选定缓存队列的文件子队列中;
将所述历史文件的描述信息以内存对齐的格式写入所述选定缓存队列的索引子队列中。
12.如权利要求9所述的装置,其特征在于,所述第二写入单元,用于定期将所述至少一个预设缓存队列中的历史文件及其描述信息写入磁盘中进行存档,具体用于:
监控设定周期是否到期;
若所述设定周期到期,检测每个预设缓存队列的剩余缓存空间大小;
将剩余缓存空间大小小于设定数值的预设缓存队列中的历史文件及其描述信息按照设定规则写入磁盘中进行存档。
13.如权利要求12所述的装置,其特征在于,所述第二写入单元,用于将剩余缓存空间大小小于设定数值的预设缓存队列中的历史文件及其描述信息按照设定规则写入磁盘中进行存档,具体用于:
输出剩余缓存空间大小小于设定数值的预设缓存队列中的历史文件及其描述信息;
以每个历史文件的描述信息中的发送时间命名对应的历史文件及其描述信息;
将命名后的历史文件及其描述信息按照发送时间的先后顺序分别进行归档。
14.如权利要求9所述的装置,其特征在于,还包括:
接收单元,用于接收用户发送的历史文件获取请求;
第二获取单元,用于根据所述历史文件获取请求获取描述信息;
查找单元,用于从高速缓存中查找与所述描述信息名称相同的历史文件;
发送单元,用于若在所述高速缓存中查找到与所述描述信息名称相同的历史文件,将查找到的历史文件发送给所述用户;若在所述高速缓存中未查找到与所述描述信息名称相同的历史文件,根据所述描述信息从所述磁盘中查找与所述描述信息名称相同的历史文件,将查找到的历史文件发送给所述用户并保存在所述高速缓存中。
15.如权利要求9-14任一所述的装置,其特征在于,还包括:
统计单元,用于统计已有时段内接收到的历史文件的大小及其增长率;
确定单元,用于根据所述已有时段内接收到的历史文件的大小及其增长率确定在未来时段内所述磁盘的容量是否满足需求;
扩容单元,用于若在所述未来时段内所述磁盘的容量不满足需求,则对所述磁盘进行扩容。
16.一种文件读取装置,其特征在于,包括:
接收单元,用于接收用户发送的历史文件获取请求;
获取单元,用于根据所述历史文件获取请求获取描述信息;
查找单元,用于从高速缓存中查找与所述描述信息名称相同的历史文件;
发送单元,用于若在所述高速缓存中查找到与所述描述信息名称相同的历史文件,将查找到的历史文件发送给所述用户;若在所述高速缓存中未查找到与所述描述信息名称相同的历史文件,根据所述描述信息从所述磁盘中查找与所述描述信息名称相同的历史文件,将查找到的历史文件发送给所述用户并保存在所述高速缓存中。
CN201510417166.8A 2015-07-15 2015-07-15 文件存档方法、文件读取方法及装置 Active CN106354724B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510417166.8A CN106354724B (zh) 2015-07-15 2015-07-15 文件存档方法、文件读取方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510417166.8A CN106354724B (zh) 2015-07-15 2015-07-15 文件存档方法、文件读取方法及装置

Publications (2)

Publication Number Publication Date
CN106354724A true CN106354724A (zh) 2017-01-25
CN106354724B CN106354724B (zh) 2019-07-16

Family

ID=57843018

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510417166.8A Active CN106354724B (zh) 2015-07-15 2015-07-15 文件存档方法、文件读取方法及装置

Country Status (1)

Country Link
CN (1) CN106354724B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109710782A (zh) * 2018-11-30 2019-05-03 武汉烽火众智智慧之星科技有限公司 卡口图片管理优化方法
CN111198856A (zh) * 2019-12-31 2020-05-26 北京旷视科技有限公司 文件管理方法、装置、计算机设备和存储介质
CN112543237A (zh) * 2020-11-27 2021-03-23 互联网域名系统北京市工程研究中心有限公司 无锁dns缓存方法和dns服务器
CN115390752A (zh) * 2022-08-10 2022-11-25 中科豪联(杭州)技术有限公司 一种多磁盘的缓存文件管理方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101005372A (zh) * 2006-01-19 2007-07-25 思华科技(上海)有限公司 集群式缓存服务系统及其实现方法
CN102110105A (zh) * 2009-12-23 2011-06-29 新奥特(北京)视频技术有限公司 一种图文包装系统读取文件夹的方法和装置
CN103678026A (zh) * 2012-09-18 2014-03-26 杭州海康威视系统技术有限公司 可修复的视频监控数据存储和修复方法及其装置
CN104536704A (zh) * 2015-01-12 2015-04-22 浪潮(北京)电子信息产业有限公司 一种双控制器通信方法、发送端控制器和接收端控制器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101005372A (zh) * 2006-01-19 2007-07-25 思华科技(上海)有限公司 集群式缓存服务系统及其实现方法
CN102110105A (zh) * 2009-12-23 2011-06-29 新奥特(北京)视频技术有限公司 一种图文包装系统读取文件夹的方法和装置
CN103678026A (zh) * 2012-09-18 2014-03-26 杭州海康威视系统技术有限公司 可修复的视频监控数据存储和修复方法及其装置
CN104536704A (zh) * 2015-01-12 2015-04-22 浪潮(北京)电子信息产业有限公司 一种双控制器通信方法、发送端控制器和接收端控制器

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109710782A (zh) * 2018-11-30 2019-05-03 武汉烽火众智智慧之星科技有限公司 卡口图片管理优化方法
CN109710782B (zh) * 2018-11-30 2023-11-28 武汉烽火众智智慧之星科技有限公司 卡口图片管理优化方法
CN111198856A (zh) * 2019-12-31 2020-05-26 北京旷视科技有限公司 文件管理方法、装置、计算机设备和存储介质
CN111198856B (zh) * 2019-12-31 2023-12-29 北京旷视科技有限公司 文件管理方法、装置、计算机设备和存储介质
CN112543237A (zh) * 2020-11-27 2021-03-23 互联网域名系统北京市工程研究中心有限公司 无锁dns缓存方法和dns服务器
CN112543237B (zh) * 2020-11-27 2023-07-11 互联网域名系统北京市工程研究中心有限公司 无锁dns缓存方法和dns服务器
CN115390752A (zh) * 2022-08-10 2022-11-25 中科豪联(杭州)技术有限公司 一种多磁盘的缓存文件管理方法

Also Published As

Publication number Publication date
CN106354724B (zh) 2019-07-16

Similar Documents

Publication Publication Date Title
US8341118B2 (en) Method and system for dynamically replicating data within a distributed storage system
CN100596353C (zh) 提供日志服务的方法及系统
US10509739B1 (en) Optimized read IO for mix read/write scenario by chunking write IOs
CN102387220A (zh) 一种基于云存储的离线下载的方法及其系统
CN102307234A (zh) 基于移动终端的资源检索方法
CN102111438B (zh) 参数调整方法、装置和分布式计算平台系统
US11080207B2 (en) Caching framework for big-data engines in the cloud
CN106775446A (zh) 基于固态硬盘加速的分布式文件系统小文件访问方法
US20200401562A1 (en) Parallel processing of filtered transaction logs
CN106354724A (zh) 文件存档方法、文件读取方法及装置
US10142195B1 (en) Partitioned performance tracking core resource consumption independently
CN109240607B (zh) 一种文件读取方法和装置
CN103198097A (zh) 一种基于分布式文件系统的海量地学数据并行处理方法
CN103067479A (zh) 一种基于文件冷热的网盘同步方法及系统
CN103685517A (zh) 一种基于业务类别特征的存储分级调度方法及系统
CN104021137B (zh) 一种基于目录授权的客户端本地开闭文件的方法及系统
US20090327303A1 (en) Intelligent allocation of file server resources
CN102325098B (zh) 群信息获取方法和系统
US10592123B1 (en) Policy driven IO scheduler to improve write IO performance in hybrid storage systems
CN101483668A (zh) 热点数据的网络存储和访问方法、设备及系统
US9774488B2 (en) Apparatus and method for a thin form-factor technology for use in handheld smart phone and tablet devices
CN112540954B (zh) 以目录单位的多级存储构建与在线迁移方法
CN104407987B (zh) 一种分级存储方法
CN111309674A (zh) 由移动计算设备进行文件管理的系统和方法
CN106528667A (zh) 读写分离的低功耗海量数据全文检索系统框架

Legal Events

Date Code Title Description
C06 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