文件存储方法及装置.pdf

上传人:1520****312 文档编号:1300601 上传时间:2018-04-14 格式:PDF 页数:16 大小:968.68KB
返回 下载 相关 举报
摘要
申请专利号:

CN201710063006.7

申请日:

2017.01.24

公开号:

CN106897391A

公开日:

2017.06.27

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效 IPC(主分类):G06F 17/30申请日:20170124|||公开

IPC分类号:

G06F17/30

主分类号:

G06F17/30

申请人:

北京百悟科技有限公司

发明人:

丁伟; 庞传普; 陈连增; 柳春凤

地址:

100102 北京市朝阳区阜通东大街融科望京中心B座9层

优先权:

专利代理机构:

北京康信知识产权代理有限责任公司 11240

代理人:

韩建伟;张永明

PDF下载: PDF下载
内容摘要

本发明公开了一种文件存储方法及装置。其中,该方法包括:从缓存中获取预定数量的数据;将获取到的所述数据根据第一文件存储结构写入第一文件中;将所述第一文件根据所述第二文件存储结构写入到第二文件中,其中,所述第二文件能够写入多个所述第一文件;将所述第二文件进行存储。本发明解决了相关技术中文件存储的性能较低的技术问题。

权利要求书

1.一种文件存储方法,其特征在于,包括:
从缓存中获取预定数量的数据;
将获取到的所述数据根据第一文件存储结构写入第一文件中;
将所述第一文件根据第二文件存储结构写入到第二文件中,其中,所述第二文件能够
写入多个所述第一文件;
将所述第二文件进行存储。
2.根据权利要求1所述的方法,其特征在于,将所述第一文件根据所述第二文件存储结
构写入到所述第二文件中包括:
获取所述第二文件存储结构中的写入位置数值,其中,所述写入位置数值用于所述第
二文件中能够写入所述第一文件的起始位置;
根据所述第一文件的大小从所述写入位置数值锁定用于存储所述第一文件的数据长
度区域;
在锁定成功后,将所述第一文件写入到所述数据长度区域;
在写入成功后,进行锁定释放并且更新所述写入位置数值。
3.根据权利要求2所述的方法,其特征在于,还包括:
在锁定失败之后,等待预定时长后,重新根据所述第一文件的大小从所述写入位置数
值锁定用于存储所述第一文件的数据长度区域。
4.根据权利要求1至3中任一项所述的方法,其特征在于,将所述第二文件进行存储之
后,所述方法还包括:
获取所述第二文件;
根据所述第二文件存储结构中的读取位置数值读取所述第一文件存储结构,其中,所
述第一文件存储中结构中至少包括所述第一文件的文件长度,所述第二文件包括多个所述
第一文件;
根据所述第一文件的文件长度从所述第二文件中读取所述第一文件。
5.根据权利要求4所述的方法,其特征在于,
在根据所述第二文件存储结构中的读取位置数值读取所述第一文件存储结构之前,所
述方法还包括:根据所述读取位置数值对所述第二文件进行锁定;
在从所述第二文件中读取所述第一文件成功之后,所述方法还包括:进行锁定释放。
6.根据权利要求4所述的方法,其特征在于,在从所述第二文件中读取所述第一文件之
后,所述方法还包括:
根据所述第一文件的文件长度更新所述读取位置数值。
7.根据权利要求4所述的方法,其特征在于,在从所述第二文件中读取所述第一文件之
后,所述方法还包括:
修改所述第二文件中的所述第一文件存储结构中的删除标记,其中,修改后的所述删
除标记用于指示所述第一文件已经被读取。
8.根据权利要求1至3中任一项所述的方法,其特征在于,将获取到的所述数据写入所
述第一文件中包括:
将所述数据进行序列化;
将序列化后的数据进行压缩;
将压缩后的数据写入所述第一文件中。
9.一种文件存储装置,其特征在于,包括:
第一获取单元,用于从缓存中获取预定数量的数据;
第一写入单元,用于将获取到的所述数据根据第一文件存储结构写入第一文件中;
第二写入单元,用于将所述第一文件根据第二文件存储结构写入到第二文件中,其中,
所述第二文件能够写入多个所述第一文件;
存储单元,用于将所述第二文件进行存储。
10.根据权利要求9所述的装置,其特征在于,所述第二写入单元包括:
获取模块,用于获取所述第二文件存储结构中的写入位置数值,其中,所述写入位置数
值用于所述第二文件中能够写入所述第一文件的起始位置;
第一锁定模块,用于根据所述第一文件的大小从所述写入位置数值锁定用于存储所述
第一文件的数据长度区域;
第一写入模块,用于在锁定成功后,将所述第一文件写入到所述数据长度区域;
更新模块,用于在写入成功后,进行锁定释放并且更新所述写入位置数值。
11.根据权利要求10所述的装置,其特征在于,还包括:
锁定单元,用于在锁定失败之后,等待预定时长后,重新根据所述第一文件的大小从所
述写入位置数值锁定用于存储所述第一文件的数据长度区域。
12.根据权利要求9至11中任一项所述的装置,其特征在于,所述装置还包括:
第二获取单元,用于将所述第二文件进行存储之后,获取所述第二文件;
第一读取单元,用于将所述第二文件进行存储之后,根据所述第二文件存储结构中的
读取位置数值读取所述第一文件存储结构,其中,所述第一文件存储中结构中至少包括所
述第一文件的文件长度,所述第二文件包括多个所述第一文件;
第二读取单元,用于根据所述第一文件的文件长度从所述第二文件中读取所述第一文
件。
13.根据权利要求12所述的装置,其特征在于,
所述装置还包括:
第二锁定模块,用于在根据所述第二文件存储结构中的读取位置数值读取所述第一文
件存储结构之前,根据所述读取位置数值对所述第二文件进行锁定;
释放模块,用于在从所述第二文件中读取所述第一文件成功之后,进行锁定释放。
14.根据权利要求12所述的装置,其特征在于,所述装置还包括:
更新单元,用于在从所述第二文件中读取所述第一文件之后,根据所述第一文件的文
件长度更新所述读取位置数值。
15.根据权利要求12所述的装置,其特征在于,所述装置还包括:
修改单元,用于在从所述第二文件中读取所述第一文件之后,修改所述第二文件中的
所述第一文件存储结构中的删除标记,其中,修改后的所述删除标记用于指示所述第一文
件已经被读取。
16.根据权利要求9至11中任一项所述的装置,其特征在于,所述第一写入单元包括:
序列化模块,用于将所述数据进行序列化;
压缩模块,用于将序列化后的数据进行压缩;
第二写入模块,用于将压缩后的数据写入所述第一文件中。

