数据存储方法及装置的制作方法

文档序号:6374793阅读:115来源:国知局
专利名称:数据存储方法及装置的制作方法
技术领域
本发明涉及数据处理技术领域,更具体地说,涉及ー种数据存储方法及装置。
背景技术
目前广泛使用的文件系统,如ext3和FAT32,处理流应用时,要求视频画面或音频数据必须以ー种可预见的、不间断的方式传输给硬盘、显示器和扬声器。但当视频画面或音频数据的数据量较大时,由于硬盘的处理速度要远小于CPU的处理速度,使得文件系统无法满足流任务的要求。而这些有将会导致画面停顿、硬盘过度运转和运行温度上升问题的出现,同时文件系统的服务质量开始下降。并且,随着时间的推移,文件系统逐渐老化,每次处理流应用时会产生数据碎片,过多的数据碎片又导致磁盘性能缓慢下降,甚至出现硬件故障。
为解决上述两方面的问题,现有一般放大文件系统中的文件块,通过减少多级指针的角度优化,使数据的能够连续存取,且能很好的较少数据碎片;或者,采用JFS日志文件系统;然而,无论采用放大文件系统中的文件块的方式,还是选用JFS日志文件系统,均存有处理过程复杂的问题。

发明内容
有鉴于此,本发明提供ー种数据存储方法及装置,以实现快速处理流应用。现提出的方案如下ー种数据存储方法,包括当接收到数据包后,确定与所述数据包相应的存储块组,所述存储块组内至少包括ー个存储块,所述存储块为划分存储设备的存储空间形成;判断所述存储块组中是否存有正在写入的存储块;若有,则将所述数据包写入所述正在写入的存储块;若无,判断所述存储块组中是否有空闲存储块;若有,则将所述数据包写入所述空闲存储块,且将所述存储块组中上一次写入数据包的存储块的序列号和所述上一次写入数据包的存储块内的数据包的数量之和作为所述空闲存储块的序列号。优选地,所述确定与所述数据包相应的存储块组包括获取所述存储块的索引号;确定所述索引号与所述数据包相应的存储块为存储块组中的存储块。优选地,还包括当判断所述存储组中没有空闲存储块时,确定所述存储块组中存储的数据包的存储时间;判断所述存储时间是否满足预设存储时间要求,当不满足预设存储时间要求吋,查找所述存储设备是否还有空闲存储块;当所述存储设备有空闲存储块时,将所述数据包写入所述存储设备的空闲存储块,且将所述存储块组中末次写入数据包的存储块的序列号和所述末次写入数据包的存储块内的数据包的数量之和作为所述存储设备的空闲存储块的序列号。优选地,还包括当所述存储时间满足预设存储时间要求时,判断所述数据包中的数据是否为循环数据;若是,则查找所述存储块组内的最早存储数据包的存储块;清空所述最早存储数据包的存储块中的数据包;将所述数据包写入所述清空后的存储块,且将所述存储块组中末次写入数据包的存储块的序列号和所述末次写入数据包的存储块内的数据包的数量之和作为所述清空后的存储块的序列号。优选地,还包括当所述存储时间满足预设存储时间要求时,判断所述数据包中的数据是否为循环数据;
若是,则按照数据包存储时间的先后顺序查找所述存储块组内的存储块;清空可查找到、且存储的数据包的时间较早的所述存储组内的存储块内的数据包;将所述数据包写入所述清空后的存储块,且将所述存储块组中末次写入数据包的存储块的序列号和所述末次写入数据包的存储块内的数据包的数量之和作为所述清空后的存储块的序列号。优选地,将所述数据包写入所述存储设备的空闲存储块后,还包括为所述存储设备的空闲存储块设置与所述数据包相对应的索引号,并保存。优选地,将所述数据包写入后,还包括保存所述数据包写入时间。ー种数据存储装置,包括存储块组确定単元,用于当接收到数据包后,确定与所述数据包相应的存储块组,所述存储块组内至少包括ー个存储块,所述存储块为划分存储设备的存储空间形成;第一判断単元,用于判断所述存储块组中是否存有正在写入的存储块;第一数据包写入単元,用于当所述第一判断単元判断所述存储块组中存有正在写入的存储块时,将所述数据包写入所述正在写入的存储块;第二判断単元,用于当所述第一判断単元判断所述存储块组中没有存有正在写入的存储块时,判断所述存储块组中是否有空闲存储块;第二数据包写入単元,用于当所述第二判断単元判断所述存储块组中有空闲存储块时,将所述数据包写入所述空闲存储块;第一序列号变更单元,用于当所述第二数据包写入单元将所述数据包写入所述空闲存储块后,将所述存储块组中上一次写入数据包的存储块的序列号和所述上一次写入数据包的存储块内的数据包的数量之和作为所述空闲存储块的序列号。优选地,还包括数据包存储时间确定单元,用于当所述第二判断単元判断所述存储组中没有空闲存储块时,确定所述存储块组中存储的数据包的存储时间;第三判断単元,用于判断所述存储时间是否满足预设存储时间要求;第一查找单元,用于当所述第三判断単元判断所述存储时间不满足预设存储时间要求时,查找所述存储设备是否还有空闲存储块;
第三数据包写入単元,用于当所述查找単元查找到所述存储设备有空闲存储块时,将所述数据包写入所述存储设备的空闲存储块;第二序列号变更单元,用于当所述第三数据包写入单元将所述数据包写入所述存储设备的空闲存储块后,将所述存储块组中末次写入数据包的存储块的序列号和所述末次写入数据包的存储块内的数据包的数量之和作为所述存储设备的空闲存储块的序列号。优选地,还包括第四判断単元,用于当所述第三判断単元判断所述存储时间满足预设存储时间要求时,判断所述数据包中的数据是否为循环数据;第二查找单元,当所述第四判断単元判断所述数据包中的数据位循环数据时,查找所述存储块组内的最早存储数据包的存储块;
第一清空単元,用于清空所述最早存储数据包的存储块中的数据包;第四数据包写入単元,用于将所述数据包写入所述清空后的存储块;第三序列号变更单元,用于当所述第四数据包写入单元将所述数据包写入所述清空后的存储块后,将所述存储块组中末次写入数据包的存储块的序列号和所述末次写入数据包的存储块内的数据包的数量之和作为所述清空后的存储块的序列号。优选地,还包括第五判断単元,用于当所述第三判断単元判断所述存储时间满足预设存储时间要求时,判断所述数据包中的数据是否为循环数据;第三查找单元,当所述第四判断単元判断所述数据包中的数据位循环数据时,按照数据包存储时间的先后顺序查找所述存储块组内的存储块;第二清空単元,用于清空可查找到、且存储的数据包的时间较早的所述存储组内的存储块内的数据包;第五数据包写入単元,用于将所述数据包写入所述清空后的存储块;第四序列号变更单元,用于当所述第五数据包写入单元将所述数据包写入所述清空后的存储块后,将所述存储块组中末次写入数据包的存储块的序列号和所述末次写入数据包的存储块内的数据包的数量之和作为所述清空后的存储块的序列号。优选地,还包括第一存储单元,用于将所述数据包写入所述存储设备的空闲存储块后,为所述存储设备的空闲存储块设置与所述数据包相对应的索引号,并保存。优选地,还包括第二存储单元,用于将所述数据包写入后,保存所述数据包写入时间。从上述的技术方案可以看出,本发明公开的数据存储方法中,通过将数据包存储到与该数据包相应的存储块组中的正在写入的存储块,或者,存储到存储块组中空闲存储块,并为所述空闲存储块设置序列号,建立空闲存储块与存储块组内已经存储数据包的存储块之间的联系,完成了数据包的连续存储,当处理流应用,获取数据包时,不必反复寻址,实现了快速处理流应用;并且,由于数据包为连续存储,即使数据包删除之后,也不会产生数据碎片。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图I为本发明实施例公开的ー种数据存储方法的流程图;图2为本发明实施例公开的存储块的示意图;图3为本发明另ー实施例公开的ー种数据存储方法的流程图;图4为本发明另ー实施例公开的ー种数据存储方法的流程图;图5为本发明实施例公开的ー种数据存储装置的结构图;图6为本发明另ー实施例公开的ー种数据存储装置的结构图;图7 Ca)为本发明另ー实施例公开的ー种数据存储装置的结构图;图7 (b)为本发明另ー实施例公开的ー种数据存储装置的结构图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。发明人研究本发明方案的过程中发现现有文件系统采用随机的方式存储流应用数据,具体将流应用数据随机存储于磁盘的任意存储区域,这样就会产生统一的流应用数据被存储于磁盘各个存储区域;当需要处理已经存储的流应用数据时,需要反复寻址,这就延迟了硬盘的处理时间,降低了硬盘的处理速度,使得文件系统无法满足流任务的要求。并且,当磁盘各个存储区域内的流应用数据被部分或全部删除,又将新的流应用数据出入磁盘各个存储区域,这样反复操作之后,就会出现磁盘的部分存储空间不足以存放新的流应用数据,而成为数据碎片,影响磁盘性能。而本发明实施例公开的数据存储方法,可以实现快速处理流应用。在执行本发明实施例公开的数据存储方法之前,需要将存储设备,划分多多个存储块,一般情况下,存储设备中的每个存储块的内存较大。本实施例公开的数据存储方法,如图I所示,包括S101、当接收到数据包后,确定与所述数据包相应的存储块组;具体的,所述存储块组内至少包括ー个存储块;S102、判断所述存储块组中是否存有正在写入的存储块;其中所述正在写入的存储块是指存储块内存储有数据包,但存储块内仍有存储空间可存储其他的数据包。当判断所述存储块组中存有正在写入的存储块吋,则执行步骤S103、将所述数据包写入所述正在写入的存储块;当判断所述存储块组中没有存有正在写入的存储块吋,则执行步骤S104、判断所述存储块组中是否有空闲存储块;其中,所述空闲存储块是指存储块中没有存储数据包。当判断所述存储块组中有空闲存储块时,执行步骤S105、将所述数据包写入所述空闲存储块;步骤S106、变更所述空闲存储块的序列号;具体的,将所述存储块组中上一次写入数据包的存储块的序列号和所述上一次写入数据包的存储块内的数据包的数量之和作为所述空闲存储块的序列号。其中本实施例中所述的存储块的序列号见图2,各个存储块的序列号(以50为例)加上本存储块内存储的数据包的包数(20),即可得到下ー个存储块的序列号(70)。本实施例公开的数据存储方法,通过将数据包存储到与该数据包相应的存储块组中的正在写入的存储块,或者,存储到存储块组中空闲存储块,并为所述空闲存储块设置序列号,建立空闲存储块与存储块组内已经存储数据包的存储块之间的联系,完成了数据包的连续存储,当处理流应用,获取数据包时,不必反复寻址,实现了快速处理流应用;并且,由于数据包为连续存储,即使数据包删除之后,也不会产生数据碎片。
本发明另一实施例还公开了ー种数据存储方法,如图3所示,包括S201、当接收到数据包后,获取存储块的索引号;S202、确定所述索引号与所述数据包相应的存储块为存储块组中的存储块;具体的,存储块的索引号与数据包一一对应,因此,可以获取存储设备中各个存储块的索引号,确定索引号与数据包对应的存储块,组成存储块组。S203、判断所述存储块组中是否存有正在写入的存储块;当判断所述存储块组中存有正在写入的存储块吋,则执行步骤S204、将所述数据包写入所述正在写入的存储块;当判断所述存储块组中没有存有正在写入的存储块时,则执行步骤S205、判断所述存储块组中是否有空闲存储块;当判断所述存储块组中有空闲存储块时,执行步骤S206、将所述数据包写入所述空闲存储块;步骤S207、变更所述空闲存储块的序列号;具体的,将所述存储块组中上一次写入数据包的存储块的序列号和所述上一次写入数据包的存储块内的数据包的数量之和作为所述空闲存储块的序列号。本发明另一实施例还公开了ー种数据存储方法,如图4所示,包括S301、当接收到数据包后,确定与所述数据包相应的存储块组;S302、判断所述存储块组中是否存有正在写入的存储块;当判断所述存储块组中存有正在写入的存储块吋,则执行步骤S303、将所述数据包写入所述正在写入的存储块;当判断所述存储块组中没有存有正在写入的存储块吋,则执行步骤S304、判断所述存储块组中是否有空闲存储块;当判断所述存储块组中有空闲存储块时,执行步骤S305、将所述数据包写入所述空闲存储块;步骤S306、变更所述空闲存储块的序列号;当判断所述存储组中没有空闲存储块时,执行步骤S307、确定所述存储块组中存储的数据包的存储时间;S308、判断所述存储时间是否满足预设存储时间要求;
当所述存储时间不满足预设存储时间要求时,执行步骤S309、判断所述存储设备是否还有空闲存储块;当所述存储设备有空闲存储块时,执行步骤S310、将所述数据包写入所述存储设备的空闲存储块;S311、变更所述存储设备的空闲存储块的序列号;同样,采用将所述存储块组中末次写入数据包的存储块的序列号和所述末次写入数据包的存储块内的数据包的数量之和作为所述存储设备的空闲存储块的序列号的方法变更所述空闲存储块的序列号。在上述实施例中,还可以包括在步骤S308判断结果为判断所述存储时间满足预设存储时间要求时,判断所述数据包中的数据是否为循环数据; 若是,则查找所述存储块组内的最早存储数据包的存储块;其中,当没有查找到所述存储块组内的最早存储数据包的存储块,则说明最早存储数据包的存储块出现故障,此时不执行任何操作。清空所述最早存储数据包的存储块中的数据包;将所述数据包写入所述清空后的存储块,且将所述存储块组中末次写入数据包的存储块的序列号和所述末次写入数据包的存储块内的数据包的数量之和作为所述清空后的存储块的序列号。又或者,在步骤S308的判断结果为所述存储时间满足预设存储时间要求时,判断所述数据包中的数据是否为循环数据;若是,则按照数据包存储时间的先后顺序查找所述存储块组内的存储块;清空可查找到、且存储的数据包的时间较早的所述存储组内的存储块内的数据包;具体的采用数据包存储时间的先后顺序依次查找所述存储块组内的存储块,若存储时间最早的存储块被查找到,那就清空该存储块,否则,继续查找所述存储组内的存储块内,直至将所述存储组内的所有存储块均查找完毕,若没有查找到存储块,则说明存储块均出现故障,不执行任何操作。将所述数据包写入所述清空后的存储块,且将所述存储块组中末次写入数据包的存储块的序列号和所述末次写入数据包的存储块内的数据包的数量之和作为所述清空后的存储块的序列号。同样,在上述实施例中,步骤S310、将所述数据包写入所述存储设备的空闲存储块后,还可以包括为所述存储设备的空闲存储块设置与所述数据包相对应的索引号,并保存。如此,当需要查找该存储块时,就可以根据索引号直接查找。本发明上述公开的所有实施例中,将所述数据包写入后,还包括保存所述数据包写入时间。具体的,当将数据包写入正在写入的存储块后,或者,将数据包写入空闲存储块,又或者,将数据包写入存储设备中的空闲数据块,又或者,将数据包写入清空后的存储块,均可以保存数据包的写入时间,以便根据数据包的写入时间确定数据包的保存次序。
本发明另一实施例还公开了ー种数据存储装置,如图5所示,包括存储块组确定単元101,用于当接收到数据包后,确定与所述数据包相应的存储块组,所述存储块组内至少包括ー个存储块,所述存储块为划分存储设备的存储空间形成;具体的,存储块组确定単元101可以获取所述存储块的索引号;确定所述索引号与所述数据包相应的存储块为存储块组中的存储块。第一判断単元102,用于判断所述存储块组中是否存有正在写入的存储块;第一数据包写入単元103,用于当第一判断単元102判断所述存储块组中存有正在写入的存储块时,将所述数据包写入所述正在写入的存储块;第二判断単元104,用于当第一判断単元102判断所述存储块组中没有存有正在写入的存储块时,判断所述存储块组中是否有空闲存储块;
第二数据包写入単元105,用于当第二判断単元104判断所述存储块组中有空闲存储块时,将所述数据包写入所述空闲存储块;第一序列号变更单元106,用于当第二数据包写入単元105将所述数据包写入所述空闲存储块后,将所述存储块组中上一次写入数据包的存储块的序列号和所述上一次写入数据包的存储块内的数据包的数量之和作为所述空闲存储块的序列号。为了使上述实施例公开的数据存储装置的工作更加完善,本发明另ー实施例还公开了 ー种数据存储装置,如图6所示,包括存储块组确定単元201,用于当接收到数据包后,确定与所述数据包相应的存储块组,所述存储块组内至少包括ー个存储块,所述存储块为划分存储设备的存储空间形成;第一判断単元202,用于判断所述存储块组中是否存有正在写入的存储块;第一数据包写入単元203,用于当第一判断単元202判断所述存储块组中存有正在写入的存储块时,将所述数据包写入所述正在写入的存储块;第二判断単元204,用于当第一判断単元202判断所述存储块组中没有存有正在写入的存储块时,判断所述存储块组中是否有空闲存储块;第二数据包写入単元205,用于当第二判断単元204判断所述存储块组中有空闲存储块时,将所述数据包写入所述空闲存储块;第一序列号变更单元206,用于当第二数据包写入単元205将所述数据包写入所述空闲存储块后,将所述存储块组中上一次写入数据包的存储块的序列号和所述上一次写入数据包的存储块内的数据包的数量之和作为所述空闲存储块的序列号。数据包存储时间确定单元207,用于当所述第二判断単元204判断所述存储组中没有空闲存储块时,确定所述存储块组中存储的数据包的存储时间;第三判断単元208,用于判断所述存储时间是否满足预设存储时间要求;第一查找单元209,用于当所述第三判断単元判断所述存储时间不满足预设存储时间要求时,查找所述存储设备是否还有空闲存储块;第三数据包写入単元210,用于当第一查找单元209查找到所述存储设备有空闲存储块时,将所述数据包写入所述存储设备的空闲存储块;第二序列号变更单元211,用于当第三数据包写入単元210将所述数据包写入所述存储设备的空闲存储块后,将所述存储块组中末次写入数据包的存储块的序列号和所述末次写入数据包的存储块内的数据包的数量之和作为所述存储设备的空闲存储块的序列号。同样,为了更加完善数据存储装置的工作,本发明另一实施例还公开了一种数据存储装置,如图7 (a)所示,除包括存储块组确定単元301、第一判断単元302、第一数据包写入単元303、第二判断単元304、第二数据包写入単元305、第一序列号变更单元306、数据包存储时间确定单元307、第三判断单元308、第一查找单元309、第三数据包写入单元310和第二序列号变更单元311,还包括第四判断単元312,用于当第三判断単元308判断所述存储时间满足预设存储时间要求时,判断所述数据包中的数据是否为循环数据;第二查找单元312,当第四判断単元312判断所述数据包中的数据位循环数据吋,查找所述存储块组内的最早存储数据包的存储块;第一清空単元314,用于清空所述最早存储数据包的存储块中的数据包; 第四数据包写入単元315,用于将所述数据包写入所述清空后的存储块;第三序列号变更单元316,用于当第四数据包写入単元315将所述数据包写入所述清空后的存储块后,将所述存储块组中末次写入数据包的存储块的序列号和所述末次写入数据包的存储块内的数据包的数量之和作为所述清空后的存储块的序列号。其中存储块组确定单元301、第一判断单元302、第一数据包写入单元303、第二判断単元304、第二数据包写入単元305、第一序列号变更单元306、数据包存储时间确定单元307、第三判断単元308、第一查找单元309、第三数据包写入単元310和第二序列号变更単元311的工作过程见上述实施例,此处不再赘述。又或者,如图7 (b)所示,除包括存储块组确定単元401、第一判断単元402、第一数据包写入単元404、第二判断単元404、第二数据包写入単元405、第一序列号变更单元406、数据包存储时间确定单元407、第三判断単元408、第一查找单元409、第三数据包写入单元410和第二序列号变更单元411,还包括第五判断単元412,用于当第三判断単元408判断所述存储时间满足预设存储时间要求时,判断所述数据包中的数据是否为循环数据;第三查找单元413,当第五判断単元412判断所述数据包中的数据位循环数据吋,按照数据包存储时间的先后顺序查找所述存储块组内的存储块;第二清空単元414,用于清空可查找到、且存储的数据包的时间较早的所述存储组内的存储块内的数据包;第五数据包写入単元415,用于将所述数据包写入所述清空后的存储块;第四序列号变更单元416,用于当第五数据包写入単元415将所述数据包写入所述清空后的存储块后,将所述存储块组中末次写入数据包的存储块的序列号和所述末次写入数据包的存储块内的数据包的数量之和作为所述清空后的存储块的序列号。同样,存储块组确定单元401、第一判断单元402、第一数据包写入单元404、第二判断単元404、第二数据包写入単元405、第一序列号变更单元406、数据包存储时间确定单元407、第三判断単元408、第一查找单元409、第三数据包写入単元410和第二序列号变更単元411的工作过程见上述实施例,此处不再赘述。在图6中公开的实施例中,所述数据存储装置还可以包括第一存储单元,用于当第三数据包写入単元210将所述数据包写入所述存储设备的空闲存储块后,为所述存储设备的空闲存储块设置与所述数据包相对应的索引号,并保存。本发明上述公开的所有实施例中,还可以包括第二存储单元,于将所述数据包写入后,保存所述数据包写入时间。具体的,当将数据包写入正在写入的存储块后,或者,将数据包写入空闲存储块,又或者,将数据包写入存储设备中的空闲数据块,又或者,将数据包写入清空后的存储块,均可以保存数据包的写入时间,以便根据数据包的写入时间确定数据包的保存次序。最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另ー个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括ー个……”限定的要素,并 不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相參见即可。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
权利要求
1.一种数据存储方法,其特征在于,包括 当接收到数据包后,确定与所述数据包相应的存储块组,所述存储块组内至少包括一个存储块,所述存储块为划分存储设备的存储空间形成; 判断所述存储块组中是否存有正在写入的存储块; 若有,则将所述数据包写入所述正在写入的存储块; 若无,判断所述存储块组中是否有空闲存储块; 若有,则将所述数据包写入所述空闲存储块,且将所述存储块组中上一次写入数据包的存储块的序列号和所述上一次写入数据包的存储块内的数据包的数量之和作为所述空闲存储块的序列号。
2.根据权利要求I所述的方法,其特征在于,所述确定与所述数据包相应的存储块组包括 获取所述存储块的索引号; 确定所述索引号与所述数据包相应的存储块为存储块组中的存储块。
3.根据权利要求I所述的方法,其特征在于,还包括当判断所述存储组中没有空闲存储块时,确定所述存储块组中存储的数据包的存储时间; 判断所述存储时间是否满足预设存储时间要求,当不满足预设存储时间要求时,查找所述存储设备是否还有空闲存储块; 当所述存储设备有空闲存储块时,将所述数据包写入所述存储设备的空闲存储块,且将所述存储块组中末次写入数据包的存储块的序列号和所述末次写入数据包的存储块内的数据包的数量之和作为所述存储设备的空闲存储块的序列号。
4.根据权利要求3所述的方法,其特征在于,还包括当所述存储时间满足预设存储时间要求时,判断所述数据包中的数据是否为循环数据; 若是,则查找所述存储块组内的最早存储数据包的存储块; 清空所述最早存储数据包的存储块中的数据包; 将所述数据包写入所述清空后的存储块,且将所述存储块组中末次写入数据包的存储块的序列号和所述末次写入数据包的存储块内的数据包的数量之和作为所述清空后的存储块的序列号。
5.根据权利要求3所述的方法,其特征在于,还包括当所述存储时间满足预设存储时间要求时,判断所述数据包中的数据是否为循环数据; 若是,则按照数据包存储时间的先后顺序查找所述存储块组内的存储块; 清空可查找到、且存储的数据包的时间较早的所述存储组内的存储块内的数据包;将所述数据包写入所述清空后的存储块,且将所述存储块组中末次写入数据包的存储块的序列号和所述末次写入数据包的存储块内的数据包的数量之和作为所述清空后的存储块的序列号。
6.根据权利要求3所述的方法,其特征在于,将所述数据包写入所述存储设备的空闲存储块后,还包括 为所述存储设备的空闲存储块设置与所述数据包相对应的索引号,并保存。
7.根据权利要求1-6中任意一项所述的方法,其特征在于,将所述数据包写入后,还包括保存所述数据包写入时间。
8.一种数据存储装置,其特征在于,包括 存储块组确定单元,用于当接收到数据包后,确定与所述数据包相应的存储块组,所述存储块组内至少包括一个存储块,所述存储块为划分存储设备的存储空间形成; 第一判断单元,用于判断所述存储块组中是否存有正在写入的存储块; 第一数据包写入单元,用于当所述第一判断单元判断所述存储块组中存有正在写入的存储块时,将所述数据包写入所述正在写入的存储块; 第二判断单元,用于当所述第一判断单元判断所述存储块组中没有存有正在写入的存储块时,判断所述存储块组中是否有空闲存储块; 第二数据包写入单元,用于当所述第二判断单元判断所述存储块组中有空闲存储块时,将所述数据包写入所述空闲存储块; 第一序列号变更单元,用于当所述第二数据包写入单元将所述数据包写入所述空闲存储块后,将所述存储块组中上一次写入数据包的存储块的序列号和所述上一次写入数据包的存储块内的数据包的数量之和作为所述空闲存储块的序列号。
9.根据权利8所述的装置,其特征在于,还包括 数据包存储时间确定单元,用于当所述第二判断单元判断所述存储组中没有空闲存储块时,确定所述存储块组中存储的数据包的存储时间; 第三判断单元,用于判断所述存储时间是否满足预设存储时间要求; 第一查找单元,用于当所述第三判断单元判断所述存储时间不满足预设存储时间要求时,查找所述存储设备是否还有空闲存储块; 第三数据包写入单元,用于当所述第一查找单元查找到所述存储设备有空闲存储块时,将所述数据包写入所述存储设备的空闲存储块; 第二序列号变更单元,用于当所述第三数据包写入单元将所述数据包写入所述存储设备的空闲存储块后,将所述存储块组中末次写入数据包的存储块的序列号和所述末次写入数据包的存储块内的数据包的数量之和作为所述存储设备的空闲存储块的序列号。
10.根据权利要求9所述的装置,其特征在于,还包括 第四判断单元,用于当所述第三判断单元判断所述存储时间满足预设存储时间要求时,判断所述数据包中的数据是否为循环数据; 第二查找单元,当所述第四判断单元判断所述数据包中的数据位循环数据时,查找所述存储块组内的最早存储数据包的存储块; 第一清空单元,用于清空所述最早存储数据包的存储块中的数据包; 第四数据包写入单元,用于将所述数据包写入所述清空后的存储块; 第三序列号变更单元,用于当所述第四数据包写入单元将所述数据包写入所述清空后的存储块后,将所述存储块组中末次写入数据包的存储块的序列号和所述末次写入数据包的存储块内的数据包的数量之和作为所述清空后的存储块的序列号。
11.根据权利要求9所述的装置,其特征在于,还包括 第五判断单元,用于当所述第三判断单元判断所述存储时间满足预设存储时间要求时,判断所述数据包中的数据是否为循环数据; 第三查找单元,当所述第五判断单元判断所述数据包中的数据位循环数据时,按照数据包存储时间的先后顺序查找所述存储块组内的存储块;第二清空单元,用于清空可查找到、且存储的数据包的时间较早的所述存储组内的存储块内的数据包; 第五数据包写入单元,用于将所述数据包写入所述清空后的存储块; 第四序列号变更单元,用于当所述第五数据包写入单元将所述数据包写入所述清空后的存储块后,将所述存储块组中末次写入数据包的存储块的序列号和所述末次写入数据包的存储块内的数据包的数量之和作为所述清空后的存储块的序列号。
12.根据权利要求9所述的装置,其特征在于,还包括第一存储单元,用于将所述数据包写入所述存储设备的空闲存储块后,为所述存储设备的空闲存储块设置与所述数据包相对应的索引号,并保存。
13.根据权利要求8-12中任意一项所述的装置,其特征在于,还包括第二存储单元,用于将所述数据包写入后,保存所述数据包写入时间。
全文摘要
本发明公开了一种数据存储方法和装置,通过将数据包存储到与该数据包相应的存储块组中的正在写入的存储块,或者,存储到存储块组中空闲存储块,并为所述空闲存储块设置序列号,建立空闲存储块与存储块组内已经存储数据包的存储块之间的联系,完成了数据包的连续存储,当处理流应用,获取数据包时,不必反复寻址,实现了快速处理流应用;并且,由于数据包为连续存储,即使数据包删除之后,也不会产生数据碎片。
文档编号G06F12/02GK102819495SQ201210285248
公开日2012年12月12日 申请日期2012年8月10日 优先权日2012年8月10日
发明者王鹏 申请人:东方网力科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1