一种数据存储方法及装置与流程

文档序号:17184900发布日期:2019-03-22 21:15阅读:131来源:国知局
本申请涉及数据存储领域,特别是涉及一种数据存储方法及装置。
背景技术
::随着科学技术的发展,出现了海量的数据,可以将数据存储在存储器例如磁盘中。目前,存储数据时,可以直接利用常用的文件系统例如文件分配表(fileallocationtable,fat)32和文件系统例如文件分配表(fileallocationtable,fat)系统来进行数据存储。但是,由于fat32和ntfs的磁盘碎片化问题比较严重,可能导致存储器使用一段时间之后该存储器就不能使用了,必须格式化存储器才能继续使用。其中,所谓磁盘碎片化是指文件在存储器中存储的位置并不连续,而分散地存于存储器中。一方面,磁盘碎片化严重,会导致存储器的存储空间利用率比较低。另一方面,在存储器使用一段时间之后,用户可能需要及时格式化存储器,给用户带来不好的体验。因此,需要提出一种方案,可以减轻磁盘碎片化的问题。技术实现要素:本申请所要解决的技术问题是如何减轻磁盘碎片化问题,提供一种数据存储方法及装置。第一方面,本申请实施例提供了一种数据存储方法,包括:获取待存储数据的元数据,所述元数据包括:所述待存储数据在存储器中的起始存储地址,以及所述待存储数据所占的存储空间的大小;根据所述元数据确定所述待存储数据在所述存储器中的存储区域;将所述待存储数据存储至所述待存储数据对应的存储区域中。可选的,所述存储器中包括第一存储区域和第二存储区域,所述待存储数据在所述存储器中的存储区域为所述第二存储区域中的存储区域;所述方法还包括:将所述待存储数据的元数据存储至所述第一存储区域中。可选的,所述第二存储区域包括若干个存储空间大小为第一数值的子存储区域,则所述获取所述待存储数据在存储器中的起始地址,包括:获取所述第二存储区域中最近存储数据的子存储区域的起始地址;将所述最近存储数据的子存储区域的起始地址加上所述第一数值,得到所述待存储数据在所述存储器中的起始存储地址。可选的,若所述待存储数据所占存储区域的大小,小于或者等于所述第一数值,所述将所述待存储数据存储至所述待存储数据对应的存储区域中,包括:将所述待存储数据存储至包括所述起始存储地址的子存储区域中。可选的,若所述待存储数据所占存储空间的大小,大于所述第一数值,所述方法还包括:将所述待存储数据划分成第一数目个所占存储空间大小为第一数值的第一待存储数据和第二数目个所占存储空间大小小于所述第一数值的第二存储数据;其中,所述第一数目为正整数,所述第二数目等于1或者0;将所述第一待存储数据和所述第二待存储数据分别存储至相应的存储区域中。可选的,所述待存储数据包括:视频监控系统监控得到的视频数据。可选的,所述视频监控系统中监控的视频数据的元数据还包括:所述视频数据对应的时间。第二方面,本申请实施例提供了一种数据存储装置,包括:获取单元,用于获取待存储数据的元数据,所述元数据包括:所述待存储数据在存储器中的起始存储地址,以及所述待存储数据所占的存储空间的大小;确定单元,用于根据所述元数据确定所述待存储数据在所述存储器中的存储区域;第一存储单元,用于将所述待存储数据存储至所述待存储数据对应的存储区域中。可选的,所述存储器中包括第一存储区域和第二存储区域,所述待存储数据在所述存储器中的存储区域为所述第二存储区域中的存储区域;所述装置还包括:第二存储单元,用于将所述待存储数据的元数据存储至所述第一存储区域中。可选的,所述第二存储区域包括若干个存储空间大小为第一数值的子存储区域,则所述获取所述待存储数据在存储器中的起始地址,包括:获取所述第二存储区域中最近存储数据的子存储区域的起始地址;将所述最近存储数据的子存储区域的起始地址加上所述第一数值,得到所述待存储数据在存储器中的起始存储地址。可选的,若所述待存储数据所占存储区域的大小,小于或者等于所述第一数值,所述第一存储单元,具体用于:将所述待存储数据存储至包括所述起始存储地址的子存储区域中。可选的,若所述待存储数据所占存储空间的大小,大于所述第一数值,所述装置还包括:划分单元,用于将所述待存储数据划分成第一数目个所占存储空间大小为第一数值的第一待存储数据和第二数目个所占存储空间大小小于所述第一数值的第二存储数据;其中,所述第一数目为正整数,所述第二数目等于1或者0;第三存储单元,用于将所述第一待存储数据和所述第二待存储数据分别存储至相应的存储区域中。可选的,所述待存储数据包括:视频监控系统监控得到的视频数据。可选的,所述视频监控系统中监控的视频数据的元数据还包括:所述视频数据对应的时间。与现有技术相比,本申请实施例具有以下优点:本申请实施例提供的数据存储方法及装置,包括:获取待存储数据的元数据,其中,所述元数据包括:所述待存储数据在存储器中的起始存储地址,以及所述待存储数据所占的存储空间的大小,根据所述元数据确定所述待存储数据在所述存储器中的存储区域,将所述待存储数据存储至所述待存储数据对应的存储区域中。由此可见,采用本申请实施例提供的方案,在存储待存储数据之前,可以根据所述待存储数据在存储器中起始存储地址和所述待存储数据所占的存储空间的大小,确定存储该待存储数据的存储区域,而不是像现有技术中那样,随机为所述待存储数据分配存储区域。其中,该待存储数据在存储器中的起始位置,可以由存储器中已存储的数据所占的存储区域来确定。从而使得存储器中存储数据是连续存储的,从而有效减轻了磁盘碎片化问题。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本申请实施例提供的一种数据存储方法的流程示意图;图2为本申请实施例提供的一种数据存储方法的流程示意图;图3为本申请实施例提供的一种数据存储装置的结构示意图。具体实施方式为了使本
技术领域
:的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。本申请的发明人经过研究发现,文件系统例如文件分配表fat32和ntfs的磁盘碎片化问题比较严重,可能导致存储器使用一段时间之后该存储器就不能使用了,必须格式化存储器才能继续使用。其中,所谓磁盘碎片化是指文件在存储器中存储的位置并不连续,而分散地存于存储器中。而目前文件系统碎片化严重的一个原因之一是因为文件系统在存储待存储数据时,随机为数据分配存储区域,而不是结合当前存储器已存储的数据区域来确定待存储数据的存储区域。一方面,磁盘碎片化严重,会导致存储器的存储空间利用率比较低。另一方面,在存储器使用一段时间之后,用户可能需要及时格式化存储器,给用户带来不好的体验。为了解决上述问题,本申请实施例提供了一种数据存储方法及装置,包括:获取待存储数据的元数据,其中,所述元数据包括:所述待存储数据在存储器中的起始存储地址,以及所述待存储数据所占的存储空间的大小,根据所述元数据确定所述待存储数据在所述存储器中的存储区域,将所述待存储数据存储至所述待存储数据对应的存储区域中。由此可见,采用本申请实施例提供的方案,在存储待存储数据之前,可以根据所述待存储数据在存储器中起始存储地址和所述待存储数据所占的存储空间的大小,确定存储该待存储数据的存储区域,而不是像现有技术中那样,随机为所述待存储数据分配存储区域。其中,该待存储数据在存储器中的起始位置,可以由存储器中已存储的数据所占的存储区域来确定。从而使得存储器中存储数据是连续存储的,从而有效减轻了磁盘碎片化问题。下面结合附图,详细说明本申请的各种非限制性实施方式。示例性方法参见图1,该图为本申请实施例提供的一种数据存储方法的流程示意图。本申请实施例提供的数据存储方法,例如可以通过如下步骤s101-s103实现。s101:获取待存储数据的元数据,所述元数据包括所述待存储数据在存储器中的起始存储地址,以及所述待存储数据所占的存储空间的大小。需要说明的是,本申请实施例不具体限定所述待存储数据,作为一种示例,所述待存储数据可以为视频监控系统监控得到的视频数据。需要说明的是,所谓元数据是一种特殊的数据,是一种用于描述数据的数据。在本申请实施例中,所述待存储数据的元数据,可以理解成描述所述待存储数据的数据。需要说明的是,本申请实施例不具体限定所述元数据所占存储空间的大小,作为一种示例,所述元数据所占存储空间的大小例如可以为64字节。在本申请实施例中,所述待存储数据的元数据可以包括所述待存储数据在存储器中的起始存储地址,以及所述待存储数据所占的存储空间的大小。需要说明的是,本申请实施例中待存储数据在存储器中的起始存储地址,可以由所述存储器中已经存储的数据所占的存储区域确定,例如,可以由所述存储器中已经存储的数据所占的存储区域的结束地址确定。需要说明的是,本申请实施例不具体限定所述存储器,作为一种示例,所述存储器例如可以为硬盘。需要说明的是,考虑到实际应用中,将待存储数据存储至存储器中之后,可能需要将该待存储数据从存储器中读取出来,而待存储数据的元数据可以作为从存储器中查找该待存储数据的索引。因此,在本申请实施例的一种可能的实现方式中,获取所述元数据之后,还可以将所述元数据存储在所述存储器中。具体地,在本申请实施例的一种可能的实现方式中,可以将所述存储器划分成第一存储区域和第二存储区域,其中,所述第一存储区域用于存储所述存储器中所存储的数据的元数据,所述第二存储区域用于存储数据本身。也就是说,在本申请实施例中,获取所述待存储数据的元数据之后,即可将该元数据存储至所述第一存储区域中。所述待存储数据在所述存储器中的存储区域为所述第二存储区域中的存储区域。需要说明的是,本申请实施例不具体限定所述第一存储区域和所述第二存储区域的所占存储空间的大小,所述第一存储区域所占存储空间的大小例如可以结合元数据所占存储空间的大小以及存储器总存储空间的大小确定。作为一种示例,若存储器的存储空间为20g,则可以将存储器中前5m作为第一存储区域,除去第一存储区域之外的存储区域作为第二存储区域。可以理解的是,由于所述元数据包括所述待存储数据在存储器中的起始存储地址,以及所述待存储数据所占的存储空间的大小。因此,获取所述待存储数据的元数据,包括:获取所述待存储数据在所述存储器中的起始存储地址,以及所述待存储数据所占的存储空间的大小。本申请实施例不具体限定获取所述待存储数据在所述存储器中的起始存储地址的具体实现方式,如前文,待存储数据在存储器中的起始存储地址,可以由所述存储器中已经存储的数据所占的存储区域确定。鉴于此,在本申请实施例的一种可能的实现方式中,获取所述待存储数据在所述存储器中的起始地址在具体实现时,可以通过如下步骤a-b实现。步骤a:获取所述第二存储区域中最近存储数据的子区域的起始地址。步骤b:将所述最近存储数据的子区域的起始地址加上第一数值,得到所述待存储数据在存储器中的起始存储地址。关于步骤a和步骤b,需要说明的是,在本申请实施例中,可以将第二存储区域划分成若干个存储空间大小为第一数值的子存储区域,例如,将第二存储区域划分成若干个存储空间大小为128k的子存储区域。可以理解的是,一般来讲,数据是顺序存储到所述第二存储区域中的,因此,最近存储数据的子存储区域的起始地址比之前存储数据的子存储区域的起始地址大。因此,在本申请实施例的一种可能的实现方式中,步骤a在具体实现时,例如可以对存储器中的第二存储区域进行检索,确定第二存储区域中已存储数据的子存储区域,并将所述子存储区域中起始地址最大的起始地址,作为最近存储数据的子存储区域的起始地址。需要说明的是,本申请实施例也不具体限定获取所述待存储数据所占的存储空间的大小的具体实现方式。如前文,所述待存储数据可以为视频监控系统监控得到的视频数据。由于视频监控系统监控得到的视频数据可能需要实时存储,因此,所述获取待存储数据所占的存储空间的大小,可以利用对所述视频监控系统监控得到的视频数据的存储频率、以及该视频数据的参数等获取待存储数据所占存储空间的大小。s102:根据所述元数据确定所述待存储数据在所述存储器中的存储区域。需要说明的是,本申请实施例中提及的待存储数据在所述存储器中的存储区域,是指,以所述待存储数据在所述存储器中的起始地址为起始地址,且所占存储空间大小为所述待存储数据所占的存储空间的大小的存储区域。例如,所述待存储数据在存储器中的起始存储地址为55,所述待存储数据所占的存储空间的大小为10k,则所述待存储数据在所述存储器中的存储区域是指,以55为起始地址,且所占存储空间大小为10k的存储区域。s103:将所述待存储数据存储至所述待存储数据对应的存储区域中。如前文所述,在本申请实施例中,所述第二存储区域可以被划分为若干个存储空间大小为第一数值的子存储区域。在本申请实施例中,步骤s103在具体实现时,可以包含以下两种情况:第一种情况:若所述待存储数据所占存储区域的大小,小于或者等于所述第一数值,则直接将所述待存储数据存储至包括所述起始存储地址的子存储区域中。第二种情况:若所述待存储若所述待存储数据所占存储空间的大小,大于所述第一数值,则将所述待存储数据划分成第一数目个所占存储空间大小为第一数值的第一待存储数据和第二数目个所占存储空间大小小于所述第一数值的第二存储数据;其中,所述第一数目为正整数,所述第二数目等于1或者0;将所述第一待存储数据和所述第二待存储数据分别存储至相应的存储区域中。需要说明的是,在本申请实施例中,将所述第一待存储数据存储至相应的存储区域中,在具体实现时,可以利用以上所述步骤a-b所述的方法获取所述第一待存储数据在所述存储器中的起始存储地址,然后将所述第一待存储数据存储至包括第一待存储数据在所述存储器中的起始存储地址的子存储区域中。类似地,将所述第二待存储数据存储至相应的存储区域中,在具体实现时,可以利用以上所述步骤a-b所述的方法获取所述第二待存储数据在所述存储器中的起始存储地址,然后将所述第二待存储数据存储至包括第二待存储数据在所述存储器中的起始存储地址的子存储区域中。如前文,所述待存储数据可以为视频监控系统监控得到的视频数据。而从存储器中读取所述视频监控系统监控得到的视频数据时(例如,回放监控视频时),需要借助时间来读取相应的视频数据。而待存储数据的元数据可以作为从存储器中查找该待存储数据的索引。因此,在本申请实施例的一种可能的实现方式中,若所述待存储数据为视频监控系统监控得到的视频数据,则视频监控系统中监控的视频数据的元数据除了包括所述视频数据在所述存储器中的起始存储地址和所述视频数据所占的存储空间的大小之外,还可以包括:所述视频数据对应的时间。由此可见,采用本申请实施例提供的数据存储方法,在存储待存储数据之前,可以根据所述待存储数据在存储器中起始存储地址和所述待存储数据所占的存储空间的大小,确定存储该待存储数据的存储区域,而不是像现有技术中那样,随机为所述待存储数据分配存储区域。其中,该待存储数据在存储器中的起始位置,可以由存储器中已存储的数据所占的存储区域来确定。从而使得存储器中存储数据是连续存储的,从而有效减轻了磁盘碎片化问题。以上对本申请实施例提供的数据存储方法进行了介绍,以下结合具体场景对该方法进行介绍。在该场景中,存储器的大小为10g,划分为两个存储区域,其中第一存储区域所占的存储空间的大小为5m,第二存储区域所占的存储空间的大小为(10g-5m)。其中,第一存储区域对应的存储地址为0-a,第二存储区域对应的存储地址为(a+1)-b。其中,第二存储区域被划分为若干个存储空间大小为128k的子存储区域。可以理解的是,各个子存储区域的地址例如可以为【(a+1)-(a+128)】、【(a+129)-(a+256)】、【(a+257)-(a+384)】……等等。参见图2,该图为本申请实施例提供的一种数据存储方法的流程示意图。本实施例提供的数据存储方法,例如可以通过如下步骤s201-s204实现。s201:获取待存储数据的起始存储地址为128,并获取所述待存储数据所占的存储空间的大小为200k。s202:将所述待存储数据划分成一个所占存储空间大小为128k的第一待存储数据,和一个所占存储空间大小为72k的第二待存储数据。s203:将所述第一待存储数据存储至包括存储地址128的子存储区域中。s204:确定所述第二待存储数据在所述存储器中的起始地址为256,将所述第二待存储数据存储至包括存储地址256的子存储区域中。需要说明的是,图2所示只是对本申请实施例的一种示例性说明,并不构成对本申请实施例的限定。示例性设备基于以上方法实施例提供的数据存储方法,本申请实施例还提供了一种数据存储装置,以下结合附图对该装置进行介绍。参见图3,该图为本申请实施例提供的一种数据存储装置的结构示意图。本申请实施例提供的数据存储装置300,例如可以具体包括:获取单元310、确定单元320和第一存储单元330。获取单元310,用于获取待存储数据的元数据,所述元数据包括:所述待存储数据在存储器中的起始存储地址,以及所述待存储数据所占的存储空间的大小;确定单元320,用于根据所述元数据确定所述待存储数据在所述存储器中的存储区域;第一存储单元330,用于将所述待存储数据存储至所述待存储数据对应的存储区域中。可选的,所述存储器中包括第一存储区域和第二存储区域,所述待存储数据在所述存储器中的存储区域为所述第二存储区域中的存储区域;所述装置300还包括:第二存储单元,用于将所述待存储数据的元数据存储至所述第一存储区域中。可选的,所述第二存储区域包括若干个存储空间大小为第一数值的子存储区域,则所述获取所述待存储数据在存储器中的起始地址,包括:获取所述第二存储区域中最近存储数据的子存储区域的起始地址;将所述最近存储数据的子存储区域的起始地址加上第一数值,得到所述待存储数据在存储器中的起始存储地址。可选的,若所述待存储数据所占存储区域的大小,小于或者等于所述第一数值,所述第一存储单元330,具体用于:将所述待存储数据存储至包括所述起始存储地址的子存储区域中。可选的,若所述待存储数据所占存储空间的大小,大于所述第一数值,所述装置300还包括:划分单元,用于将所述待存储数据划分成第一数目个所占存储空间大小为第一数值的第一待存储数据和第二数目个所占存储空间大小小于所述第一数值的第二存储数据;其中,所述第一数目为正整数,所述第二数目等于1或者0;第三存储单元,用于将所述第一待存储数据和所述第二待存储数据分别存储至相应的存储区域中。可选的,所述待存储数据包括:视频监控系统监控得到的视频数据。可选的,所述视频监控系统中监控的视频数据的元数据还包括:所述视频数据对应的时间。由于所述装置300是与以上方法实施例提供的数据存储方法对应的装置,因此,关于所述装置的各个单元的具体实现,可以参考以上方法实施例的描述部分,此处不再赘述。由此可见,采用本申请实施例提供的数据存储装置,在存储待存储数据之前,可以根据所述待存储数据在存储器中起始存储地址和所述待存储数据所占的存储空间的大小,确定存储该待存储数据的存储区域,而不是像现有技术中那样,随机为所述待存储数据分配存储区域。其中,该待存储数据在存储器中的起始位置,可以由存储器中已存储的数据所占的存储区域来确定。从而使得存储器中存储数据是连续存储的,从而有效减轻了磁盘碎片化问题。本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本公开未公开的本
技术领域
:中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1