说明书

文件存储方法及装置

技术领域

本发明涉及数据处理领域,具体而言,涉及一种文件存储方法及装置。

背景技术

随着短信业务的快速发展,公司业务发展也从单机模式发展为集群模式,用于提
高业务接口速度,然而采用上述方式导致数据库瓶颈越来越明显,进而又引入了高速缓存
机制缓解数据库的压力。可是由于业务存在短时峰值的问题会引起高速读写进而导致缓存
持久化频繁,对业务峰值时的处理效率产生很大影响,如果采用关闭持久化的方式又可能
会引起故障数据的恢复问题。

针对上述问题,相关技术中采用将缓存中的数据序列化为小文件的方式进行数据
缓存和故障数据恢复,并且在接口程序设定数量阈值及时间阈值,在缓存中的数据的任何
一项达到阈值时,将缓存中的内容提取并序列化后存入一个小文件中,然后由其他线程根
据目录中的文件记录,将文件数据的异步处理入库,通过该方式可以成功的将数据库的访
问压力降低三至四个数量级,但是会产生是文件系统的索引文件暴增的问题。在实际工作
中,也曾出现过系统的索引文件耗尽的情况,从而导致了文件缓存目录的访问时间开销过
大。对于该问题,公司采取缩短数据备份删除任务的周期,但是有时数据备份删除任务耗时
较长,而且硬盘故障率也一直居高不下。

针对上述相关技术中文件存储的性能较低的问题,目前尚未提出有效的解决方
案。

发明内容

本发明实施例提供了一种文件存储方法及装置,以至少解决相关技术中文件存储
的性能较低的技术问题。

