CN116860180B - 一种分布式存储方法、装置、电子设备及存储介质 - Google Patents

一种分布式存储方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN116860180B
CN116860180B CN202311108713.5A CN202311108713A CN116860180B CN 116860180 B CN116860180 B CN 116860180B CN 202311108713 A CN202311108713 A CN 202311108713A CN 116860180 B CN116860180 B CN 116860180B
Authority
CN
China
Prior art keywords
data
node
stored
data packet
packet
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
Application number
CN202311108713.5A
Other languages
English (en)
Other versions
CN116860180A (zh
Inventor
张栋
周凯
段子腾
王根镇
刘桦烁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Avic International Golden Net Beijing Technology Co ltd
Original Assignee
Avic International Golden Net Beijing Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Avic International Golden Net Beijing Technology Co ltd filed Critical Avic International Golden Net Beijing Technology Co ltd
Priority to CN202311108713.5A priority Critical patent/CN116860180B/zh
Publication of CN116860180A publication Critical patent/CN116860180A/zh
Application granted granted Critical
Publication of CN116860180B publication Critical patent/CN116860180B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0626Reducing size or complexity of storage systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供的一种分布式存储方法、装置、电子设备及存储介质,该分布式存储方法,应用于分布式存储系统,所述分布式存储系统包括多个节点,所述方法包括:获取待存储数据,并将所述待存储数据划分为多个数据分片;将所述多个数据分片划分为多个数据分组,其中,每一数据分组包括一个或多个数据分片,当一个数据分组中包括多个数据分片时,该数据分组中的多个数据分片不连续;将所述多个数据分组存储至所述多个节点中,其中,每一个节点中存储有一个或多个数据分组。通过将待存储数据进行分段,然后进行分组,每个节点中存储一个或多个数据分组,可以将待存储数据分散存储在多个节点中,无需进行数据的充分存储,从而提高数据的存储效率。

Description

一种分布式存储方法、装置、电子设备及存储介质
技术领域
本发明涉及信息技术领域,特别是涉及一种分布式存储方法、装置、电子设备及存储介质。
背景技术
目前,分布式存储方案的应用已经越来越广泛。通过分布式存储可以将数据存储在多台独立的设备上。相比较传统的网络存储系统中采用集中的存储服务器存放所有数据,分布式存储利用多台存储服务器分担存储负荷,不但可以满足大规模存储应用的需要,而且易于扩展。
然而,现有分布式存储方案,往往通过多节点多副本部署方案,每个节点对应存储一个副本。通过该方法由于需要针对每一个节点存储一个副本,从而导致存储空间的浪费。
发明内容
本发明实施例的目的在于提供一种分布式存储方法、装置、电子设备及存储介质,以实现节约存储空间。具体技术方案如下:
本申请实施例的第一方面,提供了一种分布式存储方法,应用于分布式存储系统,所述分布式存储系统包括多个节点,所述方法包括:
获取待存储数据,并将所述待存储数据划分为多个数据分片;
将所述多个数据分片划分为多个数据分组,其中,每一数据分组包括一个或多个数据分片,当一个数据分组中包括多个数据分片时,该数据分组中的多个数据分片不连续;
将所述多个数据分组存储至所述多个节点中,其中,每一个节点中存储有一个或多个数据分组。
在一种可能的实施方式中,在所述将所述多个数据分组存储至所述多个节点中之后,所述方法还包括:
针对任意两个目标数据分组,计算该两个目标数据分组的异或值;
将计算得到的异或值存储在目标节点中。
在一种可能的实施方式中,所述将所述多个数据分组存储至所述多个节点中,包括:
针对任一节点识别该节点中存储单元的数量;
当该节点中包括多个存储单元时,若该节点对应的数量分组的数量不小于存储单元的数量时,在每一存储单元中存储至少一个数据分组。
在一种可能的实施方式中,在将所述多个数据分组存储至所述多个节点中时,每一节点中的多个数据分组对应的多个数据分片中的任两个数据分片均不连续。
在一种可能的实施方式中,在所述将所述多个数据分组存储至所述多个节点中之后,所述方法还包括:
并行获取各节点中存储的数据分组;
对每个节点中存储的数据分组中的数据分片进行拼接,得到目标数据。
在一种可能的实施方式中,所述对每个节点中存储的数据分组中的数据分片进行拼接,得到目标数据,包括:
当获取任一节点中存储的数据分组失败时,获取所述目标节点中存储的数据分组的异或值;
根据所述数据分组的异或值和已经获取到的数据分组,计算未获取到数据分组;
对计算得到的数据分组和获取到的数据分组中的数据分片进行拼接,得到所述目标数据。
本申请实施例的第二方面,提供了一种分布式存储装置,应用于分布式存储系统,所述分布式存储系统包括多个节点,所述装置包括:
数据获取模块,用于获取待存储数据,并将所述待存储数据划分为多个数据分片;
数据分组模块,用于将所述多个数据分片划分为多个数据分组,其中,每一数据分组包括一个或多个数据分片,当一个数据分组中包括多个数据分片时,该数据分组中的多个数据分片不连续;
节点存储模块,用于将所述多个数据分组存储至所述多个节点中,其中,每一个节点中存储有一个或多个数据分组。
在一种可能的实施方式中,所述装置还包括:
数据计算模块,用于针对任意两个目标数据分组,计算该两个目标数据分组的异或值;
数据存储模块,用于将计算得到的异或值存储在目标节点中。
在一种可能的实施方式中,所述节点存储模块,包括:
数量识别子模块,用于针对任一节点识别该节点中存储单元的数量;
分组存储子模块,用于当该节点中包括多个存储单元时,若该节点对应的数量分组的数量不小于存储单元的数量时,在每一存储单元中存储至少一个数据分组。
在一种可能的实施方式中,在将所述多个数据分组存储至所述多个节点中时,每一节点中的多个数据分组对应的多个数据分片中的任两个数据分片均不连续。
在一种可能的实施方式中,所述装置还包括:
并行获取模块,用于并行获取各节点中存储的数据分组;
数据分片模块,用于对每个节点中存储的数据分组中的数据分片进行拼接,得到目标数据。
在一种可能的实施方式中,所述数据分片模块,包括:
分组获取子模块,用于当获取任一节点中存储的数据分组失败时,获取所述目标节点中存储的数据分组的异或值;
分组计算子模块,用于根据所述数据分组的异或值和已经获取到的数据分组,计算未获取到数据分组;
数据拼接子模块,用于对计算得到的数据分组和获取到的数据分组中的数据分片进行拼接,得到所述目标数据。
本申请实施例的第三方面,提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一所述的分布式存储方法步骤。
本申请实施例的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的分布式存储方法步骤。
本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的分布式存储方法步骤。
本发明实施例有益效果:
本发明实施例提供的一种分布式存储方法、装置、电子设备及存储介质,该分布式存储方法,应用于分布式存储系统,所述分布式存储系统包括多个节点,所述方法包括:获取待存储数据,并将所述待存储数据划分为多个数据分片;将所述多个数据分片划分为多个数据分组,其中,每一数据分组包括一个或多个数据分片,当一个数据分组中包括多个数据分片时,该数据分组中的多个数据分片不连续;将所述多个数据分组存储至所述多个节点中,其中,每一个节点中存储有一个或多个数据分组。通过将待存储数据进行分段,然后进行分组,每个节点中存储一个或多个数据分组,通过该方法可以将待存储数据分散存储在多个节点中,无需进行数据的充分存储,从而提高数据的存储效率。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。
图1为本申请实施例提供的分布式存储方法的一种流程示意图;
图2为本申请实施例提供的数据分组存储的一种流程示意图;
图3为本申请实施例提供的计算异或值的一种流程示意图;
图4为本申请实施例提供的获取目标数据的一种流程示意图;
图5为本申请实施例提供的获取目标数据的另一种流程示意图;
图6为本申请实施例提供的分布式存储方法的一种原理示意图;
图7为本申请实施例提供的分布式存储装置的一种结构示意图;
图8为本申请实施例提供的电子设备的一种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员基于本申请所获得的所有其他实施例,都属于本发明保护的范围。
本申请实施例的第一方面,提供了一种分布式存储方法,应用于分布式存储系统,所述分布式存储系统包括多个节点,参见图1,所述方法包括:
步骤S11,获取待存储数据,并将所述待存储数据划分为多个数据分片;
步骤S12,将所述多个数据分片划分为多个数据分组,其中,每一数据分组包括一个或多个数据分片,当一个数据分组中包括多个数据分片时,该数据分组中的多个数据分片不连续;
步骤S13,将所述多个数据分组存储至所述多个节点中,其中,每一个节点中存储有一个或多个数据分组。
可见,通过本申请实施例的分布式存方法,可以将待存储数据进行分段,然后进行分组,每个节点中存储一个或多个数据分组,通过该方法可以将待存储数据分散存储在多个节点中,无需进行数据的充分存储,从而提高数据的存储效率。
其中,本申请实施例中的分布式存储系统可以包括多个节点,每一个节点可以对应一个存储空间,具体的,一个节点中可以包括一个或多个存储单元,例如,硬盘。该分布式节点中的各个节点可以分布在不同的地理位置,节点之间通过网络进行连接。
上述步骤S11中,获取待存储数据可以为多种类型的数据,例如,图像、文字、视频、音乐等。在实际使用过程中,获取到的待存储数据可以为0/1数据。例如,可以在获取需要进行存储的数据之后,可以进行数据的转换,得到对应的0/1数据,即,待存储数据。在本申请实施例中将所述待存储数据划分为多个数据分片,一种情况下,可以根据预设长度进行分段,从而使得分段后得到的分段每一个的长度均为该预设长度。另一种情况下,可以根据待存储数据的长度进行分段,可以设定得到的分段的数量,从而根据待存储数据的长度和该分段的数量,计算每一个分段的长度,从而进行分段。
上述步骤S12中,将所述多个数据分片划分为多个数据分组,可以将得到的多个数据分片打散,然后进行数据分组的划分。其中,每一数据分组包括一个或多个数据分片,当一个数据分组中包括多个数据分片时,该数据分组中的多个数据分片不连续。例如,可以将得到的多个数据分片打散之后,将间隔的数据划分为一个组。一个例子中,若数据分片分别为A、B、C、D、E、F、G、H等,若一个分组包括两个数据分片,可以AC划分为一个分组,BD划分为一个分组,EG划分为一个分组,FH划分为一个分组;若一个分组包括三个数据分片,可以ACE划分为一个分组,BDF划分为一个分组。
上述步骤S13中,将所述多个数据分组存储至所述多个节点中,可以根据节点的数量和数据分组的数量进行存储,具体的,当数据分组的数量大于节点的数量时,每一个节点中可以存储有一个或多个数据分组。
通过本申请实施例的方法,在分布式存储中存储数据时,可以进行数据的分散。不但在生成数据分组时通过限定数据分组中的数据分片不连续的方法进行分散,而且在向节点中存储分组时还可以进行分散,从而使得数据同时损失的可能性减低。
在一种可能的实施方式中,对应图1中步骤S13,所述将所述多个数据分组存储至所述多个节点中,参见图2,包括:
步骤S131,针对任一节点识别该节点中存储单元的数量;
步骤S132,当该节点中包括多个存储单元时,若该节点对应的数量分组的数量不小于存储单元的数量时,在每一存储单元中存储至少一个数据分组。
例如,当一个节点中包括存储单元1和存储单元2时,若该节点中存储的数据分组为AC和BD时,则可以将数据分组为AC存储在存储单元1中,将数据分组BD存储在存储单元2中。
本申请实施例中,在进行数据分组的存储时,通过当该节点中包括多个存储单元时,若该节点对应的数量分组的数量不小于存储单元的数量时,在每一存储单元中存储至少一个数据分组,可以进一步提高分布式存储中数据的分散性,将数据分片保存在不同节点不同的物理硬盘中,保证了数据丢失时不会损失所有数据。
在一种可能的实施方式中,在将所述多个数据分组存储至所述多个节点中时,每一节点中的多个数据分组对应的多个数据分片中的任两个数据分片均不连续。例如,数据分组AC和BD,在将所述多个数据分组存储至所述多个节点中时,将AC和BD分别存储至不同的节点。从而进一步提高分布式存储中数据的分散性,将数据分片保存在不同节点不同的物理硬盘中,保证了数据丢失时不会损失所有数据。
在一种可能的实施方式中,对应图1中步骤S13,在所述将所述多个数据分组存储至所述多个节点中之后,参见图3,所述方法还包括:
步骤S31,针对任意两个目标数据分组,计算该两个目标数据分组的异或值;
步骤S32,将计算得到的异或值存储在目标节点中。
其中,本申请实施例中的针对任意两个目标数据分组,计算该两个目标数据分组的异或值,例如,针对数据分组AB和CD,计算对应的异或值可以为:A⊕B=a’b’ ,C⊕D=c’d’。本申请实施例中针对任意两个目标数据分组,计算该两个目标数据分组的异或值,可以针对将多个数据分片分组后得到的任一两个数据分组,将其确定为目标数据分组,然后计算该两个数据分组的异或值。在实际使用过程中,在选取目标数据分组时,还可以除去同一存储单元对应的数据分组。由于同一存储单元中的数据分组若丢失,则会同时丢失,因此不可以通过异或值进行找回。则若数据分组AC存储在一个存储单元中,则在计算异或值时并不计算数据分组AC对应的异或值。
在一种可能的实施方式中,对应图1中步骤S13,在所述将所述多个数据分组存储至所述多个节点中之后,参见图4,所述方法还包括:
步骤S41,并行获取各节点中存储的数据分组;
步骤S42,对每个节点中存储的数据分组中的数据分片进行拼接,得到目标数据。
由于本申请实施例中的数据存储在分布式存储中,因此,在获取各节点中存储的数据分组时,可以同时向多个节点发送数据获取指令,从而获取对应节点中存储的数据,提高数据的获取速度。例如,数据读取时可以同时对节点1和节点 2进行数据读取,读取最大长度为一个数据组的长度。然后对获取的数据分组中的数据分片进行拼接,从而得到目标数据,该目标数据和数据存储时的待存储数据相同。
在一种可能的实施方式中,对应上述步骤S42,所述对每个节点中存储的数据分组中的数据分片进行拼接,得到目标数据,参见图5,包括:
步骤S51,当获取任一节点中存储的数据分组失败时,获取所述目标节点中存储的数据分组的异或值;
步骤S52,根据所述数据分组的异或值和已经获取到的数据分组,计算未获取到数据分组;
步骤S53,对计算得到的数据分组和获取到的数据分组中的数据分片进行拼接,得到所述目标数据。
例如,在进行数据存储时,数据分组为AC和BD,将数据分组AC存储在节点1中,将数据分组BD存储在节点2中,而将AB、AD、BC、CD分别对应的异或值存储在节点3中,则若获取节点2中的数据分组BD失败,则可以获取节点1中的数据分组AC,以及节点3中AB、AD、BC、CD分别对应的异或值,从而根据数据分组AC和AB、AD、BC、CD分别对应的异或值计算得到数据分组CD。例如,A⊕B=a’b’ C⊕D=c’d’,假如节点 2 发生故障,则可以通过对节点 1 和节点 3进行数据读取,通过节点 3 上保存的异或数据 a’b’ c’d’和节点 1 上的保存数据A C还原出节点 2 的原始数据 B D,如果节点 3 发生故障,则可以通过节点1 保存的数据 A C和节点 2 保存的数据 B D还原出节点 3 的数据a’b’ c’d’。
可见,通过本申请实施例的方法,数据分片保存在不同节点不同的位置中,保证了数据丢失时不会损失所有数据,不但恢复难度小,而且通过采用异或算法保存数据,还可以有效节省空间占用。
为了说明本申请实施例的方法,以下结合具体实施例进行说明,参见图6,包括:
1、获取计算机硬盘中存储的数据,该数据均为0/1数据;
2、假设需要保存一段数据A、B、C、D、E、F、G、H、I、J、K、L到硬盘当中;
3、在数据保存时,先将数据打散并把间隔数据划分到一个组内,例如,AC一个组,BD一个组,EG一个组,FH一个组,IK一个组,JL一个组(当然可以将更多的数据划分在一个组内);
4、将相邻的组分别放置在不同的节点当中,例如,AC组、EG组、IK组在节点 1 中,BD组、FH组、JL组在节点 2 中,如果这个节点硬盘数量>1,那么这个节点上的组数据将分散在不同的物理硬盘上,例如, AC在硬盘 1中, EG在硬盘 2;
5、每当两组数据存储至节点之后,需要计算节点数据两个组的异或值放入节点 3中,即 A⊕B=a’b’,C⊕D=c’d’,E⊕F=e’f’,G⊕H=g’h’,I⊕J=i’j’,K⊕L=k’l’,然后将a’b’和c’d’划分为一组,将e’f’和g’h’划分为一组,将i’j’和k’l’划分为一组;
6、数据读取时可以同时对节点1和节点 2进行数据读取,读取最大长度为一个数据组的长度;
7、假如节点 2 发生故障,则可以通过对节点 1 和节点 3进行数据读取,通过节点 3 上保存的异或数据 a’b’,c’d’和节点 1 上的保存数据A C还原出节点 2 的原始数据 B D,如果节点 3 发生故障,则可以通过节点1 保存的数据 A C和节点 2 保存的数据B D还原出节点 3 的数据a’b’,c’d’。
本申请实施例的第二方面,提供了一种分布式存储装置,应用于分布式存储系统,所述分布式存储系统包括多个节点,参见图7,所述装置包括:
数据获取模块701,用于获取待存储数据,并将所述待存储数据划分为多个数据分片;
数据分组模块702,用于将所述多个数据分片划分为多个数据分组,其中,每一数据分组包括一个或多个数据分片,当一个数据分组中包括多个数据分片时,该数据分组中的多个数据分片不连续;
节点存储模块703,用于将所述多个数据分组存储至所述多个节点中,其中,每一个节点中存储有一个或多个数据分组。
在一种可能的实施方式中,所述装置还包括:
数据计算模块,用于针对任意两个目标数据分组,计算该两个目标数据分组的异或值;
数据存储模块,用于将计算得到的异或值存储在目标节点中。
在一种可能的实施方式中,所述节点存储模块,包括:
数量识别子模块,用于针对任一节点识别该节点中存储单元的数量;
分组存储子模块,用于当该节点中包括多个存储单元时,若该节点对应的数量分组的数量不小于存储单元的数量时,在每一存储单元中存储至少一个数据分组。
在一种可能的实施方式中,在将所述多个数据分组存储至所述多个节点中时,每一节点中的多个数据分组对应的多个数据分片中的任两个数据分片均不连续。
在一种可能的实施方式中,所述装置还包括:
并行获取模块,用于并行获取各节点中存储的数据分组;
数据分片模块,用于对每个节点中存储的数据分组中的数据分片进行拼接,得到目标数据。
在一种可能的实施方式中,所述数据分片模块,包括:
分组获取子模块,用于当获取任一节点中存储的数据分组失败时,获取所述目标节点中存储的数据分组的异或值;
分组计算子模块,用于根据所述数据分组的异或值和已经获取到的数据分组,计算未获取到数据分组;
数据拼接子模块,用于对计算得到的数据分组和获取到的数据分组中的数据分片进行拼接,得到所述目标数据。
可见,通过本申请实施例的分布式存装置,可以将待存储数据进行分段,然后进行分组,每个节点中存储一个或多个数据分组,通过该方法可以将待存储数据分散存储在多个节点中,无需进行数据的充分存储,从而提高数据的存储效率。
本发明实施例还提供了一种电子设备,如图8所示,包括处理器801、通信接口802、存储器803和通信总线804,其中,处理器801,通信接口802,存储器803通过通信总线804完成相互间的通信,
存储器803,用于存放计算机程序;
处理器801,用于执行存储器803上所存放的程序时,实现如下步骤:
获取待存储数据,并将所述待存储数据划分为多个数据分片;
将所述多个数据分片划分为多个数据分组,其中,每一数据分组包括一个或多个数据分片,当一个数据分组中包括多个数据分片时,该数据分组中的多个数据分片不连续;
将所述多个数据分组存储至所述多个节点中,其中,每一个节点中存储有一个或多个数据分组。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一分布式存储方法的步骤。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一分布式存储方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk (SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、存储介质及计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (10)

1.一种分布式存储方法,其特征在于,应用于分布式存储系统,所述分布式存储系统包括多个节点,所述方法包括:
获取待存储数据,并将所述待存储数据划分为多个数据分片;
将所述多个数据分片划分为多个数据分组,其中,每一数据分组包括一个或多个数据分片,当一个数据分组中包括多个数据分片时,该数据分组中的多个数据分片不连续;
将所述多个数据分组存储至所述多个节点中,其中,每一个节点中存储有一个或多个数据分组;
在所述将所述多个数据分组存储至所述多个节点中之后,所述方法还包括:
针对任意两个目标数据分组,计算该两个目标数据分组的异或值;
将计算得到的异或值存储在目标节点中;
所述将所述多个数据分组存储至所述多个节点中,包括:
针对任一节点识别该节点中存储单元的数量;
当该节点中包括多个存储单元时,若该节点对应的数量分组的数量不小于存储单元的数量时,在每一存储单元中存储至少一个数据分组。
2.根据权利要求1所述的方法,其特征在于,在将所述多个数据分组存储至所述多个节点中时,每一节点中的多个数据分组对应的多个数据分片中的任两个数据分片均不连续。
3.根据权利要求1所述的方法,其特征在于,在所述将所述多个数据分组存储至所述多个节点中之后,所述方法还包括:
并行获取各节点中存储的数据分组;
对每个节点中存储的数据分组中的数据分片进行拼接,得到目标数据。
4.根据权利要求3所述的方法,其特征在于,所述对每个节点中存储的数据分组中的数据分片进行拼接,得到目标数据,包括:
当获取任一节点中存储的数据分组失败时,获取所述目标节点中存储的数据分组的异或值;
根据所述数据分组的异或值和已经获取到的数据分组,计算未获取到数据分组;
对计算得到的数据分组和获取到的数据分组中的数据分片进行拼接,得到所述目标数据。
5.一种分布式存储装置,其特征在于,应用于分布式存储系统,所述分布式存储系统包括多个节点,所述装置包括:
数据获取模块,用于获取待存储数据,并将所述待存储数据划分为多个数据分片;
数据分组模块,用于将所述多个数据分片划分为多个数据分组,其中,每一数据分组包括一个或多个数据分片,当一个数据分组中包括多个数据分片时,该数据分组中的多个数据分片不连续;
节点存储模块,用于将所述多个数据分组存储至所述多个节点中,其中,每一个节点中存储有一个或多个数据分组;
数据计算模块,用于针对任意两个目标数据分组,计算该两个目标数据分组的异或值;
数据存储模块,用于将计算得到的异或值存储在目标节点中;
所述节点存储模块,包括:
数量识别子模块,用于针对任一节点识别该节点中存储单元的数量;
分组存储子模块,用于当该节点中包括多个存储单元时,若该节点对应的数量分组的数量不小于存储单元的数量时,在每一存储单元中存储至少一个数据分组。
6.根据权利要求5所述的装置,其特征在于,在将所述多个数据分组存储至所述多个节点中时,每一节点中的多个数据分组对应的多个数据分片中的任两个数据分片均不连续。
7.根据权利要求5所述的装置,其特征在于,所述装置还包括:
并行获取模块,用于并行获取各节点中存储的数据分组;
数据分片模块,用于对每个节点中存储的数据分组中的数据分片进行拼接,得到目标数据。
8.根据权利要求7所述的装置,其特征在于,所述数据分片模块,包括:
分组获取子模块,用于当获取任一节点中存储的数据分组失败时,获取所述目标节点中存储的数据分组的异或值;
分组计算子模块,用于根据所述数据分组的异或值和已经获取到的数据分组,计算未获取到数据分组;
数据拼接子模块,用于对计算得到的数据分组和获取到的数据分组中的数据分片进行拼接,得到所述目标数据。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-4任一所述的方法步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-4任一所述的方法步骤。
CN202311108713.5A 2023-08-31 2023-08-31 一种分布式存储方法、装置、电子设备及存储介质 Active CN116860180B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311108713.5A CN116860180B (zh) 2023-08-31 2023-08-31 一种分布式存储方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311108713.5A CN116860180B (zh) 2023-08-31 2023-08-31 一种分布式存储方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN116860180A CN116860180A (zh) 2023-10-10
CN116860180B true CN116860180B (zh) 2024-06-04

Family

ID=88230742

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311108713.5A Active CN116860180B (zh) 2023-08-31 2023-08-31 一种分布式存储方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN116860180B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106201338A (zh) * 2016-06-28 2016-12-07 华为技术有限公司 数据存储方法及装置
CN108664223A (zh) * 2018-05-18 2018-10-16 百度在线网络技术(北京)有限公司 一种分布式存储方法、装置、计算机设备及存储介质
CN109151054A (zh) * 2018-09-21 2019-01-04 长安大学 一种层次码的构造方法及故障节点的修复方法
CN111291414A (zh) * 2020-03-11 2020-06-16 深圳市网心科技有限公司 数据存储方法及装置、计算机装置及存储介质
CN112783445A (zh) * 2020-11-17 2021-05-11 北京旷视科技有限公司 数据存储方法、装置、系统、电子设备及可读存储介质
CN112799584A (zh) * 2019-11-13 2021-05-14 杭州海康威视数字技术股份有限公司 一种数据存储方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101544356B1 (ko) * 2012-10-31 2015-08-13 삼성에스디에스 주식회사 메타데이터 및 트랜잭션 발생량을 고려한 동적 샤딩 기능을 지원하는 분산 데이터베이스 관리 방법 및 그 구성 노드

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106201338A (zh) * 2016-06-28 2016-12-07 华为技术有限公司 数据存储方法及装置
CN108664223A (zh) * 2018-05-18 2018-10-16 百度在线网络技术(北京)有限公司 一种分布式存储方法、装置、计算机设备及存储介质
CN109151054A (zh) * 2018-09-21 2019-01-04 长安大学 一种层次码的构造方法及故障节点的修复方法
CN112799584A (zh) * 2019-11-13 2021-05-14 杭州海康威视数字技术股份有限公司 一种数据存储方法及装置
CN111291414A (zh) * 2020-03-11 2020-06-16 深圳市网心科技有限公司 数据存储方法及装置、计算机装置及存储介质
CN112783445A (zh) * 2020-11-17 2021-05-11 北京旷视科技有限公司 数据存储方法、装置、系统、电子设备及可读存储介质

Also Published As

Publication number Publication date
CN116860180A (zh) 2023-10-10

Similar Documents

Publication Publication Date Title
CN112579551B (zh) 数据存储和读取方法、装置、客户端、管理服务器及系统
CN110113393B (zh) 一种消息推送方法、装置、电子设备及介质
US11314451B2 (en) Method and apparatus for storing data
US8347052B2 (en) Initializing of a memory area
CN110737924B (zh) 一种数据保护的方法和设备
CN108540315A (zh) 分布式存储系统、方法和装置
CN107133228A (zh) 一种数据重分布的方法及装置
US20180060408A1 (en) Data transfer between multiple databases
CN107644081A (zh) 数据去重方法及装置
CN110708369A (zh) 设备节点的文件部署方法、装置、调度服务器及存储介质
CN111475108A (zh) 一种分布式存储方法、计算机设备及计算机可读存储介质
US9684668B1 (en) Systems and methods for performing lookups on distributed deduplicated data systems
CN113568877B (zh) 一种文件合并方法、装置、电子设备及存储介质
CN116860180B (zh) 一种分布式存储方法、装置、电子设备及存储介质
CN111046004B (zh) 一种数据文件存储方法、装置、设备及存储介质
CN108804568B (zh) 一种Openstack中副本数据在ceph中存储方法及装置
CN115934420A (zh) 一种基于分布式存储的数据恢复方法、系统、设备和介质
CN113220237A (zh) 一种分布式存储方法、装置、设备及存储介质
CN104468793B (zh) 分布式数据存储方法及分布式数据集群系统
CN109829126A (zh) 信任站点的添加方法及相关装置
CN109151016B (zh) 流量转发方法和装置、服务系统、计算设备及存储介质
CN112468546A (zh) 账号位置确定方法、装置、服务器和存储介质
CN108932305A (zh) 一种数据处理方法、装置、电子设备及存储介质
US11120054B2 (en) Hierarchical label generation for data entries
CN113656411B (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
CB02 Change of applicant information

Country or region after: China

Address after: 100176 101, Floor 1-8, Building 8, Yard 13, Ronghua South Road, Economic and Technological Development Zone, Daxing District, Beijing (Yizhuang Cluster, High end Industrial Area, Beijing Pilot Free Trade Zone)

Applicant after: AVIC International Golden Net (Beijing) Technology Co.,Ltd.

Address before: Building 8, No.13 Ronghua South Road, Daxing District Economic and Technological Development Zone, Beijing, 100176

Applicant before: AVIC INTERNATIONAL E-BUSINESS Inc.

Country or region before: China

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant