【技术实现步骤摘要】
数据处理方法和系统及装置
本专利技术涉及计算领域,并且更具体地,涉及一种数据处理方法和系统及装置。
技术介绍
随着内存价格的下降,分布式内存存储系统广泛应用于分布式运算系统中,用于存储热数据,其中键值(key-Value,KV)对存储是使用最为广范的数据存储方式,当前主流的商用的产品有Memcached,Redis,RAMCloud等,在Twitter、Facebook以Amazon的数据存储系统中有商业化应用。分布式内存存储系统的主流容错方法主要是全备份方案,其方式是将一份数据整体复制到不同的设备上,当部分设备失效时,可以使用备份在其他未失效的设备上的备份数据来恢复失效设备中的数据。这种实现方案简单可靠,但存在较大的数据冗余,至少需要两份以上的备份。而且为保证数据一致性,修改数据时的效率不高。另外一种容错方案是纠删码编码(ErasureCoding,EC)容错方案,使用纠删码技术,对数据编码,得到纠删码(Parity),纠删码的长度一般会小于原数据,通过将原数据和纠删码分布到不同的多个设备上,当部分设备失效时,可以通过部分的原数据和部分的纠删码恢复完整的数据,这 ...
【技术保护点】
一种数据管理方法,其特征在于,包括:对预定大小的数据块进行编码,生成与所述数据块对应的纠错数据块,其中,所述数据块包括数据对象,其中所述数据对象包括,关键字,值,以及元数据;生成数据块索引以及数据对象索引,所述数据块索引用于索引所述数据块及与所述数据块对应的纠错数据块,所述数据对象索引用于在所述数据块中索引所述数据对象,其中,每个数据对象索引用于索引唯一一个数据对象。
【技术特征摘要】
1.一种数据管理方法,其特征在于,包括:对预定大小的数据块进行编码,生成与所述数据块对应的纠错数据块,其中,所述数据块包括数据对象,其中所述数据对象包括,关键字,值,以及元数据;生成数据块索引以及数据对象索引,所述数据块索引用于索引所述数据块及与所述数据块对应的纠错数据块,所述数据对象索引用于在所述数据块中索引所述数据对象,其中,每个数据对象索引用于索引唯一一个数据对象。2.根据权利要求1的数据管理方法,其特征在于:在所述对预定大小的数据块进行编码,生成与所述数据块对应的纠错数据块,之前,所述方法还包括:将所述数据对象存储在所述预定大小的数据块中,其中,所述预定大小的数据块位于第一存储设备中;对应,在所述步骤:对预定大小的数据块进行编码,生成与所述数据块对应的纠错数据块,之后,所述方法还包括:将所述的纠错数据存储在第二存储设备中,所述第一存储设备与第二存储设备位于分布式存储系统中的不同位置。3.根据权利要求2所述的数据管理方法,其特征在于:所述的数据块索引包括:条带列表ID,条带ID,以及位置信息,所述的条带列表ID用于唯一确定所述分布式存储系统中多个存储设备分组中的一个存储设备分组,其中所述的存储设备分组包括多个第一设备及多个第二设备;所述条带ID用于确定在所述条带列表ID所指示的存储设备分组中存储所述数据块以及与所述数据块对应的纠错数据块的操作序号;所述位置信息用于确定所述数据块在所述条带列表ID所确定的存储设备分组中哪一个第一存储设备中,以及所述纠错数据块在所述条带列表ID所确定的存储设备分组中哪一个第二存储设备中。4.根据权利要求3所述的数据管理方法,其特征在于:所述生成数据块索引以及数据对象索引,具体包括:在所述第一存储设备中生成数据块索引以及数据对象索引;以及在所述第二存储设备中生成所述数据块索引以及所述数据对象索引。5.根据权利要求2至4任意一项所述的数据管理方法,其特征在于:在将所述数据对象存储在所述预定大小的数据块中,其中,所述预定大小的数据块位于第一存储设备中,之前,所述方法还包括:选择一个第一存储设备,以及一个或者多个第二存储设备;将所述数据对象分别发送给所述第一存储设备,以及所述第二存储设备。6.根据权利要求5所述的数据管理方法,其特征在于:所述第一存储设备将所述数据对象存储在所述数据块内,当所述数据块内的数据对象的大小接近或者等于所述数据块的存储限值时,停止向所述数据块写入新数据对象,并将所述数据块内的所存储的所有的数据对象的Key值发送给所述第二存储设备;所述第二存储设备接收所述所述第一存储设备发送的所述数据块内的所有数据对象的Key值,并根据所述数据对象的Key值在所述第二存储设备内重建所述数据块,对重建的所述数据块进行所述的编码。7.根据权利要求5所述的数据管理方法,其特征在于:当所述数据块内包含多个数据对象时,所述方法还包括:判断待存储的数据对象是否小于阈值,并将小于阈值的所述待存储的数据对象作为可存储在所述数据块内的数据对象进行所述的存储以及编码。8.根据权利要求7所述的数据管理方法,其特征在于:所述方法还包括,以预定的时间间隔根据所述待存储的数据对象的平均大小,动态调整所述阈值。9.根据权利要求5所述的数据管理方法,其特征在于:所述分布式存储系统包括多个备选存储设备,对应的所述方法还包括:根据所述多个备选存储设备的负载情况,将负载最小的一个或者多个备选存储设备作为所述的一个或者多个第二存储设备。10.根据权利要求6所述的数据管理方法,其特征在于:所述第一存储设备将所述数据对象存储在所述数据块内,包括,当所述数据对象的尺寸大于所述数据块的存储空间的尺寸时,或者当所述数据对象的尺寸大于所述数据块中剩余的存储空间的尺寸时,将所述数据对象进行分割,将分割后的尺寸小于所述数据块的存储空间的尺寸或者小于所述数据块中剩余的存储空间的尺寸的分割数据对象存储在所述数据块内,并将数据块分割信息存储在所述被分割的数据对象的元数据中用于重新组合所述被分割的数据对象。11.一种数据管理方法,其特征在于包括:为待存储数据对象,选择一个存储节点,以及多个备份节点,所述存储节点和所述多个备份节点具有相同的条带列表ID;将所述待存储数据对象发送给所述存储节点及所述多个备份节点,所述数据对象包括元数据,关键字以及值;在所述存储节点内,所述待存储数据对象被存储在固定大小且未封盖的数据块中,所述待存储数据对象的数据索引信息被增加至数据索引中,所述数据索引包含所述数据块中所有的数据对象的数据索引信息,并生成数据块索引;在备份节点内,所述待存储数据对象被存储在临时缓冲区内;当所述待存储数据对象被存储在所述数据块内之后,若所述数据块内存储的所有数据对象的总数据尺寸接近所述数据块的存储限值时,所述所述数据块被封盖,所述被封盖的数据块内存储的所有数据对象的关键字列表被发送至所述备份节点,并为所述存储节点以及所述备份节点生成相同的条带ID;当所述备份节点接收所述关键字列表,根据所述关键字列表中的关键字从所述临时缓冲区中检索出与所述关键字对应的数据对象,根据所述数据对象重建与所述关键字列表对应的数据块,并对所述重建的数据块进行编码获得备份数据块,且,更新存储在所述备份节点且对应于所述被封盖的数据块的所述数据对象索引以及所述数据块索引。12.如权利要求11所述的数据管理方法,其特征在于,还包括:根据第一目标数据对象的关键字,查找所述第一目标数据对象以及所述第一目标数据对象所在的第一目标数据块,以及所述第一目标数据块所在的第一目标存储节点;将所述第一目标数据对象的更新值发送给所述第一目标存储节点;根据所述更新值对所述第一目标存储节内的所述第一目标数据对象的值进行更新,并将所述第一目标数据对象的更新值与所述第一目标数据对象的原始值之间的差值发送给与所述第一目标存储节点具有相同的条带ID的所有第一目标备份节点;若所述第一目标数据块未封盖,则根据所述关键字索引到存储在所述第一目标备份节点的缓冲区中的所述第一目标数据对象,并将所述差值与所述第一目标数据对象的原始值相加得到所述第一目标数据对象的更新值;若所述第一目标数据块已封盖,根据所述差值,更新所述多个第一目标备份节点内对应于所述第一目标数据块的第一目标备份数据块。13.如权利要求11或12所述的数据管理方法,其特征在于,还包括:根据所述第一目标数据对象的关键字查找所述第一目标数据对象以及所述第一目标数据对象所在的第一目标数据块,以及所述第一目标数据块所在的第一目标存储节点;发送删除所述第一目标数据对象的删除请求至所述第一目标存储节点;若所述第一目标数据块未封盖,删除第一目标存储节点内的所述第一目标数据对象,并发删除指令至所述第一目标备份节点删除存储在所述第一目标备份节点的缓冲区中的所述第一目标数据对象;若所述第一目标数据块已封盖,将所述第一目标存储节点内的所述第一目标数据对象的值设置为特殊值,同时将该特殊值与所述第一目标数据对象的原始值之间的差值发送给所述多个第一目标备份节点,使所述多个第一目标备份节点内的所述第一目标备份数据块根据所述差值进行更新,所述第一目标备份数据块与所述第一目标数据块相对应。14.如权利要求11至13的任意一种数据管理方法,其特征在于,还包括:为第二目标数据对象,选择一个第二目标存储节点以及多个第二目标备份节点,所述第二目标存储节点和所述多个第二目标备份节点具有相同的条带列表ID;发送所述第二目标数据对象至所述第二目标存储节点,当所述第二目标存储节点为故障存储节点时,所述第二目标数据对象被发送至协调管理器中,以使所述协调管理器获取与所述第二目标数据对象对应条带列表ID,并在具有与所述条带列表ID相同的条带列表ID的正常存储节点中确定一个作为第一临时存储节点,并指示将所述第二目标数据对象发送并存储至所述第一临时存储节点;将所述第二目标数据对象存储在所述第一临时存储节点内;当所述第二目标存储节点的故障排除后,将存储在所述第一临时存储节点内的所述第二目标数据对象迁移至排除故障后所述第二目标存储节点。15.如权利要求11至14的任意一种数据管理方法,其特征在于,还包括:发送请求所述第二目标数据对象的数据获取请求至所述第二目标存储节点,当所述第二目标存储节点为故障存储节点时,所述数据获取请求被发送至所述协调管理器中,以使所述协调管理器根据所述数据获取请求获取与所述第二目标数据对象对应条带列表ID,并在具有与所述条带列表ID相同的条带列表ID的正常存储节点中确定一个作为第二临时存储节点,并指示将所述数据获取请求发送至所述第二临时存储节点,使所述第二临时存储节点根据所述数据获取请求返回对应第二目标数据对象。16.如权利要求15的数据管理方法,其特征在于,所述使第二临时存储节点根据所述数据获取请求返回对应的第二目标数据对象,包括:若所述第二目标数据对象所在的第二数据块未被封盖,使所述第二临时存储节点发送数据请求至与所述第二目标存储节点对应的所述第二目标备份节点,使所述第二目标备份节点根据所述数据请求从其缓冲区中获取对应的第二目标数据对象,并将所述第二目标数据对象返回给所述第二临时存储节点并由所述第二临时存储节点返回所述被请求的第二目标数据对象;若所述数据请求所请求的第二目标数据对象为所述第二目标存储节点的故障后新增或修改的,则从所述第二临时存储节点中获取并返回相应的第二目标数据对象;否则,使所述第二临时存储节点根据所述第二目标数据对象对应条带ID从具有相同的条带ID的第二目标备份节点中获取与所述第二目标数据对象对应的第二备份数据块,并根据所述第二备份数据块恢复包含所述第二目标数据对象的第二目标数据块并从所述第二目标数据块中获取所述第二目标数据对象并返回所述第二目标数据对象。17.如权利要求11至16任意一项所述的数据管理方法,其特征在于,所述方法还包括:发送修改第三目标数据对象的数据修改请求至第三目标存储节点,当所述第三目标存储节点为故障存储节点时,所述数据修改请求被发送至协调管理器中,使所述协调管理器获取与所述第三目标数据对象对应条带列表ID,并在具有与所述条带列表ID相同的条带列表ID的正常存储节点中确定一个作为第三临时存储节点,并指示将所述数据修改请求发送至所述第三临时存储节点,以使所述第三临时存储节点根据所述数据修改请求修改所述第三目标数据对象。18.如权利要求17的数据管理方法,其特征在于,所述使所述第三临时存储节点根据所述数据修改请求修改所述第三目标数据对象包括:存储所述数据修改请求在所述第三临时存储节点内,并使所述第三临时存储节点根据所述第三目标数据对象对应条带ID从具有相同的条带ID的第三目标备份节点中获取与所述第三目标数据对象对应的第三备份数据块,根据所述第三备份数据块恢复包含所述第三目标数据对象的第三目标数据块,将所述数据修改请求中所携带的更新值与所述第三目标数据对象的原始值之间的差值发送给所述第三目标备份节点,以使所述第三目标备份节点根据所述差值,更新所述第三备份数据块;当所述第三目标存储节点的故障排除后,存储在所述第三临时存储节点内数据修改请求被迁移至所述第三目标存储节点内,以使所述第三目标存储节点根据所述数据修改请求对第三目标存储节点内的所述第三目标数据对象进行修改。19.一种数据管理装置,其特征在于,包括:编码单元,用于对预定大小的数据块进行编码,生成与所述数据块对应的纠错数据块,其中,所述数据块包括数据对象,其中所述数据对象包括,关键字,值,以及元数据;索引生成单元,用于生成数据块索引以及数据对象索引,所述数据块索引用于索引所述数据块及与所述数据块对应的纠错数据块,所述数据对象索引用于在所述数据块中索引所述数据对象,其中,每个数据对象索引用于索引唯一一个数据对象。20.根据权利要求19的数据管理装置,其特征在于还包括:数据存储单元,用于将所述数据对象存储在所述预定大小的数据块中,其中,所述预定大小的数据块位于第一存储设备中;以及,数据备份单元,将所述的纠错数据存储在第二存储设备中,所述第一存储设备与第二存储设备位于分布式存储系统中的不同位置。21.根据权利要求20所述的数据管理装置,其特征在于:所述的数据块索引包括:条带列表ID,条带ID,以及位置信息,所述的条带列表ID用于唯一确定所述分布式存储系统中多个存储设备分组中的一个存储设备分组,其中所述的存储设备分组包括多个第一设备及多个第二设备;所述条带ID用于确定在所述条带列表ID所指示的存储设备分组中存储所述数据块以及与所述数据块对应的纠错数据块的操作序号;所述位置信息用于确定所述数据块在所述条带列表ID所确定的存储设备分组中哪一个第一存储设备中,以及所述纠错数据块在所述条带列表ID所确定的存储设备分组中哪一个第二存储设备中。22.根据权利要求21所述的数据管理装置,其特征在于:所述索引生成单元,用于,在所述第一存储设备中生成数据块索引以及数据对象索引,以及在所述第二存储设备中生成所述数据块索引以及所述数据对象索引。23.根据权利要求20至22任意一项所述的数据管理装置,其特征在于还包括:存储设备选择单元,用于,选择一个第一存储设备,以及一个或者多个第二存储设备,以及,将所述数据对象分别发送给所述第一存储设备,以及所述第二存储设备。24.根据权利要求23所述的数据管理装置,其特征在于:所述数据存储单元将所述数据对象存储在所述数据块内,当所述数据块内的数据对象的大小接近或者等于所述数据块的存储限值时,停止向所述数据块写入新数据对象,并将所述数据块内的所存储的所有的数据对象的Key值发送给所述编码单元;所述编码单元接收所述所述数据存储单元发送的所述数据块内的所有数据对象的Key值,并根据所述数据对象的Key值在所述第二存储设备内重建所述数据块,并对重建的所述数据块进行所述的编码。25.根据权利要求24所述的数据管理装置,其特征在于还包括:数据筛选单元,用于判断待存储的数据对象是否小于阈值,并将小于阈值的所述待存储的数据对象作为可存储在所述数据块内的数据对象进行所述的存储以及编码。26.根据权利要求25所述的数据管理装置,其特征在于:所述数据筛选单元,还用于以预定的时间间隔根据所述待存储的数据对象的平均大小,动态调整所述阈值。27.根据权利要求23所述的数据管理装置,其特征在于:所述分布式存储系统包括多个备选存储设备,所述存储设备选择单元:根据所述多个备选存储设备的负载情况,将负载最小的一个或者多个备选存储设备作为所述的一个或者多个第二存储设备。28.根据权利要求24所述的数据管理装置,其特征在于:所述数据存储单元,用于,当所述数据对象的尺寸大于所述数据块的存储空间的尺寸时,或者当所述数据对象的尺寸大于所述数据块中剩余的存储空间的尺寸时,将所述数据对象进行分割,将分割后的尺寸小于所述数据块的存储空间的尺寸或者小于所述数据块中剩余的存储空间的尺寸的分割数据对象存储在所述数据块内,并将数据块分割信息存储在所述被分割的数据对象的元数据中用于重新组合所述被分割的数据对象。29.一种数据管理系...
【专利技术属性】
技术研发人员:张家劲,姚文东,李柏晴,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。