根据本发明实施例的一个方面,提供了一种文件存储方法,包括:从缓存中获取预
定数量的数据;将获取到的所述数据根据第一文件存储结构写入第一文件中;将所述第一
文件根据所述第二文件存储结构写入到第二文件中,其中,所述第二文件能够写入多个所
述第一文件;将所述第二文件进行存储。

进一步地,将所述第一文件根据所述第二文件存储结构写入到所述第二文件中包
括:获取所述第二文件存储结构中的写入位置数值,其中,所述写入位置数值用于所述第二
文件中能够写入所述第一文件的起始位置;根据所述第一文件的大小从所述写入位置数值
锁定用于存储所述第一文件的数据长度区域;在锁定成功后,将所述第一文件写入到所述
数据长度区域;在写入成功后,进行锁定释放并且更新所述写入位置数值。

进一步地,还包括:在锁定失败之后,等待预定时长后,重新根据所述第一文件的
大小从所述写入位置数值锁定用于存储所述第一文件的数据长度区域。

进一步地,将所述第二文件进行存储之后,所述方法还包括:获取所述第二文件;
根据所述第二文件存储结构中的读取位置数值读取所述第一文件存储结构,其中,所述第
一文件存储中结构中至少包括所述第一文件的文件长度,所述第二文件包括多个所述第一
文件;根据所述第一文件的文件长度从所述第二文件中读取所述第一文件。

进一步地,在根据所述第二文件存储结构中的读取位置数值读取所述第一文件存
储结构之前,所述方法还包括:根据所述读取位置数值对所述第二文件进行锁定;在从所述
第二文件中读取所述第一文件成功之后,所述方法还包括:进行锁定释放。

进一步地,在从所述第二文件中读取所述第一文件之后,所述方法还包括:根据所
述第一文件的文件长度更新所述读取位置数值。

进一步地,在从所述第二文件中读取所述第一文件之后,所述方法还包括:修改所
述第二文件中的所述第一文件存储结构中的删除标记,其中,修改后的所述删除标记用于
指示所述第一文件已经被读取。

进一步地,将获取到的所述数据写入所述第一文件中包括:将所述数据进行序列
化;将序列化后的数据进行压缩;将压缩后的数据写入所述第一文件中。

根据本发明实施例的另一方面,还提供了一种文件存储装置,包括:第一获取单
元,用于从缓存中获取预定数量的数据;第一写入单元,用于将获取到的所述数据根据第一
文件存储结构写入第一文件中;第二写入单元,用于将所述第一文件根据所述第二文件存
储结构写入到第二文件中,其中,所述第二文件能够写入多个所述第一文件;存储单元,用
于将所述第二文件进行存储。

进一步地,所述第二写入单元包括:获取模块,用于获取所述第二文件存储结构中
的写入位置数值,其中,所述写入位置数值用于所述第二文件中能够写入所述第一文件的
起始位置;第一锁定模块,用于根据所述第一文件的大小从所述写入位置数值锁定用于存
储所述第一文件的数据长度区域;第一写入模块,用于在锁定成功后,将所述第一文件写入
到所述数据长度区域;更新模块,用于在写入成功后,进行锁定释放并且更新所述写入位置
数值。

进一步地,还包括:锁定单元,用于在锁定失败之后,等待预定时长后,重新根据所
述第一文件的大小从所述写入位置数值锁定用于存储所述第一文件的数据长度区域。

进一步地,所述装置还包括:第二获取单元,用于将所述第二文件进行存储之后,
获取所述第二文件;第一读取单元,用于将所述第二文件进行存储之后,根据所述第二文件
存储结构中的读取位置数值读取所述第一文件存储结构,其中,所述第一文件存储中结构
中至少包括所述第一文件的文件长度,所述第二文件包括多个所述第一文件;第二读取单
元,用于根据所述第一文件的文件长度从所述第二文件中读取所述第一文件。

进一步地,所述装置还包括:第二锁定模块,用于在根据所述第二文件存储结构中
的读取位置数值读取所述第一文件存储结构之前,根据所述读取位置数值对所述第二文件
进行锁定;释放模块,用于在从所述第二文件中读取所述第一文件成功之后,进行锁定释
放。

