CN110737658B - 数据分片存储方法、装置、终端及可读存储介质 - Google Patents
数据分片存储方法、装置、终端及可读存储介质 Download PDFInfo
- Publication number
- CN110737658B CN110737658B CN201910844362.1A CN201910844362A CN110737658B CN 110737658 B CN110737658 B CN 110737658B CN 201910844362 A CN201910844362 A CN 201910844362A CN 110737658 B CN110737658 B CN 110737658B
- Authority
- CN
- China
- Prior art keywords
- data
- hash value
- storage
- node
- subdata
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2358—Change logging, detection, and notification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及区块存储系统领域,提供一种数据分片存储方法、装置、终端及可读存储介质,所述方法包括以下步骤:在接收到待存储数据时,计算所述待存储数据的哈希值,而后将所述待存储数据的哈希值与区块链中数据存储节点的哈希值进行对比,根据对比结果确定第一预设数量的目标存储节点,接下来将所述待存储数据拆分成第二预设数量的子数据,并基于预设存储顺序将各个子数据分别存储到各个目标存储节点中。实现了将数据拆分成预设数量的子数据,并分散存储在多个节点中,通过数据存储记录表管理区块链上的数据存贮分配情况,在减少区块链网络重复冗余的同时,提高了整个区块链网络对于存储的有效利用。
Description
技术领域
本发明涉及区块存储系统领域,尤其涉及一种数据分片存储方法、装置、终端及可读存储介质。
背景技术
目前区块链或联盟链方案,使用的存储方案为单点全量存储,每一个节点都保存了完整的区块链数据。这实现了数据分布式,使得任何节点故障都不会影响整个网络,任何节点都可以完整校验整个区块链历史的数据。但也带来了另外一个问题,随着区块链历史数据的不断增加,单点存储容量也会随之增加,与此同时越多的节点加入,重复冗余的存储也会线性增长,无形中降低了整个区块链网络对于存储的有效利用。
发明内容
本发明的主要目的在于提供一种数据分片存储方法、装置、终端及可读存储介质,旨在解决现有的区块链网络对于存储的有效利用率低的技术问题。
为实现上述目的,本发明提供一种数据分片存储方法,所述数据分片存储方法包括以下步骤:
在接收到待存储数据时,计算所述待存储数据的哈希值;
将所述待存储数据的哈希值与区块链中数据存储节点的哈希值进行对比,根据对比结果确定第一预设数量的目标存储节点;
将所述待存储数据拆分成第二预设数量的子数据,并基于预设存储顺序将各个子数据分别存储到各个目标存储节点中。
可选地,所述将所述待存储数据拆分成第二预设数量的子数据,并基于预设存储顺序将各个子数据分别存储到各个目标存储节点中的步骤之后,还包括:
基于所述待存储数据的哈希值、各个子数据对应的哈希值以及各个目标存储节点的哈希值的对应关系,更新数据存储记录表;
将所述更新后的数据存储记录表广播至区块链中的其他节点,以使其他节点更新数据存储记录表。
可选地,所述将所述更新后的数据存储记录表广播至区块链中的其他节点,以使其他节点更新数据存储记录表的步骤之后,还包括:
在接收到数据获取指令时,基于所述数据获取指令获取第一哈希值;
基于所述第一哈希值以及所述数据存储记录表确定所述第一哈希值对应的第一存储节点;
基于所述第一存储节点获取所述第一哈希值对应的第一目标子数据,并基于所述第一目标子数据生成所述第一哈希值对应的数据。
可选地,所述基于所述第一存储节点获取所述第一哈希值对应的第一目标子数据,并基于所述第一目标子数据生成所述第一哈希值对应的数据的步骤包括:
基于第一预设规则以及所述第一目标子数据生成第一数据;
确定所述第一数据的哈希值是否等于所述第一哈希值;
在所述第一数据的哈希值不等于所述第一哈希值时,继续执行基于所述第一哈希值以及所述数据存储记录表确定所述第一哈希值对应的第一存储节点的步骤。
可选地,所述将所述更新后的数据存储记录表广播至区块链中的其他节点,以使其他节点更新数据存储记录表的步骤之后,还包括:
在接收到数据删除指令时,基于所述数据删除指令获取第二哈希值;
基于所述第二哈希值以及所述数据存储记录表确定所述第二哈希值对应的第二存储节点;
发送包括所述第二哈希值的删除指令至所述第二存储节点,以使所述第二存储节点删除所述第二哈希值对应的第二目标子数据。
可选地,所述将所述更新后的数据存储记录表广播至区块链中的其他节点,以使其他节点更新数据存储记录表的步骤之后,还包括:
在接收到节点退出指令时,基于所述节点退出指令获取第三哈希值,其中,所述第三哈希值是退出节点的哈希值;
基于所述第三哈希值以及所述数据存储记录表获取所述第三哈希值对应的待转移子数据的哈希值;
基于所述待转移子数据对应的哈希值以及所述数据存储记录表,确定所述待转移子数据的哈希值对应的第三存储节点;
将所述待转移子数据存储到所述第三存储节点中;
基于所述待转移子数据的哈希值与所述第三存储节点对应的哈希值的对应关系,更新所述数据存储记录表。
可选地,所述将所述更新后的数据存储记录表广播至区块链中的其他节点,以使其他节点更新数据存储记录表的步骤之后,还包括:
在检测到新增节点时,获取所述数据存储记录表并保存至新节点;
基于第二预设规以及所述数据存储记录表确定待保存子数据,并在所述新节点保存所述待保存子数据;
基于所述待保存子数据的哈希值与所述新节点对应的哈希值的对应关系,更新所述数据存储记录表。
此外,为实现上述目的,本发明还提供一种数据分片存储装置,所述数据分片存储装置包括:
计算模块,用于在接收到待存储数据时,计算所述待存储数据的哈希值;
确定模块,用于将所述待存储数据的哈希值与区块链中数据存储节点的哈希值进行对比,根据对比结果确定第一预设数量的目标存储节点;
存储模块,用于将所述待存储数据拆分成第二预设数量的子数据,并基于预设存储顺序将各个子数据分别存储到各个目标存储节点中。
此外,为实现上述目的,本发明还提供一种数据分片存储终端,所述数据分片存储终端包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的数据分片存储程序,其中所述数据分片存储程序被所述处理器执行时,实现如上述的数据分片存储方法的步骤。
此外,为实现上述目的,本发明还提供一种可读存储介质,所述可读存储介质上存储有数据分片存储程序,所述数据分片存储程序被处理器执行时实现上述任一项所述的数据分片存储方法的步骤。
本发明提供一种数据分片存储方法,在接收到待存储数据时,计算所述待存储数据的哈希值,而后将所述待存储数据的哈希值与区块链中数据存储节点的哈希值进行对比,根据对比结果确定第一预设数量的目标存储节点,接下来将所述待存储数据拆分成第二预设数量的子数据,并基于预设存储顺序将各个子数据分别存储到各个目标存储节点中。实现了将数据拆分成预设数量的子数据,并分散存储在多个节点中,通过数据存储记录表管理区块链上的数据存贮分配情况,在减少区块链网络重复冗余的同时,提高了整个区块链网络对于存储的有效利用。
附图说明
图1为本发明实施例方案中涉及的数据分片存储终端的硬件结构示意图;
图2为本发明数据分片存储方法第一实施例的流程示意图;
图3为本发明数据分片存储方法第二实施例的流程示意图;
图4为本发明数据分片存储装置第一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例涉及的数据分片存储方法主要应用于数据分片存储终端,该数据分片存储终端可以是PC、便携计算机、移动终端等具有显示和处理功能的设备。
参照图1,图1为本发明实施例方案中涉及的数据分片存储终端的硬件结构示意图。本发明实施例中,数据分片存储终端可以包括处理器1001(例如CPU),通信总线1002,用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信;用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard);网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口);存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器,存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的硬件结构并不构成对数据分片存储终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
继续参照图1,图1中作为一种可读存储介质的存储器1005可以包括操作系统、网络通信模块以及数据分片存储程序。
在图1中,网络通信模块主要用于连接服务器,与服务器进行数据通信;而处理器1001可以调用存储器1005中存储的数据分片存储程序,并执行本发明实施例提供的数据分片存储方法。
本发明实施例提供了一种数据分片存储方法。
参照图2,图2为本发明数据分片存储方法第一实施例的流程示意图。
本实施例中,所述数据分片存储方法包括以下步骤:
步骤S10,在接收到待存储数据时,计算所述待存储数据的哈希值;
在本实施例中,待存储数据是由用户终端发送至区块链,例如,一个应用程序的安装包,在获得安装包后,计算安装包的哈希值。哈希算法是将任意长度的二进制值映射为固定长度的较小二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母,随后计算的哈希值不同。
步骤S20,将所述待存储数据的哈希值与区块链中数据存储节点的哈希值进行对比,根据对比结果确定第一预设数量的目标存储节点;
在本实施例中,预设数量指的是预先基于实际数据存储冗余需求确定的,用来存储待存储数据的节点数量。可以预先计算区块链中每个节点的哈希值,计算节点哈希值时可以以节点的硬件标识或IP地址信息为原始数据进行计算,以节点的哈希值作为节点的标识信息。计算得到待存储数据的哈希值后,将待存储数据的哈希值与节点的哈希值进行对比,确定与待存储数据哈希值最相近的预设数量的节点,作为待存储数据的存储节点,即目标存储节点。根据待存储数据的哈希值与区块链中数据存储节点的哈希值的对比结果来确定目标存储节点,可以使得数据相对均匀分布在区块链的节点中。可选地,可以采用一致性哈希算法,首先求出服务器(节点)的哈希值,并将其配置到0~232的圆上,然后采用同样的方法求出存储数据的哈希值,并映射到相同的圆上,然后从数据映射到的位置开始顺时针查找,将数据保存到找到的第一个服务器上。如果超过232仍然找不到服务器,就会保存到第一台服务器上;还可以直接采用随机算法来确定预设数量的目标存储节点。
步骤S30,将所述待存储数据拆分成第二预设数量的子数据,并基于预设存储顺序将各个子数据分别存储到各个目标存储节点中。
在本实施例中,在确定目标存储节点后,将待存储数据分成预设数量的子数据,并按照预设存储顺序将子数据分别发送并存贮到目标存储节点中,每个目标存储节点再根据区块链的存储冗余需求,继续将子数据辐射存储到其他节点。
需要说明的是,目前区块链或联盟链方案,使用的存储方案为单点全量存储,每一个节点都保存了完整的区块链数据。这实现了数据分布式,使得任何节点故障都不会影响整个网络,任何节点都可以完整校验整个区块链历史的数据,但也带来了另外一个问题,随着区块链历史数据的不断增加,单点存储容量也会随之增加,与此同时越多的节点加入,重复冗余的存储也会线性增长,无形中降低了整个区块链网络对于存储的有效利用,因此本发明在存储数据时,将待存储数据拆分成预设数量的子数据,每个区块链中的节点只保存一份子数据,大大降低了区块链的冗余度和提高了区块链存储的利用率。
进一步地,在一实施例中,步骤S30之后还包括:
步骤S40,基于所述待存储数据的哈希值、各个子数据对应的哈希值以及各个目标存储节点的哈希值的对应关系,更新数据存储记录表;
在本实施例中,数据存储记录表管理保存了待存储数据的哈希值,待存储数据的子数据对应的哈希值以及各个目标存储节点的哈希值。其中,一个待存储数据包括多个子数据,各个子数据合并可以生产待存储数据,一个目标节点保存一个子数据,为了满足区块链的存储冗余需,一个子数据会保存在区块链的多个节点中。数据存储记录表保存到区块链的各个节点中,当区块链进行数据存储、数据删除、节点增加以及节点退出等操作时,都要根据数据存储记录表中的对应关系进行操作,并及时更新数据存储记录表。
步骤S50,将所述更新后的数据存储记录表广播至区块链中的其他节点,以使其他节点更新数据存储记录表。
在本实施例中,根据不同的触发条件,区块链中的每个节点都可以进行数据存储记录表的更新。具体地,节点根据待存储数据的哈希值、各个子数据对应的哈希值以及各个目标存储节点的哈希值的对应关系,更新数据存储记录表后,将更新后的数据存储记录表广播至区块链中的其他节点,以使其他节点更新本地数据存储记录表。需要说明的是,其他节点在接收到数据存储记录表时,需要与本地已有的数据存储记录表进行比较,例如利用区块高度,当确定接收到的数据存储记录表比该节点本地的数据存储记录表新时,该节点更新数据存储记录表,否则,不更新数据存储记录表,从而保证数据存储记录表在区块链中的一致性。
本实施例提出的数据分片存储方法,通过在接收到待存储数据时,计算所述待存储数据的哈希值,而后将所述待存储数据的哈希值与区块链中数据存储节点的哈希值进行对比,根据对比结果确定第一预设数量的目标存储节点,接下来将所述待存储数据拆分成第二预设数量的子数据,并基于预设存储顺序将各个子数据分别存储到各个目标存储节点中。实现了将数据拆分成预设数量的子数据,并分散存储在多个节点中,通过数据存储记录表管理区块链上的数据存贮分配情况,在减少区块链网络重复冗余的同时,提高了整个区块链网络对于存储的有效利用。
基于第一实施例,提出本发明数据分片存储方法的第二实施例,参照图3,在本实施例中,步骤S50之后,还包括:
步骤S60,在接收到数据获取指令时,基于所述数据获取指令获取第一哈希值;
在本实施例中,区块链中的节点在接收到数据获取指令时,该数据获取指令包括一个哈希值,该哈希值对应的数据即为该数据获取指令想要获取的数据。
步骤S70,基于所述第一哈希值以及所述数据存储记录表确定所述第一哈希值对应的第一存储节点;
在本实施例中,在接收到数据获取指令时,从数据获取指令中获取第一哈希值,该哈希值对应的数据即为该数据获取指令想要获取的数据,因此,在数据存储记录表中查找与第一哈希值对应的存储节点,存储节点中保存了该哈希值对应的数据的各个子数据。
步骤S80,基于所述第一存储节点获取所述第一哈希值对应的第一目标子数据,并基于所述第一目标子数据生成所述第一哈希值对应的数据。
在本实施例中,第一存储节点包括多个节点,且一个子数据会保存在区块链的多个节点中,也就是说,按照预设选择规则,为每一个子数据挑选一个节点,进而从挑选的节点中获取子数据,并将各个子数据组合生产第一哈希值对应的数据。
举例说明,用户需要安装一个应用程序时,应用程序需要获取安装包,将该安装包的哈希值嵌入安装包获取指令发送到区块链中,区块链节点接收到该指令时,区块链节点在数据存储记录表中查找与该安装包的哈希值对应的存储节点,并从对应的存储节点中获取安装包的子数据,然后将各个子数据拼接成安装包。
进一步地,在一实施例中,步骤S80之后,还包括:
步骤a,基于第一预设规则以及所述第一目标子数据生成第一数据;
步骤b,确定所述第一数据的哈希值是否等于所述第一哈希值;
在本实施例中,在数据存储记录表中查找与第一哈希值对应的存储节点,按照预设选择规则,为每一个子数据挑选一个节点,从挑选的节点中获取子数据,进而生成待获取的数据。进一步地,生成的数据对应的哈希值,与数据获取指令包括的哈希值比较,如果两个哈希值相等,则说明生成的待获取数据是数据获取指令想要获取的数据。
步骤c,在所述第一数据的哈希值不等于所述第一哈希值时,继续执行基于所述第一哈希值以及所述数据存储记录表确定所述第一哈希值对应的第一存储节点的步骤。
在本实施例中,生成的待获取的数据对应的哈希值与数据获取指令包括的哈希值不相等,则需要重新获取子数据,一个子数据会保存在区块链的多个节点中,对存在错误数据的节点,本次要剔除,从其他节点中获取子数据。
进一步地,在一实施例中,步骤S50之后,还包括:
步骤d,在接收到数据删除指令时,基于所述数据删除指令获取第二哈希值;
在本实施例中,区块链中的节点在接收到数据删除指令时,该数据删除指令包括一个哈希值,该哈希值对应的数据即为该数据删除指令想要删除的数据。
步骤e,基于所述第二哈希值以及所述数据存储记录表确定所述第二哈希值对应的第二存储节点;
在本实施例中,在接收到数据删除指令时,从数据删除指令中获取第二哈希值,该哈希值对应的数据即为该数据删除指令想要删除的数据,因此,在数据存储记录表中查找与第二哈希值对应的存储节点,存储节点中保存了该哈希值对应的数据的各个子数据。
步骤f,发送包括所述第二哈希值的删除指令至所述第二存储节点,以使所述第二存储节点删除所述第二哈希值对应的第二目标子数据。
在本实施例中,第二存储节点包括多个节点,每个节点保存了子数据,当区块链中的一个节点接收到删除指令时,根据区块链的操作规则确定可以删除数据时,该节点发送包括第二哈希值的删除指令至第二存储节点,以使第二存储节点删除第二哈希值对应的子数据,其中,第二存储节点是保存第二哈希值对应的数据的节点。
进一步地,在一实施例中,步骤S50之后,还包括:
步骤g,在接收到节点退出指令时,基于所述节点退出指令获取第三哈希值,其中,所述第三哈希值是退出节点的哈希值;
步骤h,基于所述第三哈希值以及所述数据存储记录表获取所述第三哈希值对应的待转移子数据的哈希值;
步骤i,基于所述待转移子数据对应的哈希值以及所述数据存储记录表,确定所述待转移子数据的哈希值对应的第三存储节点;
步骤j,将所述待转移子数据存储到所述第三存储节点中;
步骤k,基于所述待转移子数据的哈希值与所述第三存储节点对应的哈希值的对应关系,更新所述数据存储记录表。
在本实施例中,在接收到特定节点的退出指令时,或由于节点故障失效导致节点退出时,该退出节点中保存了多个子数据,因此,需要在其他节点中备份子数据,保证区块链的存储冗余需求,故获取退出节点的哈希值,进而确定待转移子数据。
具体地,退出节点保存了多个子数据,在获取到退出节点的哈希值后,在数据存储记录表中,查找该哈希值对应的待转移子数据的哈希值,进一步地,根据待转移子数据的哈希值确定第三存储节点。
需要说明的是,待退出节点中的数据已经无法获取到,但是因为一个子数据会保存在多个节点中,所以只要确定待转移子数据的哈希值,进而确定子数据哈希值对应的多个节点,而后选取一个节点进行数据拷贝。
进一步地,根据数据存储记录表以及预设的节点筛选规则,确定可以存储待转移子数据的节点,即第三存储节点,而后将待转移子数据存储到所述第三存储节点中。根据待转移子数据的哈希值与第三存储节点对应的哈希值的对应关系,更新数据存储记录表。
进一步地,在一实施例中,步骤S50之后,还包括:
步骤l,在检测到新增节点时,获取所述数据存储记录表并保存至新节点;
步骤m,基于第二预设规以及所述数据存储记录表确定待保存子数据,并在所述新节点保存所述待保存子数据;
步骤n,基于所述待保存子数据的哈希值与所述新节点对应的哈希值的对应关系,更新所述数据存储记录表。
在本实施例中,在检测到区块链新增节点时,获取数据存储记录表并保存到该新增节点。新增节点中是否需要存储子数据,需要根据实际情况确定,与区块链自身的操作规则相关。如果需要在新增节点中存放子数据,则确定待保存子数据,并将其保存到新增节点中,同时,根据待保存子数据的哈希值与新节点对应的哈希值的对应关系,更新数据存储记录表。
需要说明的是,如果在新增节点中不需要存放子数据,则该新增节点仅保存数据存储记录表。
本实施例提出的数据分片存储方法,通过在在接收到数据获取指令时,基于所述数据获取指令获取第一哈希值,而后基于所述第一哈希值以及所述数据存储记录表确定所述第一哈希值对应的第一存储节点,接下来基于所述第一存储节点获取所述第一哈希值对应的第一目标子数据,并基于所述第一目标子数据生成所述第一哈希值对应的数据。实现了通过数据存储记录表管理区块链上的数据存贮分配情况,并支持数据的获取、数据的删除,节点的增加和节点的退出等操作。
此外,本发明实施例还提供一种数据分片存储装置。
参照图4,图4为本发明数据分片存储装置第一实施例的功能模块示意图。
本实施例中,所述数据分片存储装置包括:
计算模块10,用于在接收到待存储数据时,计算所述待存储数据的哈希值;
比较模块20,用于将所述待存储数据的哈希值与区块链中数据存储节点的哈希值进行对比,根据对比结果确定第一预设数量的目标存储节点;
分配模块30,用于将所述待存储数据拆分成第二预设数量的子数据,并基于预设存储顺序将各个子数据分别存储到各个目标存储节点中。
进一步地,所述数据分片存储装置还包括:
更新模块,用于基于所述待存储数据的哈希值、各个子数据对应的哈希值以及各个目标存储节点的哈希值的对应关系,更新数据存储记录表;
广播模块,用于将所述更新后的数据存储记录表广播至区块链中的其他节点,以使其他节点更新数据存储记录表。
进一步地,所述数据分片存储装置还包括:
第一获取模块,用于在接收到数据获取指令时,基于所述数据获取指令获取第一哈希值;
第一确定模块,用于基于所述第一哈希值以及所述数据存储记录表确定所述第一哈希值对应的第一存储节点;
第一生成模块,用于基于所述第一存储节点获取所述第一哈希值对应的第一目标子数据,并基于所述第一目标子数据生成所述第一哈希值对应的数据。
进一步地,所述数据分片存储装置还包括:
第二生成模块,用于基于第一预设规则以及所述第一目标子数据生成第一数据;
判断模块,用于确定所述第一数据的哈希值是否等于所述第一哈希值;
处理模块,用于在所述第一数据的哈希值不等于所述第一哈希值时,继续执行基于所述第一哈希值以及所述数据存储记录表确定所述第一哈希值对应的第一存储节点的步骤。
进一步地,所述数据分片存储装置还包括:
第二获取模块,用于在接收到数据删除指令时,基于所述数据删除指令获取第二哈希值;
第二确定模块,用于基于所述第二哈希值以及所述数据存储记录表确定所述第二哈希值对应的第二存储节点;
发送模块,用于发送包括所述第二哈希值的删除指令至所述第二存储节点,以使所述第二存储节点删除所述第二哈希值对应的第二目标子数据
进一步地,所述数据分片存储装置还包括:
第三获取模块,用于在接收到节点退出指令时,基于所述节点退出指令获取第三哈希值,其中,所述第三哈希值是退出节点的哈希值;
第三确定模块,用于基于所述第三哈希值以及所述数据存储记录表获取所述第三哈希值对应的待转移子数据的哈希值;
第四确定模块,用于基于所述待转移子数据对应的哈希值以及所述数据存储记录表,确定所述待转移子数据的哈希值对应的第三存储节点;
第一保存模块,用于将所述待转移子数据存储到所述第三存储节点中;
第一更新模块,用于基于所述待转移子数据的哈希值与所述第三存储节点对应的哈希值的对应关系,更新所述数据存储记录表。
进一步地,所述数据分片存储装置还包括:
检测模块,用于在检测到新增节点时,获取所述数据存储记录表并保存至新节点;
第二保存模块,用于第二预设规以及所述数据存储记录表确定待保存子数据,并在所述新节点保存所述待保存子数据;
第二更新模块,用于基于所述待保存子数据的哈希值与所述新节点对应的哈希值的对应关系,更新所述数据存储记录表。
此外,本发明实施例还提供一种可读存储介质。
本发明可读存储介质上存储有数据分片存储程序,其中所述数据分片存储程序被处理器执行时,实现如上述的数据分片存储方法的步骤。
其中,数据分片存储程序被执行时所实现的方法可参照本发明数据分片存储方法的各个实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (8)
1.一种数据分片存储方法,其特征在于,所述数据分片存储方法包括以下步骤:
在接收到待存储数据时,计算所述待存储数据的哈希值;
基于一致性哈希算法将所述待存储数据的哈希值与区块链中数据存储节点的哈希值进行对比,根据对比结果确定第一预设数量的目标存储节点;
将所述待存储数据拆分成第二预设数量的子数据,并基于预设存储顺序将各个子数据分别存储到各个目标存储节点中;
基于所述待存储数据的哈希值、各个子数据对应的哈希值以及各个目标存储节点的哈希值的对应关系,更新数据存储记录表;
将所述更新后的数据存储记录表广播至区块链中的其他节点,以使其他节点更新数据存储记录表;
在检测到新增节点时,获取所述数据存储记录表并保存至新节点;
基于第二预设规以及所述数据存储记录表确定待保存子数据,并在所述新节点保存所述待保存子数据;
基于所述待保存子数据的哈希值与所述新节点对应的哈希值的对应关系,更新所述数据存储记录表。
2.如权利要求1所述的数据分片存储方法,其特征在于,所述将所述更新后的数据存储记录表广播至区块链中的其他节点,以使其他节点更新数据存储记录表的步骤之后,还包括:
在接收到数据获取指令时,基于所述数据获取指令获取第一哈希值;
基于所述第一哈希值以及所述数据存储记录表确定所述第一哈希值对应的第一存储节点;
基于所述第一存储节点获取所述第一哈希值对应的第一目标子数据,并基于所述第一目标子数据生成所述第一哈希值对应的数据。
3.如权利要求2所述的数据分片存储方法,其特征在于,所述基于所述第一存储节点获取所述第一哈希值对应的第一目标子数据,并基于所述第一目标子数据生成所述第一哈希值对应的数据的步骤包括:
基于第一预设规则以及所述第一目标子数据生成第一数据;
确定所述第一数据的哈希值是否等于所述第一哈希值;
在所述第一数据的哈希值不等于所述第一哈希值时,继续执行基于所述第一哈希值以及所述数据存储记录表确定所述第一哈希值对应的第一存储节点的步骤。
4.如权利要求1所述的数据分片存储方法,其特征在于,所述将所述更新后的数据存储记录表广播至区块链中的其他节点,以使其他节点更新数据存储记录表的步骤之后,还包括:
在接收到数据删除指令时,基于所述数据删除指令获取第二哈希值;
基于所述第二哈希值以及所述数据存储记录表确定所述第二哈希值对应的第二存储节点;
发送包括所述第二哈希值的删除指令至所述第二存储节点,以使所述第二存储节点删除所述第二哈希值对应的第二目标子数据。
5.如权利要求1所述的数据分片存储方法,其特征在于,所述将所述更新后的数据存储记录表广播至区块链中的其他节点,以使其他节点更新数据存储记录表的步骤之后,还包括:
在接收到节点退出指令时,基于所述节点退出指令获取第三哈希值,其中,所述第三哈希值是退出节点的哈希值;
基于所述第三哈希值以及所述数据存储记录表获取所述第三哈希值对应的待转移子数据的哈希值;
基于所述待转移子数据对应的哈希值以及所述数据存储记录表,确定所述待转移子数据的哈希值对应的第三存储节点;
将所述待转移子数据存储到所述第三存储节点中;
基于所述待转移子数据的哈希值与所述第三存储节点对应的哈希值的对应关系,更新所述数据存储记录表。
6.一种数据分片存储装置,其特征在于,所述数据分片存储装置包括:
计算模块,用于在接收到待存储数据时,计算所述待存储数据的哈希值;
确定模块,用于基于一致性哈希算法将所述待存储数据的哈希值与区块链中数据存储节点的哈希值进行对比,根据对比结果确定第一预设数量的目标存储节点;
存储模块,用于将所述待存储数据拆分成第二预设数量的子数据,并基于预设存储顺序将各个子数据分别存储到各个目标存储节点中;
所述数据分片存储装置还用于:
基于所述待存储数据的哈希值、各个子数据对应的哈希值以及各个目标存储节点的哈希值的对应关系,更新数据存储记录表;
将所述更新后的数据存储记录表广播至区块链中的其他节点,以使其他节点更新数据存储记录表;
在检测到新增节点时,获取所述数据存储记录表并保存至新节点;
基于第二预设规以及所述数据存储记录表确定待保存子数据,并在所述新节点保存所述待保存子数据;
基于所述待保存子数据的哈希值与所述新节点对应的哈希值的对应关系,更新所述数据存储记录表。
7.一种数据分片存储终端,其特征在于,所述数据分片存储终端包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的数据分片存储程序,其中所述数据分片存储程序被所述处理器执行时,实现如权利要求1至5中任一项所述的数据分片存储方法的步骤。
8.一种可读存储介质,其特征在于,所述可读存储介质上存储有数据分片存储程序,其中所述数据分片存储程序被处理器执行时,实现如权利要求1至5中任一项所述的数据分片存储方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910844362.1A CN110737658B (zh) | 2019-09-06 | 2019-09-06 | 数据分片存储方法、装置、终端及可读存储介质 |
PCT/CN2020/106326 WO2021042923A1 (zh) | 2019-09-06 | 2020-07-31 | 数据分片存储方法、装置、终端及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910844362.1A CN110737658B (zh) | 2019-09-06 | 2019-09-06 | 数据分片存储方法、装置、终端及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110737658A CN110737658A (zh) | 2020-01-31 |
CN110737658B true CN110737658B (zh) | 2020-12-18 |
Family
ID=69267531
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910844362.1A Active CN110737658B (zh) | 2019-09-06 | 2019-09-06 | 数据分片存储方法、装置、终端及可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110737658B (zh) |
WO (1) | WO2021042923A1 (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020010503A1 (zh) * | 2018-07-10 | 2020-01-16 | 深圳花儿数据技术有限公司 | 基于多层一致性哈希的分布式数据存储方法与系统 |
CN110737658B (zh) * | 2019-09-06 | 2020-12-18 | 平安国际智慧城市科技股份有限公司 | 数据分片存储方法、装置、终端及可读存储介质 |
CN111291414A (zh) * | 2020-03-11 | 2020-06-16 | 深圳市网心科技有限公司 | 数据存储方法及装置、计算机装置及存储介质 |
CN113452630B (zh) * | 2020-03-27 | 2024-02-02 | 京东方科技集团股份有限公司 | 数据合流方法、数据拆分方法、装置、设备及存储介质 |
CN113301084A (zh) * | 2020-06-30 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 数据处理方法以及装置 |
CN111858771A (zh) * | 2020-07-30 | 2020-10-30 | 杭州复杂美科技有限公司 | 分布式数据存储方法、设备和存储介质 |
CN112688996A (zh) * | 2020-12-16 | 2021-04-20 | 宁波云麟信息科技有限公司 | 基于区块链的电子存证数据存储方法和电子设备 |
CN112632077A (zh) * | 2020-12-28 | 2021-04-09 | 深圳壹账通智能科技有限公司 | 基于redis的数据存储方法、装置、设备及存储介质 |
CN112788139B (zh) * | 2021-01-12 | 2022-11-18 | 北京工业大学 | 一种区块链存储容量优化方法及系统 |
CN115277031B (zh) * | 2021-04-13 | 2024-05-10 | 华为技术有限公司 | 一种数据处理的方法和装置 |
CN113014439B (zh) * | 2021-04-19 | 2021-10-26 | 广州大一互联网络科技有限公司 | 一种数据中心带宽的虚拟弹性管理方法 |
CN113194127B (zh) * | 2021-04-21 | 2022-08-12 | 统信软件技术有限公司 | 一种数据存储方法、数据传输方法及计算设备 |
CN113190621A (zh) * | 2021-05-06 | 2021-07-30 | 杭州复杂美科技有限公司 | 联盟链数据分片动态调节方法、计算机设备和存储介质 |
CN113609090B (zh) * | 2021-08-06 | 2024-06-18 | 杭州网易云音乐科技有限公司 | 数据存储方法及装置、计算机可读存储介质、电子设备 |
CN114416866A (zh) * | 2021-12-17 | 2022-04-29 | 深圳先进技术研究院 | 一种分布式系统的分片方法、装置、电子设备及存储介质 |
CN114363363B (zh) * | 2021-12-31 | 2024-03-22 | 杭州趣链科技有限公司 | 基于多链的数据存储方法、装置、设备及介质 |
CN114553885A (zh) * | 2022-03-02 | 2022-05-27 | 上海弘玑信息技术有限公司 | 基于dht网络的存储方法及装置、电子设备、存储介质 |
CN114877943B (zh) * | 2022-05-19 | 2024-04-09 | 生态环境部华南环境科学研究所(生态环境部生态环境应急研究所) | 一种基于区块链的生态环境监测装置 |
CN117216158A (zh) * | 2023-08-22 | 2023-12-12 | 天云融创数据科技(北京)有限公司 | 一种数据管理方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107766542A (zh) * | 2017-10-30 | 2018-03-06 | 上海分布信息科技有限公司 | 一种分区的区块链网络及其实现分区查询的方法 |
CN108600321A (zh) * | 2018-03-26 | 2018-09-28 | 中国科学院计算技术研究所 | 一种基于分布式内存云的图数据存储方法和系统 |
CN109040173A (zh) * | 2018-06-21 | 2018-12-18 | 佛山科学技术学院 | 一种政务大数据的可靠储存方法及装置 |
KR20190092362A (ko) * | 2019-07-31 | 2019-08-07 | 네이버 주식회사 | 데이터베이스 샤딩 환경에서의 데이터 복제 |
CN110169040A (zh) * | 2018-07-10 | 2019-08-23 | 深圳花儿数据技术有限公司 | 基于多层一致性哈希的分布式数据存储方法与系统 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106201338B (zh) * | 2016-06-28 | 2019-10-22 | 华为技术有限公司 | 数据存储方法及装置 |
US10097344B2 (en) * | 2016-07-15 | 2018-10-09 | Mastercard International Incorporated | Method and system for partitioned blockchains and enhanced privacy for permissioned blockchains |
CN107995270A (zh) * | 2017-11-24 | 2018-05-04 | 成都赤乌软件技术有限公司 | 一种基于区块链实现分布式文件存储的方法 |
CN109165190A (zh) * | 2018-07-11 | 2019-01-08 | 南京邮电大学 | 一种基于区块链智能合约的电子数据存证方法 |
CN109376122A (zh) * | 2018-09-25 | 2019-02-22 | 深圳市元征科技股份有限公司 | 一种文件管理方法、系统及区块链节点设备和存储介质 |
CN109271391B (zh) * | 2018-09-29 | 2021-05-28 | 武汉极意网络科技有限公司 | 数据存储方法、服务器、存储介质及装置 |
CN109634932B (zh) * | 2018-11-30 | 2021-03-23 | 北京瑞卓喜投科技发展有限公司 | 一种智能合约存储方法及存储系统 |
CN109587253B (zh) * | 2018-12-11 | 2021-06-29 | 浙江大学 | 一种基于区块链对文件实现分布式存储的方法 |
CN109739930A (zh) * | 2018-12-19 | 2019-05-10 | 平安普惠企业管理有限公司 | 基于分布式缓存系统的数据存储方法、装置、计算机设备 |
CN110062034B (zh) * | 2019-04-01 | 2021-11-12 | 中科天御(苏州)科技有限公司 | 一种区块链大文件安全存储方法及系统 |
CN110737658B (zh) * | 2019-09-06 | 2020-12-18 | 平安国际智慧城市科技股份有限公司 | 数据分片存储方法、装置、终端及可读存储介质 |
CN110730185A (zh) * | 2019-10-22 | 2020-01-24 | 张瑞 | 一种基于分布式计算的区块链大数据处理方法及系统 |
-
2019
- 2019-09-06 CN CN201910844362.1A patent/CN110737658B/zh active Active
-
2020
- 2020-07-31 WO PCT/CN2020/106326 patent/WO2021042923A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107766542A (zh) * | 2017-10-30 | 2018-03-06 | 上海分布信息科技有限公司 | 一种分区的区块链网络及其实现分区查询的方法 |
CN108600321A (zh) * | 2018-03-26 | 2018-09-28 | 中国科学院计算技术研究所 | 一种基于分布式内存云的图数据存储方法和系统 |
CN109040173A (zh) * | 2018-06-21 | 2018-12-18 | 佛山科学技术学院 | 一种政务大数据的可靠储存方法及装置 |
CN110169040A (zh) * | 2018-07-10 | 2019-08-23 | 深圳花儿数据技术有限公司 | 基于多层一致性哈希的分布式数据存储方法与系统 |
KR20190092362A (ko) * | 2019-07-31 | 2019-08-07 | 네이버 주식회사 | 데이터베이스 샤딩 환경에서의 데이터 복제 |
Non-Patent Citations (2)
Title |
---|
基于区块链技术的电子数据存证系统;孙国梓 等;《西安邮电大学学报》;20180731;第23卷(第4期);78-83 * |
基于区块链的电子数据存证的设计与实现;冒小乐 等;《中兴通讯技术》;20181231;第24卷(第6期);28-34 * |
Also Published As
Publication number | Publication date |
---|---|
CN110737658A (zh) | 2020-01-31 |
WO2021042923A1 (zh) | 2021-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110737658B (zh) | 数据分片存储方法、装置、终端及可读存储介质 | |
CN107943594B (zh) | 数据获取方法和装置 | |
US8171008B2 (en) | Data retrieval | |
CN107797817B (zh) | 应用更新方法和装置 | |
US9053203B2 (en) | Provider-specific parsing for content retrieval | |
CN111290779B (zh) | 灰度发布方法、装置、存储介质和电子设备 | |
US10983718B2 (en) | Method, device and computer program product for data backup | |
CN112149035A (zh) | 网站静态资源处理方法及装置 | |
CN110741617A (zh) | 资源更新方法、装置、计算机设备和存储介质 | |
US7895266B2 (en) | Distributed file system and method of replacing cache data in the distributed file system | |
CN112328701A (zh) | 数据同步方法、终端设备及计算机可读存储介质 | |
CN110955460A (zh) | 一种服务进程启动方法、装置、电子设备和存储介质 | |
CN108960378B (zh) | 一种数据下载方法、系统、装置和存储介质 | |
CN111045988B (zh) | 文件查找方法、设备和计算机程序产品 | |
US8607218B2 (en) | Updating computer files | |
CN109144991B (zh) | 动态分表的方法、装置、电子设备和计算机可存储介质 | |
US11586499B2 (en) | Method, device and computer program product for storing data | |
CN111291207B (zh) | 图片存储方法、装置及服务器 | |
CN113420241A (zh) | 页面访问方法及装置、电子设备、存储介质 | |
CN111104376A (zh) | 资源文件查询方法及装置 | |
CN110351310B (zh) | 一种基于层级树的文件分发方法和装置 | |
CN109962883B (zh) | 信息指示的方法、网络设备与用户设备 | |
CN112733210B (zh) | 一种设备标识获取方法、装置和计算机可读存储介质 | |
CN114281604B (zh) | 数据恢复方法、装置、电子设备及存储介质 | |
CN109347991A (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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210129 Address after: 518000 Room 201, building A, No. 1, Qian Wan Road, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen, Guangdong (Shenzhen Qianhai business secretary Co., Ltd.) Patentee after: Shenzhen saiante Technology Service Co.,Ltd. Address before: 1-34 / F, Qianhai free trade building, 3048 Xinghai Avenue, Mawan, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen, Guangdong 518000 Patentee before: Ping An International Smart City Technology Co.,Ltd. |
|
TR01 | Transfer of patent right |