一种数据存储方法、装置、电子设备及存储介质制造方法及图纸

技术编号:34474269 阅读:65 留言:0更新日期:2022-08-10 08:49
本公开提供了一种数据存储方法、装置、电子设备及存储介质,涉及数据库技术领域,尤其涉及数据存储技术领域。具体实现方案为:将待存储数据拆分为N个数据块;对该N个数据块进行编码,得到N+M个第一副本;将该N+M个第一副本中的各个第一副本分别写入N+M个第一存储空间,每个第一存储空间中存储一个第一副本;在该N+M个第一存储空间被写满的情况下,选取该N+M个第一存储空间中的X个第一存储空间,将该X个第一存储空间中的第一副本迁移至X个第二存储空间,并将该X个第一存储空间回收;其中,N和M为正整数,X为小于或等于M的正整数。本公开提出的数据存储方法能够便于数据读写。出的数据存储方法能够便于数据读写。出的数据存储方法能够便于数据读写。

【技术实现步骤摘要】
一种数据存储方法、装置、电子设备及存储介质


[0001]本公开涉及数据库
,尤其涉及数据存储


技术介绍

[0002]在数据存储领域中,有时会采用混合存储方案,即存储系统中使用两种或多种不同的存储介质。混合存储方案常规的做法是部署两套存储集群,每套集群使用其中一种存储介质,然后将全部数据分为两个互斥的集合,并分别存储到两套存储集群中。由于数据被保存在不同的存储集群中,在读写数据时首先需要判断集群,这就导致读写数据不方便。

技术实现思路