进一步地,所述装置还包括:更新单元,用于在从所述第二文件中读取所述第一文
件之后,根据所述第一文件的文件长度更新所述读取位置数值。

进一步地,所述装置还包括:修改单元,用于在从所述第二文件中读取所述第一文
件之后,修改所述第二文件中的所述第一文件存储结构中的删除标记,其中,修改后的所述
删除标记用于指示所述第一文件已经被读取。

进一步地,所述第一写入单元包括:序列化模块,用于将所述数据进行序列化;压
缩模块,用于将序列化后的数据进行压缩;第二写入模块,用于将压缩后的数据写入所述第
一文件中。

在本发明实施例中,从缓存中获取预定数量的数据,然后将获取到的数据根据第
一文件存储结构写入第一文件中,并将第一文件根据第二文件存储结构写入到第二文件
中,其中,第二文件能够写入多个第一文件,在将第二文件进行存储。通过本发明实施例,解
决了相关技术中文件存储的性能较低的技术问题,从而实现了提高文件存储的性能的技术
效果。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发
明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的文件存储方法的流程图;

图2是根据本发明实施例的小文件存储结构的示意图;

图3是根据本发明实施例的大文件存储结构的示意图;

图4是根据本发明实施例的文件写入的流程图;

图5是根据本发明实施例的文件读取的流程图;

图6是根据本发明实施例的文件数据恢复的流程图;以及

图7是根据本发明实施例的文件存储装置的示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的
附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是
本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人
员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范
围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第
二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用
的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或
描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆
盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于
清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品
或设备固有的其它步骤或单元。

实施例1

根据本发明实施例,提供了一种文件存储方法的方法实施例,需要说明的是,在附
图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽
然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出
或描述的步骤。

在本发明实施中,由于第一文件的文件存储量要小于第二文件的文件存储量,所
以在本发明实施例中第一文件又称为小文件,第二文件又称为大文件。

在本实施例中,提供了一种文件存储方法,图1是根据本发明实施例的文件存储方
法的流程图,如图1所示,该方法可以包括如下步骤:

步骤S102,从缓存中获取预定数量的数据。

步骤S104,将获取到的数据根据第一文件存储结构写入第一文件中。

步骤S106,将第一文件根据第二文件存储结构写入到第二文件中,其中,第二文件
能够写入多个第一文件。

步骤S108,将第二文件进行存储。

通过上述步骤,从缓存中获取预定数量的数据,然后将获取到的数据根据第一文
件存储结构(即下述的小文件存储结构)写入第一文件(即下述的小文件)中,并将小文件根
据第二文件存储结构(即下述的大文件存储结构)写入到第二文件(即下述的大文件)中,其
中,大文件能够写入多个小文件,在将大文件进行存储。通过本发明实施例,解决了相关技
术中文件存储的性能较低的技术问题,从而实现了提高文件存储的性能的技术效果。

在步骤S102提供的技术方案中,从内存缓存中获取指定量的数据。

在步骤S104提供的技术方案中,首先从缓存中根据阈值的触发获取缓存数据,然
后需要有创建小文件存储结构,图2是根据本发明实施例的小文件存储结构的示意图,如图
2所示包括:文件头和文件体,其中,文件头包括文件长度、文件类型、是否删除标记以及数
据校验位;文件体中包括数据区。再按照小文件存储结构的顺序依次写入指定位数的文件
长度数据,文件类型数据,从而实现将获取到的数据根据第一文件存储结构写入第一文件
中的效果。

在步骤S106提供的技术方案中,根据大文件存储结构将小文件写入大文件指定存
储区域中,图3是根据本发明实施例的大文件存储结构的示意图,如图3所示同样包括文件
头和文件体两部分,其中,文件头包括文件长度、写入位置、读取位置以及文件归结数,文件
体包括n个小文件和空白区,n为正整数。从而实现了将小文件根据大文件存储结构写入到
大文件中,其中,如图3所示大文件能够写入多个小文件。最后通过步骤S108,将大文件进行
存储。

