数据存储方法及装置制造方法及图纸

技术编号:9667608 阅读:135 留言:0更新日期:2014-02-14 05:43
本发明专利技术的实施例提供一种数据存储方法及装置,提高数据存储的成功率和存储空间的利用率。该方法包括:获取各个存储单元各自已存储逻辑数据的实际份数的总和;计算各个存储单元各自的存储能力以及各个存储单元的总存储能力;根据各个存储单元各自的存储能力与总存储能力的比值,获取各个存储单元的目标逻辑数据比例;根据所述各个存储单元各自已存储逻辑数据的实际份数的总和与各个存储单元各自的目标逻辑数据比例,确定各个存储单元各自需存储逻辑数据的目标份数;根据各个存储单元各自已存储逻辑数据的实际份数以及需存储逻辑数据的目标份数,在各个存储单元之间进行逻辑数据的迁移。

【技术实现步骤摘要】
数据存储方法及装置
本专利技术涉及计算机
,尤其涉及一种数据存储方法及装置。
技术介绍
现有技术中,将数据存储到各个存储单元的实现过程为:首先,将待存储数据通过哈希运算散列到N个逻辑区域中,每个逻辑区域中的数据称之为一份逻辑数据,总共可以得出N份逻辑数据。然后,将N份逻辑数据按照存储单元的个数进行均分,并存储到各个存储单元,亦即每个存储单元存储的逻辑数据的份数相同。不同存储单元的格式化单位不同,会使得相同容量的存储单元的存储能力也不相同。例如,存储单元A和存储单元B的容量均为1MB,其中,存储单元A的格式化单位为1KB,亦即,该存储单元A的最小存储单位为1KB,那么存储单元A的存储能力为1MB/1KB=1024,亦即,存储单元A最大可以存储1024份逻辑数据;存储单元B的格式化单位为4KB,亦即该存储单元B的最小存储单位为4KB,那么存储单元B的存储能力为1MB/4KB=256,亦即,存储单元B最大可以存储256份逻辑数据。然而,在采用上述方法存储数据到各个存储单元(各个存储单元的容量相同)时,由于每个存储单元存储的逻辑数据的份数相同,一方面,会导致部分存储能力小的存储单元发生数据溢出,导致存储失败,另一方面,部分存储能力大的存储单元则出现存储空间闲置,导致存储资源浪费。
技术实现思路
本专利技术的实施例提供一种数据存储方法及装置,提高数据存储的成功率和存储空间的利用率。为达到上述目的,本专利技术的实施例采用如下技术方案:一方面,提供一种数据存储方法,其特征在于,包括:获取各个存储单元各自已存储逻辑数据的实际份数的总和;计算各个存储单元各自的存储能力以及各个存储单元的总存储能力;根据各个存储单元各自的存储能力与总存储能力的比值,获取各个存储单元的目标逻辑数据比例;根据所述各个存储单元各自已存储逻辑数据的实际份数的总和与各个存储单元各自的目标逻辑数据比例,确定各个存储单元各自需存储逻辑数据的目标份数;根据各个存储单元各自已存储逻辑数据的实际份数以及需存储逻辑数据的目标份数,在各个存储单元之间进行逻辑数据的迁移。另一方面,提供一种数据存储装置,其特征在于,包括:获取模块,用于获取各个存储单元各自已存储逻辑数据的实际份数的总和;计算模块,用于计算各个存储单元各自的存储能力以及各个存储单元的总存储能力;所述获取模块,还用于根据各个存储单元各自的存储能力与总存储能力的比值,获取各个存储单元的目标逻辑数据比例;确定模块,用于根据所述各个存储单元各自已存储逻辑数据的实际份数的总和与各个存储单元各自的目标逻辑数据比例,确定各个存储单元各自需存储逻辑数据的目标份数;控制模块,用于根据各个存储单元各自已存储逻辑数据的实际份数以及需存储逻辑数据的目标份数,在各个存储单元之间进行逻辑数据的迁移。由上述技术方案所描述的本专利技术实施例中,在各个存储单元已经存储了逻辑数据时,通过根据所述各个存储单元各自已存储逻辑数据的实际份数的总和与各个存储单元各自的目标逻辑数据比例,确定各个存储单元各自需存储逻辑数据的目标份数,所述各个存储单元按照各自需存储逻辑数据的目标份数存储逻辑数据时,使得所述各个存储单元的存储率一致;并根据各个存储单元各自已存储逻辑数据的实际份数以及需存储逻辑数据的目标份数,在各个存储单元之间进行逻辑数据的迁移,使得各个存储单元各自最终存储的逻辑数据份数达到各自需存储逻辑数据的目标份数。亦即,通过在各个已经存储有逻辑数据的存储单元之间调整数据,使得当各个存储单元各自最终存储的逻辑数据份数达到各自需存储逻辑数据的目标份数,从而实现各个存储单元的使用率达到一致。本专利技术实施例实现各个存储单元的使用率达到一致,可以有效避免现有技术中由于每个存储单元存储的逻辑数据的份数相同,一方面,会导致部分存储能力小的存储单元发生数据溢出,导致存储失败,另一方面,部分存储能力大的存储单元则出现存储空间闲置,导致存储资源浪费的问题,从而提高数据存储的成功率和存储空间的利用率。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例1提供的一种数据存储方法的流程图;图2为本专利技术实施例1提供的一种数据存储方法中步骤105的实现流程图;图3为本专利技术实施例1提供的一种数据存储方法中步骤1051的实现流程图;图4为采用本实施例1提供的方法对数据调整前的各个存储单元的数据存储示意图;图5为采用本实施例1提供的方法对数据调整后的各个存储单元的数据存储示意图;图6为本专利技术实施例2提供的一种数据存储方法的流程图;图7为本专利技术实施例3提供一种数据存储装置的结构图;图8为本专利技术实施例3提供一种数据存储装置中控制模块14的实现结构图;图9为本专利技术实施例3提供一种数据存储装置中确定子模块141的实现结构图;图10为本专利技术实施例3提供另一种数据存储装置的结构图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。实施例1:本实施例的一种可能的应用场景为:各个存储单元已经存储有逻辑数据,所采用的数据存储方式,可以与现有技术中相同。例如,存储时,将待存储数据通过哈希运算散列到N个逻辑区域中,每个逻辑区域中的数据称之为一份逻辑数据,总共可以得出N份逻辑数据。然后,将N份逻辑数据按照存储单元的个数进行均分,并存储到各个存储单元。然而,采用现有方法存储数据后,会存在由于每个存储单元存储的逻辑数据的份数相同,但是存储使用率不同,一方面,会导致部分存储能力小的存储单元发生数据溢出,导致存储失败,另一方面,部分存储能力大的存储单元则出现存储空间闲置,导致存储资源浪费的缺陷。下面,将具体介绍如何通过本专利技术实施例提供的方法对已经存储有逻辑数据的存储单元进行数据调整,使得调整后的各个存储单元的存储使用率达到一致,进而有效避免上述缺陷。如图1所示,本专利技术实施例提供一种数据存储方法,包括:101、获取各个存储单元各自已存储逻辑数据的实际份数的总和。本文中,各个存储单元存储的逻辑数据按照份数进行计量,每份逻辑数据的大小相同。例如,每份逻辑数据均为1K,或者他容量大小。该各个存储单元可以位于内存中,各个存储单元的容量大小及个数可以由技术人员根据应用需要进行设定。102、计算各个存储单元各自的存储能力以及各个存储单元的总存储能力。本步骤中计算各个存储单元各自的存储能力的一种实现方式为:计算各个存储单元各自可存储逻辑数据的最大份数。具体为,使用存储单元的容量除于该存储单元的格式化单位。例如,存储单元A的容量为1MB,存储单元A的格式化单位为1KB,那么存储单元A的可存储逻辑数据的最大份数(亦即存储单元A的存储能力)为1MB/1KB=1024份。本步骤中计算各个存储单元各自的存储能力的另一种实现方式为:计算各个存储单元各自已存储逻辑数据的份数与当前使用率的比值。其中,存本文档来自技高网...
数据存储方法及装置