[0003]本公开提供了一种数据存储方法、装置、设备以及存储介质。
[0004]根据本公开的一方面,提供了一种数据存储方法,包括:
[0005]将待存储数据拆分为N个数据块;
[0006]对所述N个数据块进行编码,得到N+M个第一副本;
[0007]将所述N+M个第一副本中的各个第一副本分别写入N+M个第一存储空间,每个所述第一存储空间中存储一个所述第一副本;
[0008]在所述N+M个第一存储空间被写满的情况下,选取所述N+M个第一存储空间中的X个第一存储空间,将所述X个第一存储空间中的第一副本迁移至X个第二存储空间,并将所述X个第一存储空间回收;
[0009]其中,所述N和M为正整数,所述X为小于或等于M的正整数。
[0010]根据本公开的另一方面,提供了一种数据存储装置,包括:
[0011]编码模块,用于将待存储数据拆分为N个数据块;对所述N个数据块进行编码,得到N+M个第一副本;/>[0012]写入模块,用于将所述N+M个第一副本中的各个第一副本分别写入N+M个第一存储空间,每个所述第一存储空间中存储一个所述第一副本;
[0013]迁移模块,用于在所述N+M个第一存储空间被写满的情况下,选取所述N+M个第一存储空间中的X个第一存储空间,将所述X个第一存储空间中的第一副本迁移至X个第二存储空间,并将所述X个第一存储空间回收;
[0014]其中,所述N和M为正整数,所述X为小于或等于M的正整数。
[0015]根据本公开的另一方面,提供了一种电子设备,包括:
[0016]至少一个处理器;以及
[0017]与该至少一个处理器通信连接的存储器;其中,
[0018]该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行本公开中任一实施例的方法。
[0019]根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,该计算机指令用于使该计算机执行根据本公开中任一实施例的方法。
[0020]根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现根据本公开中任一实施例的方法。
[0021]本公开提出的数据存储方法能够便于数据读取。
[0022]应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
[0023]附图用于更好地理解本方案,不构成对本公开的限定。其中:
[0024]图1是一种混合存储方式示意图;
[0025]图2是本公开的一种应用场景示意图;
[0026]图3是根据本公开一实施例的数据存储方法300的实现流程图;
[0027]图4是采用本公开一实施例的数据存储方法进行数据存储的示意图;
[0028]图5是根据本公开一实施例的数据存储装置500的结构示意图;
[0029]图6是根据本公开另一实施例的数据存储装置600的结构示意图;
[0030]图7是根据本公开一实施例的电子设备700的结构框图。
具体实施方式
[0031]以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0032]混合存储是指存储系统中使用两种或多种不同的存储介质。以使用两种不同的存储介质为例,使用两种不同的存储介质实现混合存储的常规做法是部署两套存储集群,每套集群使用一种存储介质,然后将全部数据分为两个互斥的集合,并分别存储到两套存储集群中。图1是混合存储方式示意图。如图1所示,存储系统中部署两套集群,即集群A和集群B,集群A和集群B分别使用存储介质A(简称介质A)和存储介质B(简称介质B)。数据是上游业务按某种规则拆分成两个互斥的集合,并存储到两个相互隔离的集群中去的。写数据时,需要先判断数据应该存储到哪个集群,然后再执行写操作;读数据时,也需要先判断数据存储在哪个集群,然后再执行读操作,这就导致读写数据不方便、效率较低。
[0033]图2是本公开的一种应用场景示意图。如图2所示,该应用场景可以包括终端210和数据存储服务器220,该终端210与该数据存储服务器220之间通过网络连接,终端210可以与数据存储服务器220进行交互和数据传输,终端210可以将待存储的数据上传至数据存储服务器220,数据存储服务器220对该数据进行存储,终端210也可以向数据存储服务器220发送下载请求,请求下载存储在数据存储服务器220中的数据,数据存储服务器220可以根据下载请求将指定的数据传输给终端210。
[0034]其中,该数据存储服务器220可以为服务器集群,或者是该服务器集群中的任一服务器,或者是服务器中的任一功能模块,或者是服务器中的任一存储空间,本专利技术实施例对此不做限定。该终端可以是移动终端,也可以是计算机终端。
[0035]本公开提出一种数据存储方法,可以基于键值对(K

V,Key

Value)存储系统的多
副本存储架构,将不同的副本存储在不同的存储介质中,从而在一套系统中实现基于两种异构存储介质的混合存储系统。
[0036]本公开提出的数据存储方法可以基于数据存储技术中的冗余保护技术。一个简单的冗余保护方式例如,将一个数据复制成多份完全一样的副本,并将各个副本分别存放在多个不同存储节点上。例如,将数据A复制为3份,分别存放在节点1、3、4上,这三个节点是在整个集群中随机选择的。多副本技术的数据保护效果明显,例如,如果一个节点出现故障导致数据丢失,其他节点上仍然保存有数据A。
[0037]目前,存在多种编码技术实现对数据的冗余保护。以纠删码(EC,Erasure Code)编码为例,EC编码能够通过计算并保存冗余块的方式实现数据冗余保护。
[0038]例如,在分布式存储系统在写入数据时,将数据切分为N个数据块(N为正整数,一般为偶数),通过EC编码算法计算得到M个冗余块(M为正整数,如M取值为2、3或4)。数据块和冗余块可以统称为本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种数据存储方法,包括:将待存储数据拆分为N个数据块;对所述N个数据块进行编码,得到N+M个第一副本;将所述N+M个第一副本中的各个第一副本分别写入N+M个第一存储空间,每个所述第一存储空间中存储一个所述第一副本;在所述N+M个第一存储空间被写满的情况下,选取所述N+M个第一存储空间中的X个第一存储空间,将所述X个第一存储空间中的第一副本迁移至X个第二存储空间,并将所述X个第一存储空间回收;其中,所述N和M为正整数,所述X为小于或等于M的正整数。2.根据权利要求1所述的方法,其中,所述N表示所述编码对应的数据块个数,所述M表示所述编码对应的冗余个数。3.根据权利要求1或2所述的方法,其中,所述X根据以下至少之一确定:存储系统中包含的所述第一存储空间的数量;所述第一存储空间的故障概率;所述第一存储空间的平均故障修复时间;所述存储系统的故障容忍度。4.根据权利要求1至3中任一所述的方法,其中,所述在所述N+M个第一存储空间被写满的情况下,选取所述N+M个第一存储空间中的X个第一存储空间,包括:在所述第一存储空间被写满的情况下,关闭所述第一存储空间的写操作。5.根据权利要求1至4中任一所述的方法,其中,所述在所述N+M个第一存储空间被写满的情况下,选取所述N+M个第一存储空间中的X个第一存储空间,包括:扫描存储系统中的各个所述第一存储空间,在检测到所述N+M个第一存储空间的写操作被关闭的情况下,按照预定规则选取所述N+M个第一存储空间中的X个第一存储空间。6.根据权利要求1至5中任一所述的方法,还包括:删除所述第一存储空间中的所述第一副本,回收所述第一存储空间中的空闲空间;在被回收的所述空闲空间与所述第一存储空间的初始容量的比值大于或等于预定门限的情况下,将所述第一存储空间中剩余的第一副本重新进行编码,得到N+M个第二副本,并删除所述第一存储空间所对应的第二存储空间中的第一副本;其中,所述第一存储空间所对应的第二存储空间中保存的第一副本与所述第一存储空间中保存的第一副本由相同的数据块编码得到;将所述N+M个第二副本分别写入N+M个第一存储空间。7.根据权利要求1至6中任一所述的方法,其中,所述编码包括纠删码EC编码。8.根据权利要求1至7中任一所述的方法,其中,所述第一存储空间包括磁盘存储空间,所述第二存储空间包括磁带存储空间。9.一种数据存储装置,包括:编码模块,用于将待存储数据拆分为N个数据块;对所述N个数据块进行编码,得到N+M个第一副本;写入模块,用于将所述N+M个第一副本中的各个第一副本分别写入N+M个第一存储空间,每个所述第一存储空间中存储一个所述第一副本;
迁移模块,用于在所述N...

【专利技术属性】
技术研发人员:李磊
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:

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

1