下面结合图4对本发明一个可选的实施方式进行说明,图4是根据本发明实施例的
文件写入的流程图,该方法可以包括如下步骤:

步骤S401,从内存中加载数据。

步骤S402,利用序列化技术对获取到的数据进行序列化。

步骤S403,利用压缩技术对获取到的数据进行压缩。

步骤S404,根据小文件存储结构进行数据填充。

步骤S405,判断是否存在可写入的大文件;在不存在可写入的大文件的情况下,执
行步骤S406,否则,执行步骤S407。

步骤S406,根据大文件存储结构创建大文件。

步骤S407,获取大文件中写入区域的文件锁。

步骤S408,将小文件数据写入到大文件的指定位置。

步骤S409,更新大文件的归结数及写入位置。

步骤S410,释放大文件中写入位置文件锁。

在上述步骤中,首先执行步骤S401,从内存中加载数据;再通过步骤S402利用序列
化技术,将数据转换成字节数组;执行步骤S403,利用压缩技术,选择合适的压缩算法对序
列化后的数据进行压缩,降低存储开销;接下来执行步骤S404,创建小文件存储结构,按照
图2所示的顺序依次写入指定位数的文件长度数据,文件类型数据,根据数据压缩后的结果
计算md5校验码数据和压缩后的数据,根据小文件存储结构对小文件进行数据填充,在此步
骤中需要获取大文件存储结构中的写入位置数值,其中,写入位置数值用于大文件中能够
写入小文件的起始位置;通过步骤S405,判断是否存在可写入的大文件;在不存在可写入的
大文件的情况下,执行步骤S406,根据大文件存储结构创建大文件,然后执行步骤S407;在
存在可写入的大文件的情况下,执行步骤S407,获取大文件中写入区域的文件锁,利用文件
锁定位置向后锁定小文件存储的数据长度区域,在锁定失败之后,等待预定时长(例如30
秒)后,重新根据小文件的大小从写入位置数值锁定用于存储小的数据长度区域;锁定成功
后重新读取文件写入位置数值,写入数据成功后,更新大文件归结数据值和文件写入数据
位置值后释放文件锁定;然后执行步骤S408,将小文件数据写入到大文件的指定位置;再执
行步骤S409,更新大文件的归结数及写入位置;最后步骤S410释放大文件中写入位置文件
锁。

下面结合图5对本发明一个可选的实施方式进行说明,图5是根据本发明实施例的
文件读取的流程图,该方法可以包括如下步骤:

步骤S501,尝试获取大文件读取区域文件锁。

步骤S502,锁定获取的大文件读取区域的文件锁,获得大文件读取位置。

步骤S503,从锁定位置读取小文件的文件头数据。

步骤S504,根据文件头数据确认小文件的文件数据信息。

步骤S505,根据文件头数据确认小文件是否删除;在没有删除的情况下执行步骤,
执行步骤S506,否则,执行步骤S507。

步骤S506,文件体重新加载指定长度数据。

步骤S507,返回错误提示。

步骤S508,判断使用校验位数据对数据进行校验的结果是否一致;在校验结果一
致的情况下,执行步骤S509,反之,执行步骤S507;

步骤S509,解压缩。

步骤S510,利用反向序列化技术将解压缩后的数据还原成原数据。

在上述步骤中,将大文件进行存储之后,可以获取大文件;根据大文件存储结构中
的读取位置数值读取小文件存储结构,其中,小文件存储中结构中至少包括小文件的文件
长度,大文件包括多个小文件,可以根据小文件的文件长度从大文件中读取小文件。

在根据大文件存储结构中的读取位置数值读取小文件存储结构之前,需要执行步
骤S501,根据读取位置数值对大文件进行锁定,尝试获取大文件读取区域文件锁,用于定位
读取位置;在步骤S502中,尝试锁定大文件读取位置;步骤S504,从锁定位置读取小文件的
文件头数据,根据读取的读取位置数据,从指定位置开始读取小文件结构数据,读取小文件
的文件长度、文件类型、校验码及是否删除数据标记,然后从数据区读取数据,在从大文件
中读取小文件成功之后,还需要对进行文件锁定进行释放操作;在步骤S505中,根据文件头
数据确认小文件是否删除,在没有删除的情况下通过执行步骤S506,对文件体重新加载指
定长度数据,也即根据小文件的文件长度更新读取位置数值;否则,执行步骤S507,更改小
文件数据删除位标志为删除状态,返回错误提示;在步骤S508中,判断使用校验位数据对数
据进行校验的结果是否一致,在校验结果一致的情况下,执行步骤S509,读取的数据区数据
域校验码进行比较判断,保证数据完整性,通过步骤S509进行解压缩,并通过步骤S510进行
反序列化恢复成原数据。

