CN115964445B - 一种分布式数据库的多副本实现方法和装置 - Google Patents
一种分布式数据库的多副本实现方法和装置 Download PDFInfo
- Publication number
- CN115964445B CN115964445B CN202310157937.9A CN202310157937A CN115964445B CN 115964445 B CN115964445 B CN 115964445B CN 202310157937 A CN202310157937 A CN 202310157937A CN 115964445 B CN115964445 B CN 115964445B
- Authority
- CN
- China
- Prior art keywords
- data
- target
- sliced
- redundant
- level
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 239000011159 matrix material Substances 0.000 claims abstract description 107
- 239000012634 fragment Substances 0.000 claims abstract description 68
- 238000013467 fragmentation Methods 0.000 claims abstract description 12
- 238000006062 fragmentation reaction Methods 0.000 claims abstract description 12
- 238000011084 recovery Methods 0.000 claims description 27
- 230000003139 buffering effect Effects 0.000 claims description 6
- 238000000926 separation method Methods 0.000 claims description 3
- 230000001133 acceleration Effects 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000003321 amplification Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 238000010223 real-time analysis Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种分布式数据库的多副本实现方法和装置,该方法包括:根据编码缓存矩阵数据结构初始化编码缓存矩阵和预设分片键;主节点接收目标数据,构建编码缓存矩阵,基于预设分片键和预设纠删码算法对目标数据进行分片编码处理,得到分片数据以及冗余数据,并从分片数据从节点中确定目标分片数据从节点,从冗余数据从节点中确定目标冗余数据从节点;根据分片数据、冗余数据、目标分片数据从节点和目标冗余数据从节点,对目标数据进行分发处理;分发处理包括一级分发处理和二级分发处理,从而高效的实现了分布式数据库的多副本,并进一步提高了存储空间利用率,进而可充分发挥系统加速硬件的计算能力,保证了HTAP系统的可用性。
Description
技术领域
本申请涉及计算机技术领域,更具体地,涉及一种分布式数据库的多副本实现方法和装置。
背景技术
随着5G、云计算、万物互联、人工智能时代的到来,数据的产生、传输、存储和分析中需要处理的数据容量越来越大,单机很难满足要求,分布式数据库成为关键的解决方案。分布式数据库通常基于表的一个关键键值进行数据分片,数据分片后分发到不同节点。为提升系统的可用性,避免节点单点故障,对每一份分片数据进一步采用多副本的方式保存在不同节点,保证在一个节点失效的情况下,从副本所在节点仍可获取到正确数据。分布式数据库通常采用三副本方式,则需要3倍的存储空间,对存储资源需求非常高。
而分布式数据库采用纠删码实现数据冗余来保证可用性,其能有效降低对存储空间的需求。但引入纠删码提升了处理时延,并且当需要恢复数据时,需要读取多份数据才能恢复数据,放大了系统的读代价。
当前随着数据分析实时处理要求的提高和统一工作负载的需求,在同一个系统中同时支持OLTP(On-LineTransactionProcessing,联机事务处理)和OLAP(On-LineAnalyticalProcessing,联机实时分析)场景的HTAP(Hybrid Transactional/AnalyticalProcessing,混合交易分析处理)系统应运而生。在海量数据处理分析的性能挑战下,采用硬件加速部件的HTAP系统成为一种选择。为同时支持OLTP和OLAP场景,HTAP系统通常同时支持行存和列存,叠加上分布式系统的多副本,存储空间的需求更大。
因此,如何在实现多副本时进一步提高分布式数据库的存储空间利用率,进而充分发挥系统加速硬件的计算能力,保证HTAP系统的可用性,是目前需要解决的问题。
发明内容
本申请实施例提供一种分布式数据库的多副本实现方法和装置,用以在实现多副本时进一步提高分布式数据库的存储空间利用率。
第一方面,提供一种分布式数据库的多副本实现方法,所述方法应用于包括主节点和多个从节点的分布式数据库中,预先将各所述从节点划分为用于保存分片数据的分片数据从节点和用于保存冗余数据的冗余数据从节点,所述方法包括:根据编码缓存矩阵数据结构初始化编码缓存矩阵和预设分片键;所述主节点接收目标数据,构建所述编码缓存矩阵,基于预设分片键和预设纠删码算法对所述目标数据进行分片编码处理,得到所述分片数据,以及与所述分片数据对应的所述冗余数据,并从所述分片数据从节点中确定目标分片数据从节点,从所述冗余数据从节点中确定目标冗余数据从节点;根据所述分片数据、所述冗余数据、所述目标分片数据从节点和所述目标冗余数据从节点,对所述目标数据进行分发处理;其中,所述分发处理包括一级分发处理和二级分发处理。
第二方面,提供一种分布式数据库的多副本实现装置,应用于包括主节点和多个从节点的分布式数据库中,预先将各所述从节点划分为用于保存分片数据的分片数据从节点和用于保存冗余数据的冗余数据冗余数据从节点,所述装置包括:初始化模块,用于根据编码缓存矩阵数据结构初始化编码缓存矩阵和预设分片键;分片编码模块,用于使所述主节点接收目标数据,构建所述编码缓存矩阵,基于预设分片键和预设纠删码算法对所述目标数据进行分片编码处理,得到所述分片数据,以及与所述分片数据对应的所述冗余数据,并从所述分片数据从节点中确定目标分片数据从节点,从所述冗余数据从节点中确定目标冗余数据从节点;分发处理模块,用于根据所述分片数据、所述冗余数据、所述目标分片数据从节点和所述目标冗余数据从节点,对所述目标数据进行分发处理;其中,所述分发处理包括一级分发处理和二级分发处理。
通过应用以上技术方案,根据编码缓存矩阵数据结构初始化编码缓存矩阵和预设分片键;所述主节点接收目标数据,构建所述编码缓存矩阵,基于预设分片键和预设纠删码算法对所述目标数据进行分片编码处理,得到所述分片数据,以及与所述分片数据对应的所述冗余数据,并从所述分片数据从节点中确定目标分片数据从节点,从所述冗余数据从节点中确定目标冗余数据从节点;根据所述分片数据、所述冗余数据、所述目标分片数据从节点和所述目标冗余数据从节点,对所述目标数据进行分发处理;其中,所述分发处理包括一级分发处理和二级分发处理,从而高效的实现了分布式数据库的多副本,并进一步提高了分布式数据库的存储空间利用率,进而可充分发挥系统加速硬件的计算能力,保证了HTAP系统的可用性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明实施例提出的一种分布式数据库的多副本实现方法的流程示意图;
图2示出了本发明实施例中编码缓存矩阵的示意图;
图3示出了本发明实施例中编码缓存矩阵的变化示意图;
图4示出了本发明实施例中按纠删行分发方式对二级分发数据分发的原理示意图;
图5示出了本发明实施例中按纠删列分发方式对二级分发数据分发的原理示意图;
图6示出了本发明实施例提出的一种分布式数据库的多副本实现装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种分布式数据库的多副本实现方法,所述方法应用于包括主节点和多个从节点的分布式数据库中,预先将各所述从节点划分为用于保存分片数据的分片数据从节点和用于保存冗余数据的冗余数据从节点,如图1所示,所述方法包括以下步骤:
步骤S101,根据编码缓存矩阵数据结构初始化编码缓存矩阵和预设分片键。
本实施例中,分布式数据库包括主节点和多个从节点,各从节点分别连接主节点。分片数据是对目标数据进行数据分片后生成的。冗余数据是基于预设纠删码算法对分片数据进行编码运算后生成的,为了便于分别对分片数据和冗余数据进行分发,将各从节点划分为用于保存分片数据的分片数据从节点和用于保存冗余数据的冗余数据从节点。
编码缓存矩阵用于对分片数据和冗余数据进行缓存,对所述目标数据进行分发处理时,具体是将编码缓存矩阵中缓存的分片数据和冗余数据进行分发处理,预先设置编码缓存矩阵数据结构,根据编码缓存矩阵数据结构初始化编码缓存矩阵,从而保证编码缓存矩阵的可靠性。
在本申请一些实施例中,所述编码缓存矩阵数据结构包括3个字段,分别为分片数据行数、冗余数据行数和预设行空间大小;
设所述分片数据行数为M,所述冗余数据行数为N,所述预设行空间大小的值为Rmax;
其中,
所述编码缓存矩阵由多个行组成,各所述行被划分为与各所述分片数据从节点对应的分片数据行和与各所述冗余数据从节点对应的冗余数据行,所述分片数据行用于缓存所述分片数据,所述冗余数据行用于缓存所述冗余数据,基于预设纠删码算法进行编码运算的所述分片数据是从所述分片数据行获取的;
所述预设分片键用于确定所述分片数据行与所述分片数据从节点一一对应的关系;
初始化编码缓存矩阵时,所述分片数据行数M由所述分片数据从节点的数量确定,所述冗余数据行数N由所述冗余数据从节点的数量确定;
所述分片数据包括一级分片数据和二级分片数据,所述冗余数据包括一级冗余数据和二级冗余数据,或所述冗余数据仅包括所述一级冗余数据。
本实施例中,编码缓存矩阵由分片数据行和冗余数据行组成,各分片数据缓存在各分片数据行,各冗余数据缓存在各冗余数据行。将分片数据缓存在各分片数据行后,基于预设纠删码算法对各分片数据行中各分片数据进行编码运算,得到各冗余数据。其中,根据分片数据从节点的数量确定分片数据行数M,根据冗余数据从节点的数量确定冗余数据行数N,并设置各行的存储空间大小为预设行空间大小,预设行空间大小的值为Rmax,从而完成初始化编码缓存矩阵。分片数据包括一级分片数据和二级分片数据,冗余数据包括一级冗余数据和二级冗余数据,或冗余数据仅包括一级冗余数据,其中,一级分片数据和一级冗余数据由目标数据生成并由所述主节点分发至各从节点,二级分片数据和二级冗余数据由一级分片数生成,由当前从节点分发至其他从节点。在本申请具体的应用场景中,如图2所示为编码缓存矩阵的示意图,与从节点1-从节点n-2对应的各行为分片数据行,与从节点n-1-从节点n-2对应的各行为冗余数据行。
通过设置编码缓存矩阵对分片数据和冗余数据进行缓存,可以更加高效的进行纠删编码和数据分发处理。
步骤S102,所述主节点接收目标数据,构建所述编码缓存矩阵,基于预设分片键和预设纠删码算法对所述目标数据进行分片编码处理,得到所述分片数据,以及与所述分片数据对应的所述冗余数据,并从所述分片数据从节点中确定目标分片数据从节点,从所述冗余数据从节点中确定目标冗余数据从节点。
本实施例中,通过主节点接收待分发的目标数据,构建编码缓存矩阵,然后基于预设分片键和预设纠删码算法对目标数据进行分片编码处理,得到分片数据和冗余数据,并从分片数据从节点中确定保存该分片数据的目标分片数据从节点,从冗余数据从节点中确定保存该冗余数据的目标冗余数据从节点。
可选的,预设纠删码算法为包括RS(Reed-solomon)码算法,阵列码算法,LDPC(LowDensityParityCheckCode,低密度奇偶校验码)算法,LRC(LocallyRepairableCode,局部校验编码)算法中的任一种。
在本申请一些实施例中,
所述主节点接收目标数据,构建所述编码缓存矩阵,基于预设分片键和预设纠删码算法对所述目标数据进行分片编码处理的步骤包括:
所述主节点接收所述目标数据,构建所述编码缓存矩阵;
根据所述预设分片键对所述目标数据进行分组,得到所述目标数据对应的元组数据,并将所述目标数据对应的元组数据缓存到所述编码缓存矩阵的所述分片数据行中;
获取已缓存到所述分片数据行中的元组数据长度为Ls,并根据Ls和Rmax为各所述分片数据行中的元组数据添加填充数据,得到与所述目标数据对应的所述一级分片数据,其中,Ls小于或等于Rmax;
基于预设纠删码算法对所有所述一级分片数据进行编码运算,生成与所述一级分片数据对应的所述一级冗余数据,以及所述一级冗余数据的元组数量为N_Ls,其中,所述一级冗余数据缓存需要的所述冗余数据行数,以及分发需要的所述目标冗余数据从节点的数量均为N_Ls;
将所有所述一级冗余数据缓存到所述冗余数据行中。
本实施例中,主节点接收目标数据,并构建编码缓存矩阵;然后根据预设分片键对目标数据进行分组,将得到多个元组数据缓存到所述编码缓存矩阵的所述分片数据行中;获取分片数据行中已缓存的元组数据长度为Ls,可以理解的是,Ls是单个分片数据行中已缓存的元组数据长度,并根据Ls和Rmax为各分片数据行中的元组数据添加填充数据,得到与目标数据对应的一级分片数据,再基于预设纠删码算法对所有一级分片数据进行编码运算,生成一级冗余数据,并确定一级冗余数据的元组数量N_Ls,一级冗余数据缓存需要的冗余数据行数以及分发需要的所述目标冗余数据从节点的数量均为N_Ls;再将一级冗余数据缓存到编码缓存矩阵的冗余数据行,从而实现更加高效的进行分片编码处理。
可选的,填充数据的形式可以是预先设定的,本领域技术人员可根据实际需要灵活采用不同形式的填充数据。
在本申请一些实施例中,所述根据Ls和Rmax为各所述分片数据行中的元组数据添加填充数据,得到与所述目标数据对应的所述一级分片数据的步骤包括:
比较Ls和Rmax,并根据比较结果为各所述分片数据行中的元组数据添加填充数据;
当Ls小于Rmax时,
为各所述分片数据行中的元组数据分别添加填充数据后得到与所述目标数据对应的所述一级分片数据,所述填充数据的长度为(Rmax–Ls);
当Ls等于Rmax时,
所述填充数据的长度为空值,所述目标数据对应的所述一级分片数据为各所述分片数据行中的元组数据。
本实施例中,比较Ls和Rmax,若Ls小于Rmax,说明单个分片数据行中已缓存的元组数据的长度不符合要求,需要分别添加填充数据,填充数据的长度为(Rmax–Ls),即对元组数据添加填充数据后单个分片数据行中已缓存的数据的长度达到Rmax,此时根据各分片数据行中的数据得到一级分片数据;若Ls等于Rmax,说明单个分片数据行中已缓存的元组数据的长度符合要求,填充数据的长度为空值,根据当前各分片数据行中的元组数据得到一级分片数据,以此通过添加填充数据,使各分片数据行中的数据达到足够长度,从而更加高效的生成一级分片数据。
在本申请一些实施例中,所述主节点接收目标数据,构建所述编码缓存矩阵,基于预设分片键和预设纠删码算法对所述目标数据进行分片编码处理的步骤还包括:
1)若所述主节点接收到新的目标数据,根据所述预设分片键对所述新的目标数据进行分组,得到新的元组数据;
2)根据所述新的元组数据对应的所述预设分片键,以及所述预设分片键对应的所述分片数据行的值,对所述新的元组数据进行缓存:
若所述预设分片键对应的所述分片数据行的值为“0”,则将所述新的元组数据缓存到所述编码缓存矩阵中与所述预设分片键对应的所述分片数据行中;
若所述预设分片键对应的所述分片数据行的值不为“0”,则构建新的编码缓存矩阵,并将所述新的元组数据缓存到所述新的编码缓存矩阵中与所述预设分片键对应的所述分片数据行中;
3)获取新缓存到所述分片数据行中的元组数据长度为Lq,并根据Lq和Rmax为所述新的元组数据添加填充数据,得到与所述新的目标数据对应的所述一级分片数据;
4)基于预设纠删码算法对已缓存的全部所述目标数据对应的所述一级分片数据和所述新的目标数据对应的所述一级分片数据进行重新编码运算,生成新的一级冗余数据,并基于所述新的一级冗余数据对所述冗余数据行中的冗余数据进行更新处理。
本实施例中,若主节点接收到新的目标数据,先根据预设分片键对新的目标数据进行分组,得到新的元组数据,并进行缓存处理:若预设分片键对应的所述分片数据行的值为“0”,说明该分片数据行不存在数据,将新的元组数据缓存到编码缓存矩阵中与预设分片键对应的分片数据行中;若预设分片键对应的分片数据行的值不为“0”,说明该分片数据行已存在数据,不能继续在该分片数据行缓存数据,构建新的编码缓存矩阵,并将新的元组数据缓存到新的编码缓存矩阵中与预设分片键对应的分片数据行中。
然后根据新缓存到分片数据行中的元组数据长度Lq和Rmax为新的元组数据添加填充数据,得到与新的目标数据对应的一级分片数据。具体的,若Lq小于Rmax,则为新的元组数据添加填充数据,填充数据的长度为(Rmax–Lq),得到与新的目标数据对应的一级分片数据;若Lq等于Rmax,则将各新的元组数据作为与新的目标数据对应的一级分片数据。
最后基于预设纠删码算法对已缓存的全部目标数据对应的一级分片数据和新的目标数据对应的一级分片数据进行重新编码运算,生成新的一级冗余数据,并基于新的一级冗余数据对冗余数据行中的冗余数据进行更新处理。从而实现更加准确的对分片数据和冗余数据进行缓存。
在本申请一些实施例中,所述基于预设纠删码算法对已缓存的全部所述目标数据对应的所述一级分片数据和所述新的目标数据对应的所述一级分片数据进行重新编码运算,生成新的一级冗余数据,并基于所述新的一级冗余数据对所述冗余数据行中的冗余数据进行更新处理的步骤为:
若不存在所述新的编码缓存矩阵,基于所述预设纠删码算法对所述编码缓存矩阵中各所述分片数据行中的所有一级分片数据进行重新编码运算,生成所述新的一级冗余数据,以及所述新的一级冗余数据的元组数量,更新N_Ls的值,并基于所述新的一级冗余数据覆盖所述冗余数据行中已缓存的全部冗余数据;
若存在所述新的编码缓存矩阵,基于所述预设纠删码算法对所述编码缓存矩阵和所述新的编码缓存矩阵中各所述分片数据行中的所有一级分片数据进行编码运算,生成所述新的一级冗余数据,以及所述新的一级冗余数据的元组数量,更新N_Ls的值,并基于所述新的一级冗余数据覆盖所述冗余数据行中已缓存的全部冗余数据。
本实施例中,若不存在新的编码缓存矩阵,基于预设纠删码算法对编码缓存矩阵中各分片数据行中的所有一级分片数据进行重新编码运算,生成新的一级冗余数据,并更新N_Ls的值;若存在新的编码缓存矩阵,基于预设纠删码算法对编码缓存矩阵和新的编码缓存矩阵中各分片数据行中的所有一级分片数据进行编码运算,生成新的一级冗余数据并更新N_Ls的值。通过生成新的一级冗余数据,并基于新的一级冗余数据覆盖冗余数据行中已缓存的全部冗余数据,从而可准确的对冗余数据进行更新,实现更加准确的对冗余数据进行缓存。
在本申请具体的应用场景中,如图3所示,在元组1(即一级分片数据)到达主节点后,基于预设纠删码算法对元组1进行编码运算,得到冗余数据,将冗余数据分别保存在从节点n-1和从节点n;在元组2(即新的一级分片数据)到达主节点后,基于预设纠删码算法对元组1和元组2重新进行编码运算,得到冗余数据*(即新的冗余数据),将冗余数据*分别保存在从节点n-1和从节点n,覆盖冗余数据行中已缓存的全部冗余数据,从而准确的对冗余数据进行更新。
步骤S103,根据所述分片数据、所述冗余数据、所述目标分片数据从节点和所述目标冗余数据从节点,对所述目标数据进行分发处理;
本实施例中,将分片数据分发到目标分片数据从节点,将冗余数据分发到目标冗余数据从节点,从而完成对目标数据的分发处理,该分发处理包括一级分发处理和二级分发处理,一级分发处理为从主节点分发至各从节点的分发处理,二级分发处理为从当前从节点分发到其他从节点的分发处理,通过对数据进行二次分发,高效的实现了分布式数据库的多副本。
在本申请一些实施例中,所述一级分发处理的步骤包括:
所述主节点将所述分片数据行中缓存的所有一级分片数据从所述主节点分发至所述目标分片数据从节点;
将所述冗余数据行中缓存的所有一级冗余数据从所述主节点分发到所述目标冗余数据从节点;
释放所述编码缓存矩阵。
本实施例中,将所有一级分片数据和一级冗余数据分别从主节点分发到目标分片数据从节点和目标冗余数据从节点,然后释放编码缓存矩阵,从而更加高效的实现了一级分发处理。
在本申请一些实施例中,所述二级分发处理的步骤包括:
所述分片数据从节点接收所述一级分片数据,对各所述一级分片数据进行复制,生成副本数据,将所述副本数据分发至其他从节点;或,
所述分片数据从节点接收所述一级分片数据,构建所述编码缓存矩阵,基于预设分片键和所述预设纠删码算法对各所述一级分片数据以行为单位进行分片编码处理,得到所述二级分片数据,以及与所述二级分片数据对应的二级冗余数据,并从所述分片数据从节点中确定目标分片数据从节点,从其它所述冗余数据从节点中确定目标冗余数据从节点,并将所述二级分片数据分发至所述目标分片数据从节点,将所述二级分片数据对应的二级冗余数据分发至所述目标冗余数据从节点,释放所述编码缓存矩阵;或
所述分片数据从节点接收所述一级分片数据,构建所述编码缓存矩阵,基于预设分片键和所述预设纠删码算法对各所述一级分片数据以列或列组为单位进行分片编码处理,得到所述二级分片数据,以及与所述二级分片数据对应的二级冗余数据,并从所述分片数据从节点中确定目标分片数据从节点,从其它所述冗余数据从节点中确定目标冗余数据从节点,并将所述二级分片数据分发至所述目标分片数据从节点,将所述二级分片数据对应的二级冗余数据分发至所述目标冗余数据从节点,释放所述编码缓存矩阵。
本实施例中,可采用副本方式、按纠删行分发方式和按纠删列分发方式三种方式中的一种生成二级分发数据并进行数据分发,从而可更加灵活的进行二级分发处理。
若采用副本方式,分片数据从节点对接收的各一级分片数据进行复制,生成副本数据,将副本数据分发至其他从节点。
若采用纠删行分发方式,分片数据从节点接收一级分片数据,构建编码缓存矩阵,基于预设分片键和预设纠删码算法对各一级分片数据以行为单位进行分片编码处理,得到所述二级分片数据和二级冗余数据,并将二级分片数据分发至目标分片数据从节点,将二级分片数据对应的二级冗余数据分发至目标冗余数据从节点,最后释放编码缓存矩阵。举例来说,如图4所示,分片数据从节点接收的一级分片数据为元组1-n,基于预设纠删码算法对元组1-n以行为单位进行编码运算,得到冗余数据,将元组1-n和冗余数据分别作为二级分片数据和二级冗余数据,在分发时,将元组1-n分别分发到从节点2至从节点n-2,将冗余数据分发到从节点n-1。
若采用按纠删列分发方式,分片数据从节点接收一级分片数据,构建编码缓存矩阵,基于预设分片键和预设纠删码算法对各一级分片数据以列或列组为单位进行分片编码处理,得到所述二级分片数据和二级冗余数据,并将二级分片数据分发至目标分片数据从节点,将二级分片数据对应的二级冗余数据分发至目标冗余数据从节点,最后释放编码缓存矩阵。举例来说,如图5所示,分片数据从节点接收的一级分片数据为元组1-n,基于预设纠删码算法对元组1-n以列为单位进行编码运算,得到冗余数据,将元组1-n和冗余数据分别作为二级分片数据和二级冗余数据并进行分发。
在本申请一些实施例中,在根据所述分片数据、所述冗余数据、所述目标分片数据从节点和所述目标冗余数据从节点,对所述目标数据进行分发处理之后,所述方法还包括:
若各所述从节点中存在发生数据丢失的故障节点且接收到对所述故障节点的数据恢复指令,根据所述数据恢复指令从剩余从节点中获取所述二级分发数据中的剩余数据;
根据所述二级分发数据中的剩余数据获取二级恢复数据,并基于所述二级恢复数据对所述故障节点进行数据恢复;
若所述故障节点中还存在未恢复的数据,从剩余从节点中获取所述一级分发数据中的剩余数据;
根据所述一级分发数据中的剩余数据获取一级恢复数据,并基于所述一级恢复数据对所述故障节点进行数据恢复;
其中,所述一级分发数据包括所述一级分片数据和所述一级冗余数据,所述二级分发数据包括所述二级分片数据和所述二级冗余数据,或所述二级分发数据包括所述副本数据。
本实施例中,故障节点可以为一个或多个,数据恢复指令可以是用户输入的,也可以是在检测到存在故障节点时自动触发的。其中,一级分发数据包括一级分片数据和一级冗余数据,在二级分发处理采用纠删行分发方式或纠删列分发方式时,二级分发数据包括二级分片数据和二级冗余数据;在二级分发处理采用副本方式时,二级分发数据包括上述副本数据。
若接收到数据恢复指令,先基于二级分发数据中的剩余数据进行数据恢复,若故障节点中还存在未恢复的数据,则进一步基于一级分发数据中的剩余数据进行数据恢复。具体的,若进行二级分发时采用副本方式,则从二级分发数据中的剩余数据中直接获取二级恢复数据;若进行二级分发时采用按纠删行分发方式或按纠删列分发方式,则基于预设纠删码算法对二级分发数据中的剩余数据进行解码运算,根据解码运算结果确定二级恢复数据,基于二级恢复数据对故障节点进行数据恢复。若基于二级分发数据中剩余数据进行数据恢复后还存在未恢复的数据,则基于预设纠删码算法对一级分发数据中的剩余数据进行解码运算,得到一级恢复数据,基于一级恢复数据对故障节点再次进行数据恢复。由于采用两级恢复方式进行数据恢复,减少了数据恢复时的读放大。
通过应用以上技术方案,根据编码缓存矩阵数据结构初始化编码缓存矩阵和预设分片键;所述主节点接收目标数据,构建所述编码缓存矩阵,基于预设分片键和预设纠删码算法对所述目标数据进行分片编码处理,得到所述分片数据,以及与所述分片数据对应的所述冗余数据,并从所述分片数据从节点中确定目标分片数据从节点,从所述冗余数据从节点中确定目标冗余数据从节点;根据所述分片数据、所述冗余数据、所述目标分片数据从节点和所述目标冗余数据从节点,对所述目标数据进行分发处理;其中,所述分发处理包括一级分发处理和二级分发处理,从而高效的实现了分布式数据库的多副本,并进一步提高了分布式数据库的存储空间利用率,进而可充分发挥系统加速硬件的计算能力,保证了HTAP系统的可用性。
本申请实施例还提供一种分布式数据库的多副本实现装置,应用于包括主节点和多个从节点的分布式数据库中,预先将各所述从节点划分为用于保存分片数据的分片数据从节点和用于保存冗余数据的冗余数据冗余数据从节点,如图6所示,所述装置包括:
初始化模块10,用于根据编码缓存矩阵数据结构初始化编码缓存矩阵和预设分片键;
分片编码模块20,用于用于使所述主节点接收目标数据,构建所述编码缓存矩阵,基于预设分片键和预设纠删码算法对所述目标数据进行分片编码处理,得到所述分片数据,以及与所述分片数据对应的所述冗余数据,并从所述分片数据从节点中确定目标分片数据从节点,从所述冗余数据从节点中确定目标冗余数据从节点;
分发处理模块30,用于根据所述分片数据、所述冗余数据、所述目标分片数据从节点和所述目标冗余数据从节点,对所述目标数据进行分发处理;
其中,所述分发处理包括一级分发处理和二级分发处理。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (6)
1.一种分布式数据库的多副本实现方法,其特征在于,所述方法应用于包括主节点和多个从节点的分布式数据库中,预先将各所述从节点划分为用于保存分片数据的分片数据从节点和用于保存冗余数据的冗余数据从节点,所述方法包括:
根据编码缓存矩阵数据结构初始化编码缓存矩阵和预设分片键;
所述主节点接收目标数据,构建所述编码缓存矩阵,基于预设分片键和预设纠删码算法对所述目标数据进行分片编码处理,得到所述分片数据,以及与所述分片数据对应的所述冗余数据,并从所述分片数据从节点中确定目标分片数据从节点,从所述冗余数据从节点中确定目标冗余数据从节点;
根据所述分片数据、所述冗余数据、所述目标分片数据从节点和所述目标冗余数据从节点,对所述目标数据进行分发处理;
其中,所述分发处理包括一级分发处理和二级分发处理;
所述编码缓存矩阵数据结构包括3个字段,分别为分片数据行数、冗余数据行数和预设行空间大小;
设所述分片数据行数为M,所述冗余数据行数为N,所述预设行空间大小的值为Rmax;
其中,
所述编码缓存矩阵由多个行组成,各所述行被划分为与各所述分片数据从节点对应的分片数据行和与各所述冗余数据从节点对应的冗余数据行,所述分片数据行用于缓存所述分片数据,所述冗余数据行用于缓存所述冗余数据,基于预设纠删码算法进行编码运算的所述分片数据是从所述分片数据行获取的;
所述预设分片键用于确定所述分片数据行与所述分片数据从节点一一对应的关系;
初始化编码缓存矩阵时,所述分片数据行数M由所述分片数据从节点的数量确定,所述冗余数据行数N由所述冗余数据从节点的数量确定;
所述分片数据包括一级分片数据和二级分片数据,所述冗余数据包括一级冗余数据和二级冗余数据,或所述冗余数据仅包括所述一级冗余数据,所述一级分片数据和所述一级冗余数据由目标数据生成并由所述主节点分发至各从节点,所述二级分片数据和所述二级冗余数据由所述一级分片数据生成,由当前从节点分发至其他从节点;
所述主节点接收目标数据,构建所述编码缓存矩阵,基于预设分片键和预设纠删码算法对所述目标数据进行分片编码处理的步骤包括:
所述主节点接收所述目标数据,构建所述编码缓存矩阵;
根据所述预设分片键对所述目标数据进行分组,得到所述目标数据对应的元组数据,并将所述目标数据对应的元组数据缓存到所述编码缓存矩阵的所述分片数据行中;
获取已缓存到所述分片数据行中的元组数据长度为Ls,并根据Ls和Rmax为各所述分片数据行中的元组数据添加填充数据,得到与所述目标数据对应的所述一级分片数据,其中,Ls小于或等于Rmax;
基于预设纠删码算法对所有所述一级分片数据进行编码运算,生成与所述一级分片数据对应的所述一级冗余数据,以及所述一级冗余数据的元组数量为N_Ls,其中,所述一级冗余数据缓存需要的所述冗余数据行数,以及分发需要的所述目标冗余数据从节点的数量均为N_Ls;
将所有所述一级冗余数据缓存到所述冗余数据行中;
所述一级分发处理的步骤包括:所述主节点将所述分片数据行中缓存的所有一级分片数据从所述主节点分发至所述目标分片数据从节点;将所述冗余数据行中缓存的所有一级冗余数据从所述主节点分发到所述目标冗余数据从节点;释放所述编码缓存矩阵;
所述二级分发处理的步骤包括:所述分片数据从节点接收所述一级分片数据,对各所述一级分片数据进行复制,生成副本数据,将所述副本数据分发至其他从节点;或,所述分片数据从节点接收所述一级分片数据,构建所述编码缓存矩阵,基于预设分片键和所述预设纠删码算法对各所述一级分片数据以行为单位进行分片编码处理,得到所述二级分片数据,以及与所述二级分片数据对应的二级冗余数据,并从所述分片数据从节点中确定目标分片数据从节点,从其它所述冗余数据从节点中确定目标冗余数据从节点,并将所述二级分片数据分发至所述目标分片数据从节点,将所述二级分片数据对应的二级冗余数据分发至所述目标冗余数据从节点,释放所述编码缓存矩阵;或,所述分片数据从节点接收所述一级分片数据,构建所述编码缓存矩阵,基于预设分片键和所述预设纠删码算法对各所述一级分片数据以列或列组为单位进行分片编码处理,得到所述二级分片数据,以及与所述二级分片数据对应的二级冗余数据,并从所述分片数据从节点中确定目标分片数据从节点,从其它所述冗余数据从节点中确定目标冗余数据从节点,并将所述二级分片数据分发至所述目标分片数据从节点,将所述二级分片数据对应的二级冗余数据分发至所述目标冗余数据从节点,释放所述编码缓存矩阵。
2.如权利要求1所述的方法,其特征在于,所述根据Ls和Rmax为各所述分片数据行中的元组数据添加填充数据,得到与所述目标数据对应的所述一级分片数据的步骤包括:
比较Ls和Rmax,并根据比较结果为各所述分片数据行中的元组数据添加填充数据;
当Ls小于Rmax时,
为各所述分片数据行中的元组数据分别添加填充数据后得到与所述目标数据对应的所述一级分片数据,所述填充数据的长度为(Rmax–Ls);
当Ls等于Rmax时,
所述填充数据的长度为空值,所述目标数据对应的所述一级分片数据为各所述分片数据行中的元组数据。
3.如权利要求1所述的方法,其特征在于,所述主节点接收目标数据,构建所述编码缓存矩阵,基于预设分片键和预设纠删码算法对所述目标数据进行分片编码处理的步骤还包括:
1)若所述主节点接收到新的目标数据,根据所述预设分片键对所述新的目标数据进行分组,得到新的元组数据;
2)根据所述新的元组数据对应的所述预设分片键,以及所述预设分片键对应的所述分片数据行的值,对所述新的元组数据进行缓存:
若所述预设分片键对应的所述分片数据行的值为“0”,则将所述新的元组数据缓存到所述编码缓存矩阵中与所述预设分片键对应的所述分片数据行中;
若所述预设分片键对应的所述分片数据行的值不为“0”,则构建新的编码缓存矩阵,并将所述新的元组数据缓存到所述新的编码缓存矩阵中与所述预设分片键对应的所述分片数据行中;
3)获取新缓存到所述分片数据行中的元组数据长度为Lq,并根据Lq和Rmax为所述新的元组数据添加填充数据,得到与所述新的目标数据对应的所述一级分片数据;
4)基于预设纠删码算法对已缓存的全部所述目标数据对应的所述一级分片数据和所述新的目标数据对应的所述一级分片数据进行重新编码运算,生成新的一级冗余数据,并基于所述新的一级冗余数据对所述冗余数据行中的冗余数据进行更新处理。
4.如权利要求3所述的方法,其特征在于,所述基于预设纠删码算法对已缓存的全部所述目标数据对应的所述一级分片数据和所述新的目标数据对应的所述一级分片数据进行重新编码运算,生成新的一级冗余数据,并基于所述新的一级冗余数据对所述冗余数据行中的冗余数据进行更新处理的步骤为:
若不存在所述新的编码缓存矩阵,基于所述预设纠删码算法对所述编码缓存矩阵中各所述分片数据行中的所有一级分片数据进行重新编码运算,生成所述新的一级冗余数据,以及所述新的一级冗余数据的元组数量,更新N_Ls的值,并基于所述新的一级冗余数据覆盖所述冗余数据行中已缓存的全部冗余数据;
若存在所述新的编码缓存矩阵,基于所述预设纠删码算法对所述编码缓存矩阵和所述新的编码缓存矩阵中各所述分片数据行中的所有一级分片数据进行编码运算,生成所述新的一级冗余数据,以及所述新的一级冗余数据的元组数量,更新N_Ls的值,并基于所述新的一级冗余数据覆盖所述冗余数据行中已缓存的全部冗余数据。
5.如权利要求1所述的方法,其特征在于,在根据所述分片数据、所述冗余数据、所述目标分片数据从节点和所述目标冗余数据从节点,对所述目标数据进行分发处理之后,所述方法还包括:
若各所述从节点中存在发生数据丢失的故障节点且接收到对所述故障节点的数据恢复指令,根据所述数据恢复指令从剩余从节点中获取二级分发数据中的剩余数据;
根据所述二级分发数据中的剩余数据获取二级恢复数据,并基于所述二级恢复数据对所述故障节点进行数据恢复;
若所述故障节点中还存在未恢复的数据,从剩余从节点中获取所述一级分发数据中的剩余数据;
根据所述一级分发数据中的剩余数据获取一级恢复数据,并基于所述一级恢复数据对所述故障节点进行数据恢复;
其中,所述一级分发数据包括所述一级分片数据和所述一级冗余数据,所述二级分发数据包括所述二级分片数据和所述二级冗余数据,或所述二级分发数据包括所述副本数据。
6.一种分布式数据库的多副本实现装置,其特征在于,应用于包括主节点和多个从节点的分布式数据库中,预先将各所述从节点划分为用于保存分片数据的分片数据从节点和用于保存冗余数据的冗余数据从节点,所述装置包括:
初始化模块,用于根据编码缓存矩阵数据结构初始化编码缓存矩阵和预设分片键;
分片编码模块,用于使所述主节点接收目标数据,构建所述编码缓存矩阵,基于预设分片键和预设纠删码算法对所述目标数据进行分片编码处理,得到所述分片数据,以及与所述分片数据对应的所述冗余数据,并从所述分片数据从节点中确定目标分片数据从节点,从所述冗余数据从节点中确定目标冗余数据从节点;
分发处理模块,用于根据所述分片数据、所述冗余数据、所述目标分片数据从节点和所述目标冗余数据从节点,对所述目标数据进行分发处理;
其中,所述分发处理包括一级分发处理和二级分发处理;
所述编码缓存矩阵数据结构包括3个字段,分别为分片数据行数、冗余数据行数和预设行空间大小;
设所述分片数据行数为M,所述冗余数据行数为N,所述预设行空间大小的值为Rmax;
其中,
所述编码缓存矩阵由多个行组成,各所述行被划分为与各所述分片数据从节点对应的分片数据行和与各所述冗余数据从节点对应的冗余数据行,所述分片数据行用于缓存所述分片数据,所述冗余数据行用于缓存所述冗余数据,基于预设纠删码算法进行编码运算的所述分片数据是从所述分片数据行获取的;
所述预设分片键用于确定所述分片数据行与所述分片数据从节点一一对应的关系;
初始化编码缓存矩阵时,所述分片数据行数M由所述分片数据从节点的数量确定,所述冗余数据行数N由所述冗余数据从节点的数量确定;
所述分片数据包括一级分片数据和二级分片数据,所述冗余数据包括一级冗余数据和二级冗余数据,或所述冗余数据仅包括所述一级冗余数据,所述一级分片数据和所述一级冗余数据由目标数据生成并由所述主节点分发至各从节点,所述二级分片数据和所述二级冗余数据由所述一级分片数据生成,由当前从节点分发至其他从节点;
所述主节点接收目标数据,构建所述编码缓存矩阵,基于预设分片键和预设纠删码算法对所述目标数据进行分片编码处理的步骤包括:
所述主节点接收所述目标数据,构建所述编码缓存矩阵;
根据所述预设分片键对所述目标数据进行分组,得到所述目标数据对应的元组数据,并将所述目标数据对应的元组数据缓存到所述编码缓存矩阵的所述分片数据行中;
获取已缓存到所述分片数据行中的元组数据长度为Ls,并根据Ls和Rmax为各所述分片数据行中的元组数据添加填充数据,得到与所述目标数据对应的所述一级分片数据,其中,Ls小于或等于Rmax;
基于预设纠删码算法对所有所述一级分片数据进行编码运算,生成与所述一级分片数据对应的所述一级冗余数据,以及所述一级冗余数据的元组数量为N_Ls,其中,所述一级冗余数据缓存需要的所述冗余数据行数,以及分发需要的所述目标冗余数据从节点的数量均为N_Ls;
将所有所述一级冗余数据缓存到所述冗余数据行中;
所述一级分发处理的步骤包括:所述主节点将所述分片数据行中缓存的所有一级分片数据从所述主节点分发至所述目标分片数据从节点;将所述冗余数据行中缓存的所有一级冗余数据从所述主节点分发到所述目标冗余数据从节点;释放所述编码缓存矩阵;
所述二级分发处理的步骤包括:所述分片数据从节点接收所述一级分片数据,对各所述一级分片数据进行复制,生成副本数据,将所述副本数据分发至其他从节点;或,所述分片数据从节点接收所述一级分片数据,构建所述编码缓存矩阵,基于预设分片键和所述预设纠删码算法对各所述一级分片数据以行为单位进行分片编码处理,得到所述二级分片数据,以及与所述二级分片数据对应的二级冗余数据,并从所述分片数据从节点中确定目标分片数据从节点,从其它所述冗余数据从节点中确定目标冗余数据从节点,并将所述二级分片数据分发至所述目标分片数据从节点,将所述二级分片数据对应的二级冗余数据分发至所述目标冗余数据从节点,释放所述编码缓存矩阵;或,所述分片数据从节点接收所述一级分片数据,构建所述编码缓存矩阵,基于预设分片键和所述预设纠删码算法对各所述一级分片数据以列或列组为单位进行分片编码处理,得到所述二级分片数据,以及与所述二级分片数据对应的二级冗余数据,并从所述分片数据从节点中确定目标分片数据从节点,从其它所述冗余数据从节点中确定目标冗余数据从节点,并将所述二级分片数据分发至所述目标分片数据从节点,将所述二级分片数据对应的二级冗余数据分发至所述目标冗余数据从节点,释放所述编码缓存矩阵。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310157937.9A CN115964445B (zh) | 2023-02-23 | 2023-02-23 | 一种分布式数据库的多副本实现方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310157937.9A CN115964445B (zh) | 2023-02-23 | 2023-02-23 | 一种分布式数据库的多副本实现方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115964445A CN115964445A (zh) | 2023-04-14 |
CN115964445B true CN115964445B (zh) | 2024-03-05 |
Family
ID=87353212
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310157937.9A Active CN115964445B (zh) | 2023-02-23 | 2023-02-23 | 一种分布式数据库的多副本实现方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115964445B (zh) |
Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103544270A (zh) * | 2013-10-18 | 2014-01-29 | 南京大学镇江高新技术研究院 | 面向数据中心的通用化网络编码容错存储平台及工作方法 |
CN103810061A (zh) * | 2014-01-28 | 2014-05-21 | 河南科技大学 | 一种高可用云存储方法 |
CN105335150A (zh) * | 2014-08-13 | 2016-02-17 | 苏宁云商集团股份有限公司 | 纠删码数据的快速编解码方法和系统 |
CN105610879A (zh) * | 2014-10-31 | 2016-05-25 | 深圳市华为技术软件有限公司 | 数据处理方法和装置 |
US9430443B1 (en) * | 2015-05-08 | 2016-08-30 | Norwegian University Of Science And Technology | Systematic coding technique |
CN109345386A (zh) * | 2018-08-31 | 2019-02-15 | 阿里巴巴集团控股有限公司 | 基于区块链的交易共识处理方法及装置、电子设备 |
CN110515541A (zh) * | 2019-07-29 | 2019-11-29 | 西安交通大学 | 分布式存储中纠删码非对齐数据更新方法 |
CN110531936A (zh) * | 2019-08-29 | 2019-12-03 | 西安交通大学 | 基于多种存储介质的分布式纠删码混合存储的林型存储结构及方法 |
CN111149093A (zh) * | 2018-09-03 | 2020-05-12 | 深圳花儿数据技术有限公司 | 分布式存储系统的数据编码、解码及修复方法 |
CN113067669A (zh) * | 2021-03-03 | 2021-07-02 | 伍仁勇 | 一种网络编码方法及安全网络 |
CN113190377A (zh) * | 2021-05-17 | 2021-07-30 | 北京中电兴发科技有限公司 | 一种基于分布式存储系统的可靠冗余方法及设备 |
CN113778346A (zh) * | 2021-11-12 | 2021-12-10 | 深圳市名竹科技有限公司 | 数据读取方法、装置、设备和存储介质 |
CN113901069A (zh) * | 2021-12-08 | 2022-01-07 | 威讯柏睿数据科技(北京)有限公司 | 一种分布式数据库的数据存储方法和装置 |
CN114021075A (zh) * | 2021-11-12 | 2022-02-08 | 福建师范大学 | 一种利用掉队节点计算能力的编码矩阵乘法方法 |
CN114968119A (zh) * | 2022-05-31 | 2022-08-30 | 济南浪潮数据技术有限公司 | 一种数据保护方法、装置、设备及存储介质 |
CN115113816A (zh) * | 2022-06-24 | 2022-09-27 | 山东云海国创云计算装备产业创新中心有限公司 | 一种纠删码数据处理系统、方法、计算机设备及介质 |
CN115550349A (zh) * | 2022-09-29 | 2022-12-30 | 南京邮电大学 | 基于随机线性网络编码与卡尔曼滤波算法的文件传输方法 |
CN115639947A (zh) * | 2021-07-19 | 2023-01-24 | 华为技术有限公司 | 数据写入方法、数据读取方法、装置、设备、系统及介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101544356B1 (ko) * | 2012-10-31 | 2015-08-13 | 삼성에스디에스 주식회사 | 메타데이터 및 트랜잭션 발생량을 고려한 동적 샤딩 기능을 지원하는 분산 데이터베이스 관리 방법 및 그 구성 노드 |
US10031806B2 (en) * | 2016-11-01 | 2018-07-24 | Cisco Technology, Inc. | Efficient repair of erasure coded data based on coefficient matrix decomposition |
GB201716967D0 (en) * | 2017-10-16 | 2017-11-29 | Memoscale As | Coding technique |
-
2023
- 2023-02-23 CN CN202310157937.9A patent/CN115964445B/zh active Active
Patent Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103544270A (zh) * | 2013-10-18 | 2014-01-29 | 南京大学镇江高新技术研究院 | 面向数据中心的通用化网络编码容错存储平台及工作方法 |
CN103810061A (zh) * | 2014-01-28 | 2014-05-21 | 河南科技大学 | 一种高可用云存储方法 |
CN105335150A (zh) * | 2014-08-13 | 2016-02-17 | 苏宁云商集团股份有限公司 | 纠删码数据的快速编解码方法和系统 |
CN105610879A (zh) * | 2014-10-31 | 2016-05-25 | 深圳市华为技术软件有限公司 | 数据处理方法和装置 |
US9430443B1 (en) * | 2015-05-08 | 2016-08-30 | Norwegian University Of Science And Technology | Systematic coding technique |
CN109345386A (zh) * | 2018-08-31 | 2019-02-15 | 阿里巴巴集团控股有限公司 | 基于区块链的交易共识处理方法及装置、电子设备 |
CN111149093A (zh) * | 2018-09-03 | 2020-05-12 | 深圳花儿数据技术有限公司 | 分布式存储系统的数据编码、解码及修复方法 |
CN110515541A (zh) * | 2019-07-29 | 2019-11-29 | 西安交通大学 | 分布式存储中纠删码非对齐数据更新方法 |
CN110531936A (zh) * | 2019-08-29 | 2019-12-03 | 西安交通大学 | 基于多种存储介质的分布式纠删码混合存储的林型存储结构及方法 |
CN113067669A (zh) * | 2021-03-03 | 2021-07-02 | 伍仁勇 | 一种网络编码方法及安全网络 |
CN113190377A (zh) * | 2021-05-17 | 2021-07-30 | 北京中电兴发科技有限公司 | 一种基于分布式存储系统的可靠冗余方法及设备 |
CN115639947A (zh) * | 2021-07-19 | 2023-01-24 | 华为技术有限公司 | 数据写入方法、数据读取方法、装置、设备、系统及介质 |
CN113778346A (zh) * | 2021-11-12 | 2021-12-10 | 深圳市名竹科技有限公司 | 数据读取方法、装置、设备和存储介质 |
CN114021075A (zh) * | 2021-11-12 | 2022-02-08 | 福建师范大学 | 一种利用掉队节点计算能力的编码矩阵乘法方法 |
CN113901069A (zh) * | 2021-12-08 | 2022-01-07 | 威讯柏睿数据科技(北京)有限公司 | 一种分布式数据库的数据存储方法和装置 |
CN114968119A (zh) * | 2022-05-31 | 2022-08-30 | 济南浪潮数据技术有限公司 | 一种数据保护方法、装置、设备及存储介质 |
CN115113816A (zh) * | 2022-06-24 | 2022-09-27 | 山东云海国创云计算装备产业创新中心有限公司 | 一种纠删码数据处理系统、方法、计算机设备及介质 |
CN115550349A (zh) * | 2022-09-29 | 2022-12-30 | 南京邮电大学 | 基于随机线性网络编码与卡尔曼滤波算法的文件传输方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115964445A (zh) | 2023-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Maity et al. | Robust gradient descent via moment encoding and LDPC codes | |
US9798617B2 (en) | Combined asynchronous and synchronous fountain code storage in an object store | |
US9900316B2 (en) | Accessing storage units of a dispersed storage network | |
US10951236B2 (en) | Hierarchical data integrity verification of erasure coded data in a distributed computing system | |
CN109643258B (zh) | 使用高速率最小存储再生擦除代码的多节点修复 | |
US9201733B2 (en) | Systems and methods for data repair | |
JP5298393B2 (ja) | 並列リードソロモンraid(rs−raid)アーキテクチャ、デバイス、および方法 | |
US20210271557A1 (en) | Data encoding, decoding and recovering method for a distributed storage system | |
US20170083603A1 (en) | Co-derived data storage patterns for distributed storage systems | |
CN110750382A (zh) | 用于提高数据修复性能的最小存储再生码编码方法及系统 | |
US10152376B2 (en) | Data object recovery for storage systems | |
WO2016058289A1 (zh) | 一种能修复多个节点失效的mds纠删码 | |
CN113901069B (zh) | 一种分布式数据库的数据存储方法和装置 | |
CN113190377B (zh) | 一种基于分布式存储系统的可靠冗余方法及设备 | |
CN103209210A (zh) | 一种提高基于纠删码的存储集群恢复性能的方法 | |
CN106484559A (zh) | 一种校验矩阵的构造方法及水平阵列纠删码的构造方法 | |
US7849355B2 (en) | Distributed object sharing system and method thereof | |
CN108762978B (zh) | 一种局部部分重复循环码的分组构造方法 | |
WO2020029418A1 (zh) | 一种修复二进制码生成矩阵构造方法及修复方法 | |
CN112416660A (zh) | 一种基于纠删技术的大文件分布式备份方法及装置 | |
CN115964445B (zh) | 一种分布式数据库的多副本实现方法和装置 | |
CN111224747A (zh) | 可降低修复带宽和磁盘读取开销的编码方法及其修复方法 | |
US9489252B1 (en) | File recovery using diverse erasure encoded fragments | |
CN115061640B (zh) | 一种容错分布存储系统、方法、电子设备及介质 | |
CN110297842B (zh) | 一种数据比对方法、装置、终端和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |