CN102819495A - 数据存储方法及装置 - Google Patents
数据存储方法及装置 Download PDFInfo
- Publication number
- CN102819495A CN102819495A CN2012102852488A CN201210285248A CN102819495A CN 102819495 A CN102819495 A CN 102819495A CN 2012102852488 A CN2012102852488 A CN 2012102852488A CN 201210285248 A CN201210285248 A CN 201210285248A CN 102819495 A CN102819495 A CN 102819495A
- Authority
- CN
- China
- Prior art keywords
- packet
- storage block
- storage
- write
- unit
- 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
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种数据存储方法和装置,通过将数据包存储到与该数据包相应的存储块组中的正在写入的存储块,或者,存储到存储块组中空闲存储块,并为所述空闲存储块设置序列号,建立空闲存储块与存储块组内已经存储数据包的存储块之间的联系,完成了数据包的连续存储,当处理流应用,获取数据包时,不必反复寻址,实现了快速处理流应用;并且,由于数据包为连续存储,即使数据包删除之后,也不会产生数据碎片。
Description
技术领域
本发明涉及数据处理技术领域,更具体地说,涉及一种数据存储方法及装置。
背景技术
目前广泛使用的文件系统,如ext3和FAT32,处理流应用时,要求视频画面或音频数据必须以一种可预见的、不间断的方式传输给硬盘、显示器和扬声器。但当视频画面或音频数据的数据量较大时,由于硬盘的处理速度要远小于CPU的处理速度,使得文件系统无法满足流任务的要求。而这些有将会导致画面停顿、硬盘过度运转和运行温度上升问题的出现,同时文件系统的服务质量开始下降。
并且,随着时间的推移,文件系统逐渐老化,每次处理流应用时会产生数据碎片,过多的数据碎片又导致磁盘性能缓慢下降,甚至出现硬件故障。
为解决上述两方面的问题,现有一般放大文件系统中的文件块,通过减少多级指针的角度优化,使数据的能够连续存取,且能很好的较少数据碎片;或者,采用JFS日志文件系统;然而,无论采用放大文件系统中的文件块的方式,还是选用JFS日志文件系统,均存有处理过程复杂的问题。
发明内容
有鉴于此,本发明提供一种数据存储方法及装置,以实现快速处理流应用。
现提出的方案如下:
一种数据存储方法,包括:
当接收到数据包后,确定与所述数据包相应的存储块组,所述存储块组内至少包括一个存储块,所述存储块为划分存储设备的存储空间形成;
判断所述存储块组中是否存有正在写入的存储块;
若有,则将所述数据包写入所述正在写入的存储块;
若无,判断所述存储块组中是否有空闲存储块;
若有,则将所述数据包写入所述空闲存储块,且将所述存储块组中上一次写入数据包的存储块的序列号和所述上一次写入数据包的存储块内的数据包的数量之和作为所述空闲存储块的序列号。
优选地,所述确定与所述数据包相应的存储块组包括:
获取所述存储块的索引号;
确定所述索引号与所述数据包相应的存储块为存储块组中的存储块。
优选地,还包括:当判断所述存储组中没有空闲存储块时,确定所述存储块组中存储的数据包的存储时间;
判断所述存储时间是否满足预设存储时间要求,当不满足预设存储时间要求时,查找所述存储设备是否还有空闲存储块;
当所述存储设备有空闲存储块时,将所述数据包写入所述存储设备的空闲存储块,且将所述存储块组中末次写入数据包的存储块的序列号和所述末次写入数据包的存储块内的数据包的数量之和作为所述存储设备的空闲存储块的序列号。
优选地,还包括:当所述存储时间满足预设存储时间要求时,判断所述数据包中的数据是否为循环数据;
若是,则查找所述存储块组内的最早存储数据包的存储块;
清空所述最早存储数据包的存储块中的数据包;
将所述数据包写入所述清空后的存储块,且将所述存储块组中末次写入数据包的存储块的序列号和所述末次写入数据包的存储块内的数据包的数量之和作为所述清空后的存储块的序列号。
优选地,还包括:当所述存储时间满足预设存储时间要求时,判断所述数据包中的数据是否为循环数据;
若是,则按照数据包存储时间的先后顺序查找所述存储块组内的存储块;
清空可查找到、且存储的数据包的时间较早的所述存储组内的存储块内的数据包;
将所述数据包写入所述清空后的存储块,且将所述存储块组中末次写入数据包的存储块的序列号和所述末次写入数据包的存储块内的数据包的数量之和作为所述清空后的存储块的序列号。
优选地,将所述数据包写入所述存储设备的空闲存储块后,还包括:
为所述存储设备的空闲存储块设置与所述数据包相对应的索引号,并保存。
优选地,将所述数据包写入后,还包括:保存所述数据包写入时间。
一种数据存储装置,包括:
存储块组确定单元,用于当接收到数据包后,确定与所述数据包相应的存储块组,所述存储块组内至少包括一个存储块,所述存储块为划分存储设备的存储空间形成;
第一判断单元,用于判断所述存储块组中是否存有正在写入的存储块;
第一数据包写入单元,用于当所述第一判断单元判断所述存储块组中存有正在写入的存储块时,将所述数据包写入所述正在写入的存储块;
第二判断单元,用于当所述第一判断单元判断所述存储块组中没有存有正在写入的存储块时,判断所述存储块组中是否有空闲存储块;
第二数据包写入单元,用于当所述第二判断单元判断所述存储块组中有空闲存储块时,将所述数据包写入所述空闲存储块;
第一序列号变更单元,用于当所述第二数据包写入单元将所述数据包写入所述空闲存储块后,将所述存储块组中上一次写入数据包的存储块的序列号和所述上一次写入数据包的存储块内的数据包的数量之和作为所述空闲存储块的序列号。
优选地,还包括:
数据包存储时间确定单元,用于当所述第二判断单元判断所述存储组中没有空闲存储块时,确定所述存储块组中存储的数据包的存储时间;
第三判断单元,用于判断所述存储时间是否满足预设存储时间要求;
第一查找单元,用于当所述第三判断单元判断所述存储时间不满足预设存储时间要求时,查找所述存储设备是否还有空闲存储块;
第三数据包写入单元,用于当所述查找单元查找到所述存储设备有空闲存储块时,将所述数据包写入所述存储设备的空闲存储块;
第二序列号变更单元,用于当所述第三数据包写入单元将所述数据包写入所述存储设备的空闲存储块后,将所述存储块组中末次写入数据包的存储块的序列号和所述末次写入数据包的存储块内的数据包的数量之和作为所述存储设备的空闲存储块的序列号。
优选地,还包括:
第四判断单元,用于当所述第三判断单元判断所述存储时间满足预设存储时间要求时,判断所述数据包中的数据是否为循环数据;
第二查找单元,当所述第四判断单元判断所述数据包中的数据位循环数据时,查找所述存储块组内的最早存储数据包的存储块;
第一清空单元,用于清空所述最早存储数据包的存储块中的数据包;
第四数据包写入单元,用于将所述数据包写入所述清空后的存储块;
第三序列号变更单元,用于当所述第四数据包写入单元将所述数据包写入所述清空后的存储块后,将所述存储块组中末次写入数据包的存储块的序列号和所述末次写入数据包的存储块内的数据包的数量之和作为所述清空后的存储块的序列号。
优选地,还包括:
第五判断单元,用于当所述第三判断单元判断所述存储时间满足预设存储时间要求时,判断所述数据包中的数据是否为循环数据;
第三查找单元,当所述第四判断单元判断所述数据包中的数据位循环数据时,按照数据包存储时间的先后顺序查找所述存储块组内的存储块;
第二清空单元,用于清空可查找到、且存储的数据包的时间较早的所述存储组内的存储块内的数据包;
第五数据包写入单元,用于将所述数据包写入所述清空后的存储块;
第四序列号变更单元,用于当所述第五数据包写入单元将所述数据包写入所述清空后的存储块后,将所述存储块组中末次写入数据包的存储块的序列号和所述末次写入数据包的存储块内的数据包的数量之和作为所述清空后的存储块的序列号。
优选地,还包括第一存储单元,用于将所述数据包写入所述存储设备的空闲存储块后,为所述存储设备的空闲存储块设置与所述数据包相对应的索引号,并保存。
优选地,还包括第二存储单元,用于将所述数据包写入后,保存所述数据包写入时间。
从上述的技术方案可以看出,本发明公开的数据存储方法中,通过将数据包存储到与该数据包相应的存储块组中的正在写入的存储块,或者,存储到存储块组中空闲存储块,并为所述空闲存储块设置序列号,建立空闲存储块与存储块组内已经存储数据包的存储块之间的联系,完成了数据包的连续存储,当处理流应用,获取数据包时,不必反复寻址,实现了快速处理流应用;并且,由于数据包为连续存储,即使数据包删除之后,也不会产生数据碎片。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例公开的一种数据存储方法的流程图;
图2为本发明实施例公开的存储块的示意图;
图3为本发明另一实施例公开的一种数据存储方法的流程图;
图4为本发明另一实施例公开的一种数据存储方法的流程图;
图5为本发明实施例公开的一种数据存储装置的结构图;
图6为本发明另一实施例公开的一种数据存储装置的结构图;
图7(a)为本发明另一实施例公开的一种数据存储装置的结构图;
图7(b)为本发明另一实施例公开的一种数据存储装置的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
发明人研究本发明方案的过程中发现:现有文件系统采用随机的方式存储流应用数据,具体将流应用数据随机存储于磁盘的任意存储区域,这样就会产生统一的流应用数据被存储于磁盘各个存储区域;当需要处理已经存储的流应用数据时,需要反复寻址,这就延迟了硬盘的处理时间,降低了硬盘的处理速度,使得文件系统无法满足流任务的要求。
并且,当磁盘各个存储区域内的流应用数据被部分或全部删除,又将新的流应用数据出入磁盘各个存储区域,这样反复操作之后,就会出现磁盘的部分存储空间不足以存放新的流应用数据,而成为数据碎片,影响磁盘性能。
而本发明实施例公开的数据存储方法,可以实现快速处理流应用。
在执行本发明实施例公开的数据存储方法之前,需要将存储设备,划分多多个存储块,一般情况下,存储设备中的每个存储块的内存较大。
本实施例公开的数据存储方法,如图1所示,包括:
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将所述数据包写入所述存储设备的空闲存储块后,为所述存储设备的空闲存储块设置与所述数据包相对应的索引号,并保存。
本发明上述公开的所有实施例中,还可以包括第二存储单元,于将所述数据包写入后,保存所述数据包写入时间。
具体的,当将数据包写入正在写入的存储块后,或者,将数据包写入空闲存储块,又或者,将数据包写入存储设备中的空闲数据块,又或者,将数据包写入清空后的存储块,均可以保存数据包的写入时间,以便根据数据包的写入时间确定数据包的保存次序。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (13)
1.一种数据存储方法,其特征在于,包括:
当接收到数据包后,确定与所述数据包相应的存储块组,所述存储块组内至少包括一个存储块,所述存储块为划分存储设备的存储空间形成;
判断所述存储块组中是否存有正在写入的存储块;
若有,则将所述数据包写入所述正在写入的存储块;
若无,判断所述存储块组中是否有空闲存储块;
若有,则将所述数据包写入所述空闲存储块,且将所述存储块组中上一次写入数据包的存储块的序列号和所述上一次写入数据包的存储块内的数据包的数量之和作为所述空闲存储块的序列号。
2.根据权利要求1所述的方法,其特征在于,所述确定与所述数据包相应的存储块组包括:
获取所述存储块的索引号;
确定所述索引号与所述数据包相应的存储块为存储块组中的存储块。
3.根据权利要求1所述的方法,其特征在于,还包括:当判断所述存储组中没有空闲存储块时,确定所述存储块组中存储的数据包的存储时间;
判断所述存储时间是否满足预设存储时间要求,当不满足预设存储时间要求时,查找所述存储设备是否还有空闲存储块;
当所述存储设备有空闲存储块时,将所述数据包写入所述存储设备的空闲存储块,且将所述存储块组中末次写入数据包的存储块的序列号和所述末次写入数据包的存储块内的数据包的数量之和作为所述存储设备的空闲存储块的序列号。
4.根据权利要求3所述的方法,其特征在于,还包括:当所述存储时间满足预设存储时间要求时,判断所述数据包中的数据是否为循环数据;
若是,则查找所述存储块组内的最早存储数据包的存储块;
清空所述最早存储数据包的存储块中的数据包;
将所述数据包写入所述清空后的存储块,且将所述存储块组中末次写入数据包的存储块的序列号和所述末次写入数据包的存储块内的数据包的数量之和作为所述清空后的存储块的序列号。
5.根据权利要求3所述的方法,其特征在于,还包括:当所述存储时间满足预设存储时间要求时,判断所述数据包中的数据是否为循环数据;
若是,则按照数据包存储时间的先后顺序查找所述存储块组内的存储块;
清空可查找到、且存储的数据包的时间较早的所述存储组内的存储块内的数据包;
将所述数据包写入所述清空后的存储块,且将所述存储块组中末次写入数据包的存储块的序列号和所述末次写入数据包的存储块内的数据包的数量之和作为所述清空后的存储块的序列号。
6.根据权利要求3所述的方法,其特征在于,将所述数据包写入所述存储设备的空闲存储块后,还包括:
为所述存储设备的空闲存储块设置与所述数据包相对应的索引号,并保存。
7.根据权利要求1-6中任意一项所述的方法,其特征在于,将所述数据包写入后,还包括:保存所述数据包写入时间。
8.一种数据存储装置,其特征在于,包括:
存储块组确定单元,用于当接收到数据包后,确定与所述数据包相应的存储块组,所述存储块组内至少包括一个存储块,所述存储块为划分存储设备的存储空间形成;
第一判断单元,用于判断所述存储块组中是否存有正在写入的存储块;
第一数据包写入单元,用于当所述第一判断单元判断所述存储块组中存有正在写入的存储块时,将所述数据包写入所述正在写入的存储块;
第二判断单元,用于当所述第一判断单元判断所述存储块组中没有存有正在写入的存储块时,判断所述存储块组中是否有空闲存储块;
第二数据包写入单元,用于当所述第二判断单元判断所述存储块组中有空闲存储块时,将所述数据包写入所述空闲存储块;
第一序列号变更单元,用于当所述第二数据包写入单元将所述数据包写入所述空闲存储块后,将所述存储块组中上一次写入数据包的存储块的序列号和所述上一次写入数据包的存储块内的数据包的数量之和作为所述空闲存储块的序列号。
9.根据权利8所述的装置,其特征在于,还包括:
数据包存储时间确定单元,用于当所述第二判断单元判断所述存储组中没有空闲存储块时,确定所述存储块组中存储的数据包的存储时间;
第三判断单元,用于判断所述存储时间是否满足预设存储时间要求;
第一查找单元,用于当所述第三判断单元判断所述存储时间不满足预设存储时间要求时,查找所述存储设备是否还有空闲存储块;
第三数据包写入单元,用于当所述第一查找单元查找到所述存储设备有空闲存储块时,将所述数据包写入所述存储设备的空闲存储块;
第二序列号变更单元,用于当所述第三数据包写入单元将所述数据包写入所述存储设备的空闲存储块后,将所述存储块组中末次写入数据包的存储块的序列号和所述末次写入数据包的存储块内的数据包的数量之和作为所述存储设备的空闲存储块的序列号。
10.根据权利要求9所述的装置,其特征在于,还包括:
第四判断单元,用于当所述第三判断单元判断所述存储时间满足预设存储时间要求时,判断所述数据包中的数据是否为循环数据;
第二查找单元,当所述第四判断单元判断所述数据包中的数据位循环数据时,查找所述存储块组内的最早存储数据包的存储块;
第一清空单元,用于清空所述最早存储数据包的存储块中的数据包;
第四数据包写入单元,用于将所述数据包写入所述清空后的存储块;
第三序列号变更单元,用于当所述第四数据包写入单元将所述数据包写入所述清空后的存储块后,将所述存储块组中末次写入数据包的存储块的序列号和所述末次写入数据包的存储块内的数据包的数量之和作为所述清空后的存储块的序列号。
11.根据权利要求9所述的装置,其特征在于,还包括:
第五判断单元,用于当所述第三判断单元判断所述存储时间满足预设存储时间要求时,判断所述数据包中的数据是否为循环数据;
第三查找单元,当所述第五判断单元判断所述数据包中的数据位循环数据时,按照数据包存储时间的先后顺序查找所述存储块组内的存储块;
第二清空单元,用于清空可查找到、且存储的数据包的时间较早的所述存储组内的存储块内的数据包;
第五数据包写入单元,用于将所述数据包写入所述清空后的存储块;
第四序列号变更单元,用于当所述第五数据包写入单元将所述数据包写入所述清空后的存储块后,将所述存储块组中末次写入数据包的存储块的序列号和所述末次写入数据包的存储块内的数据包的数量之和作为所述清空后的存储块的序列号。
12.根据权利要求9所述的装置,其特征在于,还包括第一存储单元,用于将所述数据包写入所述存储设备的空闲存储块后,为所述存储设备的空闲存储块设置与所述数据包相对应的索引号,并保存。
13.根据权利要求8-12中任意一项所述的装置,其特征在于,还包括第二存储单元,用于将所述数据包写入后,保存所述数据包写入时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210285248.8A CN102819495B (zh) | 2012-08-10 | 2012-08-10 | 数据存储方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210285248.8A CN102819495B (zh) | 2012-08-10 | 2012-08-10 | 数据存储方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102819495A true CN102819495A (zh) | 2012-12-12 |
CN102819495B CN102819495B (zh) | 2015-01-07 |
Family
ID=47303617
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210285248.8A Active CN102819495B (zh) | 2012-08-10 | 2012-08-10 | 数据存储方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102819495B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106095338A (zh) * | 2016-06-13 | 2016-11-09 | 深圳创维空调科技有限公司 | 一种记忆芯片的擦写实现方法及实现系统 |
CN108563404A (zh) * | 2018-04-17 | 2018-09-21 | 四川神琥科技有限公司 | 一种数据抓包存储方法及设备 |
CN110825940A (zh) * | 2019-09-24 | 2020-02-21 | 武汉智美互联科技有限公司 | 网络数据包存储和查询方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030120664A1 (en) * | 2001-12-21 | 2003-06-26 | Davidson Joel R. | Method and apparatus for reassembly of data blocks within a network processor |
CN1641603A (zh) * | 2004-01-05 | 2005-07-20 | 华为技术有限公司 | 一种处理流媒体数据的方法 |
CN101008919A (zh) * | 2007-01-31 | 2007-08-01 | 浙江大学 | 基于裸设备的音视频数据存取方法和装置 |
CN101441599A (zh) * | 2008-11-28 | 2009-05-27 | 成都市华为赛门铁克科技有限公司 | 一种固态硬盘的均衡方法和固态硬盘 |
US20110252284A1 (en) * | 2010-04-13 | 2011-10-13 | Juniper Networks, Inc. | Optimization of packet buffer memory utilization |
CN102541970A (zh) * | 2011-05-20 | 2012-07-04 | 广东迅通科技股份有限公司 | 音视频监控数据自动归档的方法 |
-
2012
- 2012-08-10 CN CN201210285248.8A patent/CN102819495B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030120664A1 (en) * | 2001-12-21 | 2003-06-26 | Davidson Joel R. | Method and apparatus for reassembly of data blocks within a network processor |
CN1641603A (zh) * | 2004-01-05 | 2005-07-20 | 华为技术有限公司 | 一种处理流媒体数据的方法 |
CN101008919A (zh) * | 2007-01-31 | 2007-08-01 | 浙江大学 | 基于裸设备的音视频数据存取方法和装置 |
CN101441599A (zh) * | 2008-11-28 | 2009-05-27 | 成都市华为赛门铁克科技有限公司 | 一种固态硬盘的均衡方法和固态硬盘 |
US20110252284A1 (en) * | 2010-04-13 | 2011-10-13 | Juniper Networks, Inc. | Optimization of packet buffer memory utilization |
CN102541970A (zh) * | 2011-05-20 | 2012-07-04 | 广东迅通科技股份有限公司 | 音视频监控数据自动归档的方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106095338A (zh) * | 2016-06-13 | 2016-11-09 | 深圳创维空调科技有限公司 | 一种记忆芯片的擦写实现方法及实现系统 |
CN108563404A (zh) * | 2018-04-17 | 2018-09-21 | 四川神琥科技有限公司 | 一种数据抓包存储方法及设备 |
CN108563404B (zh) * | 2018-04-17 | 2021-07-27 | 四川神琥科技有限公司 | 一种数据抓包存储方法及设备 |
CN110825940A (zh) * | 2019-09-24 | 2020-02-21 | 武汉智美互联科技有限公司 | 网络数据包存储和查询方法 |
CN110825940B (zh) * | 2019-09-24 | 2023-08-22 | 武汉智美互联科技有限公司 | 网络数据包存储和查询方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102819495B (zh) | 2015-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7937522B2 (en) | Method for flash memory data management | |
CN102377682B (zh) | 基于定长单元存储变长分组的队列管理方法及设备 | |
CN103164490B (zh) | 一种不固定长度数据的高效存储实现方法和装置 | |
CN109240607B (zh) | 一种文件读取方法和装置 | |
CN103440208A (zh) | 一种数据存储的方法及装置 | |
CN111177017B (zh) | 一种内存分配方法及装置 | |
CN102819495A (zh) | 数据存储方法及装置 | |
CN110297810B (zh) | 一种流数据处理方法、装置及电子设备 | |
CN110874358B (zh) | 多属性列的存储、检索方法和装置以及电子设备 | |
CN101963977A (zh) | 无城市搜索方法及移动终端 | |
CN102024060B (zh) | 存储文件及恢复误删除文件的方法 | |
CN101673246A (zh) | 一种高效的先进先出数据池读写方法 | |
CN1332319C (zh) | 存储系统控制方法 | |
CN104834478A (zh) | 一种基于异构混合存储设备的数据写入及读取方法 | |
CN109491927A (zh) | 数据存储、读取方法、装置及电子设备 | |
CN109445719A (zh) | 一种数据存储方法及装置 | |
CN101399895B (zh) | 数码相机存储空间快速整理系统及方法 | |
TWI397285B (zh) | 封包轉送方式 | |
CN102609509A (zh) | 哈希数据处理方法和装置 | |
CN107329833B (zh) | 一种利用链表实现内存连续的方法和装置 | |
CN102298534A (zh) | 软件写入机顶盒的方法 | |
CN112596949A (zh) | 一种高效率的ssd删除数据恢复方法及系统 | |
CN103942155B (zh) | 一种内存块控制方法及装置 | |
CN105916007A (zh) | 一种基于录像的视频展示方法和系统 | |
US10515053B2 (en) | Electronic device and database constructing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
PP01 | Preservation of patent right |
Effective date of registration: 20220726 Granted publication date: 20150107 |
|
PP01 | Preservation of patent right |