在一个可选的实施例中,从大文件中读取小文件之后,还需要修改大文件中的小
文件存储结构中的删除标记,其中,修改后的删除标记用于指示小文件已经被读取。

下面结合图6对本发明一个可选的实施方式进行说明,图6是根据本发明实施例的
文件数据恢复的流程图,该方法可以包括如下步骤:

步骤S601,解析大文件的文件头。

步骤S602,获取小文件在大文件存储区域的位置。

步骤S603,尝试读取小文件。

步骤S604,判断是否到大文件的文件体结尾。在到大文件的文件体结尾的情况下,
执行步骤S605;反之,执行步骤S606。

步骤S605,小文件数据恢复完成。

步骤S606,按照小文件存储结构读取小文件信息并进行解压与反序列化操作。

步骤S607,存储解析后的原始数据。

在上述步骤中,通过解析大文件的文件头,实现根据大文件定位数据结构定位数
据存储区的小文件起始位置,解析数据结构;如图3所示大文件存储结构包括文件头(例如
文件长度、文件归结数、写入位置及文件读取位)和文件体;在步骤S602中,获取小文件在大
文件中存储区域的位置,如图2所示小文件存储结构也包括文件头(例如文件长度、文件类
型、是否删除标记以及数据校验位)和文件体;在步骤S603中,根据大文件存储结构定位数
据存储区的小文件起始位置,尝试读取小文件,在步骤S604中,判断是否到大文件的文件体
结尾;在到大文件的文件体结尾的情况下,执行步骤S605,也即小文件数据恢复完成;反之,
执行步骤S606,按照小文件存储结构读取小文件信息并进行解压与反序列化操作;在步骤
S607中,根据小文件存储结构顺序解析校验小文件,按文件存储顺序依次恢复,存储解析后
的原始数据。

在本发明中,首先根据业务需求定义大文件存储结构,然后定义小文件存储结构;
根据小文件定义结构顺序解析校验小文件,按文件存储顺序依次恢复存储数据。从缓存中
根据阈值触发获取缓存数据;根据小文件存储结构对缓存数据进行压缩封装;根据大文件
存储结构将小文件写入大文件指定存储区域,同时更新大文件相关缓存信息;逻辑删除更
改指定小文件逻辑删除位数值即可;数据读取从大文件指定存储结构中获取等待读取的下
一小文件位置,从大文件存储的该位置读取小文件数据,按小文件结构进行数据封装,校验
删除位,校验验证位数据是否一致,决定是否返回实际缓存数据;数据恢复从大文件存储区
进行顺序读取小文件存储结构,进行数据恢复,如果某个缓存文件数据错误不影响后续文
件读取;数据转储备份,直接进行大文件的压缩转储。

本实施例中的基于文件的可恢复的数据缓存方法降低了文件索引开销和目录访
问开销,实现了目录访问速度从分钟为单位的访问变成毫秒级访问的效果;同时在运维级
别通过大文件方式能够有效降低数据存储备份所需时间,例如采用本发明能够将同样的处
理方式从4个小时压缩到10分钟;另外在硬件级别上,也使得硬盘故障率直线下降,从而提
高了客户体验。

实施例2

本发明实施例还提供了一种文件存储装置,需要说明的是,本发明实施例的文件
存储装置可以用于执行本发明实施例所提供的用于文件存储方法。以下对本发明实施例提
供的文件存储装置进行介绍。

图7是根据本发明实施例的一种文件存储装置的示意图,如图7所示,该装置可以
包括:第一获取单元71、第一写入单元73、第二写入单元75以及存储单元77。下面对该装置
进行说明。