【技术保护点】
一种数据存储方法,其特征在于,包括:获取各个存储单元各自已存储逻辑数据的实际份数的总和;计算各个存储单元各自的存储能力以及各个存储单元的总存储能力;根据各个存储单元各自的存储能力与总存储能力的比值,获取各个存储单元的目标逻辑数据比例;根据所述各个存储单元各自已存储逻辑数据的实际份数的总和与各个存储单元各自的目标逻辑数据比例,确定各个存储单元各自需存储逻辑数据的目标份数;根据各个存储单元各自已存储逻辑数据的实际份数以及需存储逻辑数据的目标份数,在各个存储单元之间进行逻辑数据的迁移。

【技术特征摘要】
1.一种数据存储方法,其特征在于,包括:获取各个存储单元各自已存储逻辑数据的实际份数的总和;计算各个存储单元各自的存储能力以及各个存储单元的总存储能力;所述计算各个存储单元各自的存储能力包括:计算各个存储单元各自可存储逻辑数据的最大份数;或者,计算各个存储单元各自已存储逻辑数据的份数与当前使用率的比值;根据各个存储单元各自的存储能力与总存储能力的比值,获取各个存储单元的目标逻辑数据比例;根据所述各个存储单元各自已存储逻辑数据的实际份数的总和与各个存储单元各自的目标逻辑数据比例,确定各个存储单元各自需存储逻辑数据的目标份数;根据各个存储单元各自已存储逻辑数据的实际份数以及需存储逻辑数据的目标份数,在各个存储单元之间进行逻辑数据的迁移。2.根据权利要求1所述的方法,其特征在于,根据各个存储单元各自已存储逻辑数据的实际份数以及需存储逻辑数据的目标份数,在各个存储单元之间进行逻辑数据的迁移,包括:根据各个存储单元各自已存储逻辑数据的实际份数和各自需存储逻辑数据的目标份数在所述各个存储单元中确定各个待写入存储单元及其各自需要写入逻辑数据的份数,并确定各个待读出存储单元及其各自需要读出并擦除逻辑数据的份数;其中,各个存储单元各自需存储逻辑数据的目标份数的总和与所述各个存储单元各自已存储逻辑数据的实际份数的总和相等,且各个待读出存储单元各自需要读出并擦除逻辑数据的份数的总和与各个待写入存储单元各自需要写入逻辑数据的份数的总和相等;从各个待读出存储单元中按照各自需要读出并擦除逻辑数据的份数读出并擦除逻辑数据,在各个待写入存储单元中按照各自需要写入逻辑数据的份数将所述读出的逻辑数据写入,使得各个存储单元各自最终存储的逻辑数据份数达到各自需存储逻辑数据的目标份数。3.根据权利要求1或2所述的方法,其特征在于:根据确定各个存储单元各自需存储逻辑数据的目标份数,其中,Gi为第i个存储单元需存储逻辑数据的目标份数,T为所述各个存储单元各自已存储逻辑数据的实际份数的总和,Qi为第i个存储单元的存储能力,n为存储单元的总个数,||表示取整。4.根据权利要求3所述的方法,其特征在于,还包括:当各个存储单元各自需存储逻辑数据的目标份数的总和与所述各个存储单元各自已存储逻辑数据的实际份数的总和不相等时,按照存储能力从大到小的顺序对各个存储单元各自需存储逻辑数据的目标份数进行调整,使得各个存储单元各自需存储逻辑数据的目标份数的总和与所述各个存储单元各自已存储逻辑数据的实际份数的总和相等。5.根据权利要求2所述的方法,其特征在于,所述根据各个存储单元各自已存储逻辑数据的实际份数和各自需存储逻辑数据的目标份数在所述各个存储单元中确定各个待写入存储单元及其各自需要写入逻辑数据的份数,并确定各个待读出存储单元及其各自需要读出并擦除逻辑数据的份数包括:将各个存储单元各自已存储逻辑数据的实际份数减去各自需存储逻辑数据的目标份数,得到各个存储单元各自对应的差值,所述差值表示存储单元中需要写入逻辑数据的份数或者需要读出并擦除逻辑数据的份数;当所述存储单元对应的差值小于零时,确定所述存储单元为待写入存储单元,所述待写入存储单元需要写入逻辑数据,且需要写入逻辑数据的份数为所述差值的绝对值;当所述存储单元对应的差值等于零时,确定所述存储单元无需执行写入或读出操作;当所述存储单元对应的差值大于零时,确定所述存储单元为待读出存储单元,所述待读出存储单元需要读出并擦除逻辑数据,且需要读出并擦除逻辑数据的份数为所述差值。6.根据权利要求2所述的方法,其特征在于,还包括:按照各个待读出存储单元各自需要读出并擦除逻辑数据的份数和各个待写入存储单元各自需要写入逻辑数据的份数生成数据搬迁计划表,所述数据搬迁计划表用于记录从哪些待读出存储单元读出并擦除多少份的逻辑数据,并写入哪些待写入存储单元及写入逻辑数据的份数,其中,所述各个存储单元按照所述数据搬迁计划表执行逻辑数据的读出和写入后,使得所述各个存储单元各自最终存储的逻辑数据份数达到各自需存储逻辑数据的目标份数;所述从各个待读出存储单元中按照各自需要读出并擦除逻辑数据的份数读出并擦除逻辑数据,在各个待写入存储单元中按照各自需要写入逻辑数据的份数将所述读出的逻辑数据写入具体为:按照所述搬迁计划表从各个待读出存储单元中按照各自需要读出并擦除逻辑数据的份数读出并擦除逻辑数据,在各个待写入存储单元中按照各自需要写入逻辑数据的份数将所述读出的逻辑数据写入。7.一种数据存储装置,其特征在于,包括:获取模块,用于获取...

【专利技术属性】
技术研发人员:张礼方钟超宇黄春刚曾凯源
申请(专利权)人:深圳市腾讯计算机系统有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1