第一获取单元71,用于从缓存中获取预定数量的数据。

第一写入单元73,用于将获取到的数据根据第一文件存储结构写入第一文件中。

第二写入单元75,用于将第一文件根据第二文件存储结构写入到第二文件中,其
中,第二文件能够写入多个第一文件。

存储单元77,用于将第二文件进行存储。

在本发明实施例的一种文件存储装置中,通过第一获取单元71,用于从缓存中获
取预定数量的数据;第一写入单元73,用于将获取到的数据根据第一文件存储结构写入第
一文件中;第二写入单元75,用于将第一文件根据第二文件存储结构写入到第二文件中,其
中,第二文件能够写入多个第一文件;存储单元77,用于将第二文件进行存储,解决了相关
技术中文件存储的性能较低的技术问题,从而实现了提高文件存储的性能的技术效果。

可选地,在本发明实施例的一种文件存储装置中,第二写入单元75包括:获取模
块,用于获取第二文件存储结构中的写入位置数值,其中,写入位置数值用于第二文件中能
够写入第一文件的起始位置;第一锁定模块,用于根据第一文件的大小从写入位置数值锁
定用于存储第一文件的数据长度区域;第一写入模块,用于在锁定成功后,将第一文件写入
到数据长度区域;更新模块,用于在写入成功后,进行锁定释放并且更新写入位置数值。

可选地,在本发明实施例的一种文件存储装置中,还包括:锁定单元,用于在锁定
失败之后,等待预定时长后,重新根据第一文件的大小从写入位置数值锁定用于存储第一
文件的数据长度区域。

可选地,在本发明实施例的一种文件存储装置中,装置还包括:第二获取单元,用
于将第二文件进行存储之后,获取第二文件;第一读取单元,用于将第二文件进行存储之
后,根据第二文件存储结构中的读取位置数值读取第一文件存储结构,其中,第一文件存储
中结构中至少包括第一文件的文件长度,第二文件包括多个第一文件;第二读取单元,用于
根据第一文件的文件长度从第二文件中读取第一文件。

可选地,在本发明实施例的一种文件存储装置中,装置还包括:第二锁定模块,用
于在根据第二文件存储结构中的读取位置数值读取第一文件存储结构之前,根据读取位置
数值对第二文件进行锁定;释放模块,用于在从第二文件中读取第一文件成功之后,进行锁
定释放。

可选地,在本发明实施例的一种文件存储装置中,装置还包括:更新单元,用于在
从第二文件中读取第一文件之后,根据第一文件的文件长度更新读取位置数值。

可选地,在本发明实施例的一种文件存储装置中,装置还包括:修改单元,用于在
从第二文件中读取第一文件之后,修改第二文件中的第一文件存储结构中的删除标记,其
中,修改后的删除标记用于指示第一文件已经被读取。

可选地,在本发明实施例的一种文件存储装置中,第一写入单元73包括:序列化模
块,用于将数据进行序列化;压缩模块,用于将序列化后的数据进行压缩;第二写入模块,用
于将压缩后的数据写入第一文件中。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有
详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的
方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为
一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或
者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互
之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连
接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显
示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个
单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以
是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单
元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用
时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上
或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式
体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机
设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或
部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存
储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的
介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人
员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应
视为本发明的保护范围。

文件存储方法及装置.pdf_第1页
第1页 / 共16页
文件存储方法及装置.pdf_第2页
第2页 / 共16页
文件存储方法及装置.pdf_第3页
第3页 / 共16页
点击查看更多>>
资源描述

《文件存储方法及装置.pdf》由会员分享,可在线阅读,更多相关《文件存储方法及装置.pdf(16页珍藏版)》请在专利查询网上搜索。

本发明公开了一种文件存储方法及装置。其中,该方法包括:从缓存中获取预定数量的数据;将获取到的所述数据根据第一文件存储结构写入第一文件中;将所述第一文件根据所述第二文件存储结构写入到第二文件中,其中,所述第二文件能够写入多个所述第一文件;将所述第二文件进行存储。本发明解决了相关技术中文件存储的性能较低的技术问题。 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1