CN114185678A - 数据存储方法、装置、设备及存储介质 - Google Patents
数据存储方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114185678A CN114185678A CN202111528534.8A CN202111528534A CN114185678A CN 114185678 A CN114185678 A CN 114185678A CN 202111528534 A CN202111528534 A CN 202111528534A CN 114185678 A CN114185678 A CN 114185678A
- Authority
- CN
- China
- Prior art keywords
- cluster
- node
- hash
- hash ring
- data
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种数据存储方法、装置、设备及存储介质,获取待存储数据;采用预设哈希函数计算待存储数据对应的哈希值;通过比较哈希值与预设的哈希环中各节点的标签哈希值区间,确定哈希值对应的哈希环的目标节点;不同哈希环节点映射有不同分片集群实例;将待存储数据分别存储到目标节点映射的分片集群实例和目标节点相邻的哈希环节点映射的分片集群实例中;本申请实施例能够解决现有分布式数据库集群存储数据的可靠性较差的问题。
Description
技术领域
本申请属于数据存储技术领域,尤其涉及一种数据存储方法、装置、设备及存储介质。
背景技术
随着近年来各行各业数据生产总量增长越来越迅速,单节点分片集群实例已经很难同时满足海量数据存储和高并发数据访问快速响应。分布式分片集群实例应运而生,其通过多节点,对数据和数据表切分,有效缓解海量数据存储问题,通过负载均衡、双机集群***(Highly Available,HA)等方式实现高可用、低时延的数据访问已成为大数据行业的主流选择。但是随着数据存储总量的不断攀升,分布式数据库集群必然也需要新增节点进行扩容,以满足更大数据量的业务需求。
现有分布式数据库集群采用分片集群存储数据,这种存储模式在某一分片集群不可用时,会导致相应的存储数据缺失,破坏存储数据的完整性,存储数据的可靠性较差。
发明内容
本申请实施例提供一种数据存储方法、装置、设备及存储介质,能够解决现有分布式数据库集群存储数据的可靠性较差的问题。
第一方面,本申请实施例提供一种数据存储方法,包括:
获取待存储数据;
采用预设哈希函数计算待存储数据对应的哈希值;
通过比较哈希值与预设的哈希环中各节点的标签哈希值区间,确定哈希值对应的哈希环的目标节点;不同哈希环节点映射有不同分片集群实例;
将待存储数据分别存储到目标节点映射的分片集群实例和目标节点相邻的哈希环节点映射的分片集群实例中。
在一种实施例中,在通过比较哈希值与预设的哈希环中各节点的标签哈希值区间,确定哈希值对应的哈希环的目标节点之前,方法还包括:
将数据库集群中的各分片集群实例分别划分为预设数量的虚拟节点;
将虚拟节点分别与预设的哈希环中各节点创建映射关系。
在一种实施例中,方法还包括:
在接收到数据库集群扩容指令的情况下,在数据库集群中新增数据库集群扩容指令对应的分片集群实例,以及在预设的哈希环中新增哈希环节点;
创建新增的哈希环节点与新增的分片集群实例中各虚拟节点的映射关系;
将新增的分片集群实例中存储的数据复制到新增的哈希环节点相邻的哈希环节点映射的分片集群实例中,以及将新增的哈希环节点相邻的哈希环节点映射的分片集群实例中存储的数据复制到新增的分片集群实例中。
在一种实施例中,方法还包括:
在接收到数据库集群缩容指令的情况下,删除数据库集群缩容指令对应的分片集群实例,以及删除被删除分片集群实例映射的哈希环节点。
第二方面,本申请实施例提供一种数据存储装置,包括:
获取模块,用于获取待存储数据;
计算模块,用于采用预设哈希函数计算待存储数据对应的哈希值;
确定模块,用于通过比较哈希值与预设的哈希环中各节点的标签哈希值区间,确定哈希值对应的哈希环的目标节点;不同哈希环节点映射有不同分片集群实例;
存储模块,用于将待存储数据分别存储到目标节点映射的分片集群实例和目标节点相邻的哈希环节点映射的分片集群实例中。
在一种实施例中,装置还包括划分模块和创建模块;
划分模块,用于在通过比较哈希值与预设的哈希环中各节点的标签哈希值区间,确定哈希值对应的哈希环的目标节点之前,将数据库集群中的各分片集群实例分别划分为预设数量的虚拟节点;
创建模块,用于将虚拟节点分别与预设的哈希环中各节点创建映射关系。
在一种实施例中,装置还包括新增模块和复制模块;
新增模块,用于在接收到数据库集群扩容指令的情况下,在数据库集群中新增数据库集群扩容指令对应的分片集群实例,以及在预设的哈希环中新增哈希环节点;
创建模块,还用于创建新增的哈希环节点与新增的分片集群实例中各虚拟节点的映射关系;
复制模块,用于将新增的分片集群实例中存储的数据复制到新增的哈希环节点相邻的哈希环节点映射的分片集群实例中,以及将新增的哈希环节点相邻的哈希环节点映射的分片集群实例中存储的数据复制到新增的分片集群实例中。
在一种实施例中,装置还包括删除模块;
删除模块,用于在接收到数据库集群缩容指令的情况下,删除数据库集群缩容指令对应的分片集群实例,以及删除被删除分片集群实例映射的哈希环节点。
第三方面,本申请实施例提供一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,计算机程序被处理器执行时实现第一方面的数据存储方法。
第四方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质上存储有信息传递的实现程序,程序被处理器执行时实现第一方面的数据存储方法。
第五方面,本申请实施例提供一种计算机程序产品,计算机程序产品中的指令由电子设备的处理器执行时,使得电子设备执行第一方面的数据存储方法。
本申请实施例的数据存储方法、装置、设备及存储介质,通过哈希环节点映射数据的模式存储待存储数据,并且采用预设哈希函数计算待存储数据对应的哈希值,然后通过比较哈希值与预设的哈希环中各节点的标签哈希值区间,确定哈希值对应的哈希环的目标节点,进而确定待存储数据存储的分片集群实例,确保了分片集群实例存储的负载均衡;并且,将待存储数据分别存储到目标节点映射的分片集群实例和目标节点相邻的哈希环节点映射的分片集群实例中,即使某一分片集群实例不可用,也可以在该分片集群实例映射的哈希环节点相邻的哈希环节点对应的分片集群实例中访问到不可用分片集群实例中存储的数据,保持存储数据的完整性,保证了数据库集群的高可靠性。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单的介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种数据存储方法的流程示意图;
图2是本申请实施例提供的一种哈希环示意图;
图3是本申请实施例提供的一种数据存储装置的结构示意图;
图4是本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将详细描述本申请的各个方面的特征和示例性实施例,为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本申请进行进一步详细描述。应理解,此处所描述的具体实施例仅被配置为解释本申请,并不被配置为限定本申请。对于本领域技术人员来说,本申请可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本申请的示例来提供对本申请更好的理解。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
现有分布式数据库集群采用分片集群存储数据,这种存储模式在某一分片集群不可用时,会导致相应的存储数据缺失,破坏存储数据的完整性,存储数据的可靠性较差。例如,分布式分片集群实例MongoDB是一款强大、灵活且易于扩展的通用型分片集群实例,在当前市场中得到广泛的应用。现有MongoDB分片集群容量的扩展方式是通过创建多个MongoDB分片集群实例,然后通过反向代理服务器HAProxy将请求分发到不同的MongoDB分片集群,从而实现负载均衡,并且达到扩展容量的目的。通过引入反向代理服务器实现MongoDB分片集群扩容的方式无法保证数据的高可用问题。当某个MongoDB分片集群不可用时,就会导致访问的数据缺失完整性,影响业务的处理流程。
为了解决现有技术问题,本申请实施例提供了一种数据存储方法、装置、设备及存储介质。本申请实施例通过哈希环节点映射数据的模式存储待存储数据,并且采用预设哈希函数计算待存储数据对应的哈希值,然后通过比较哈希值与预设的哈希环中各节点的标签哈希值区间,确定哈希值对应的哈希环的目标节点,进而确定待存储数据存储的分片集群实例,确保了分片集群实例存储的负载均衡;并且,将待存储数据分别存储到目标节点映射的分片集群实例和目标节点相邻的哈希环节点映射的分片集群实例中,即使某一分片集群实例不可用,也可以在该分片集群实例映射的哈希环节点相邻的哈希环节点对应的分片集群实例中访问到不可用分片集群实例中存储的数据,保持存储数据的完整性,保证了数据库集群的高可靠性。下面首先对本申请实施例所提供的数据存储方法进行介绍。
图1示出了本申请一个实施例提供的数据存储方法的流程示意图。如图1所示,该方法可以包括以下步骤:
S110,获取待存储数据。
其中,在获取待存储数据时,可以通过与存储有待存储数据的设备通信连接进行获取。
S120,采用预设哈希函数计算待存储数据对应的哈希值。
其中,预设哈希函数能够基于带存储数据算出相应的哈希值,预设哈希函数可以选用为Murmur3哈希算法。
S130,通过比较哈希值与预设的哈希环中各节点的标签哈希值区间,确定哈希值对应的哈希环的目标节点。
其中,不同哈希环节点映射有不同分片集群实例,哈希环可以如图2所示,包括T1、T2、T3、T4四个节点。预设的哈希环中各节点按预设规则预先标注有标签哈希值区间,例如该预设规则可以是:哈希环顺时针各节点标注的标签哈希值区间逐渐增大。
S140,将待存储数据分别存储到目标节点映射的分片集群实例和目标节点相邻的哈希环节点映射的分片集群实例中。
其中,如图2所示,例如待存储数据为M,目标节点为T1,在存储时,则可以将M存储到如下各组合中:T1和T2分别对应的分片集群实例;T1和T4分别对应的分片集群实例;T1、T2和T4分别对应的分片集群实例。在该存储模式下,即使某一分片集群实例不可用,也可以在该分片集群实例映射的哈希环节点相邻的哈希环节点对应的分片集群实例中访问到不可用分片集群实例中存储的数据,保持存储数据的完整性,保证了数据库集群的高可靠性。
本申请实施例通过哈希环节点映射数据的模式存储待存储数据,并且采用预设哈希函数计算待存储数据对应的哈希值,然后通过比较哈希值与预设的哈希环中各节点的标签哈希值区间,确定哈希值对应的哈希环的目标节点,进而确定待存储数据存储的分片集群实例,确保了分片集群实例存储的负载均衡;并且,将待存储数据分别存储到目标节点映射的分片集群实例和目标节点相邻的哈希环节点映射的分片集群实例中,即使某一分片集群实例不可用,也可以在该分片集群实例映射的哈希环节点相邻的哈希环节点对应的分片集群实例中访问到不可用分片集群实例中存储的数据,保持存储数据的完整性,保证了数据库集群的高可靠性。
在一种实施例中,在S130:通过比较哈希值与预设的哈希环中各节点的标签哈希值区间,确定哈希值对应的哈希环的目标节点之前,该方法还可以包括:
将数据库集群中的各分片集群实例分别划分为预设数量的虚拟节点。
将虚拟节点分别与预设的哈希环中各节点创建映射关系。
其中,考虑到采用预设哈希函数计算待存储数据对应的哈希值的多样性,将单一的分片集群实例与海量的哈希值比较来确定待存储数据应存储分片集群实例的效率较低,首先将数据库集群中的各分片集群实例分别划分为预设数量的虚拟节点,例如划分为128个虚拟节点,然后由虚拟节点分别与预设的哈希环中各节点创建映射,在比较时,可以先确定哈希环对应的虚拟节点,然后由虚拟节点确定响应的分片集群实例,提升了确定待存储数据应存储分片集群实例的效率。
在一种实施例中,该方法还可以包括:
在接收到数据库集群扩容指令的情况下,在数据库集群中新增数据库集群扩容指令对应的分片集群实例,以及在预设的哈希环中新增哈希环节点;创建新增的哈希环节点与新增的分片集群实例中各虚拟节点的映射关系;将新增的分片集群实例中存储的数据复制到新增的哈希环节点相邻的哈希环节点映射的分片集群实例中,以及将新增的哈希环节点相邻的哈希环节点映射的分片集群实例中存储的数据复制到新增的分片集群实例中。
本申请实施例在数据库集群扩容的情况下,将新增的分片集群实例中存储的数据复制到新增的哈希环节点相邻的哈希环节点映射的分片集群实例中,以及将新增的哈希环节点相邻的哈希环节点映射的分片集群实例中存储的数据复制到新增的分片集群实例中,仍旧能保证即使某一分片集群实例不可用,也可以在该分片集群实例映射的哈希环节点相邻的哈希环节点对应的分片集群实例中访问到不可用分片集群实例中存储的数据。
在一种实施例中,方法还包括:
在接收到数据库集群缩容指令的情况下,删除数据库集群缩容指令对应的分片集群实例,以及删除被删除分片集群实例映射的哈希环节点。
本申请实施例在数据库集群缩容的情况下,虽然删除了数据库集群缩容指令对应的分片集群实例,以及删除被删除分片集群实例映射的哈希环节点,但是仍旧能够在删除的分片集群实例映射的哈希环节点相邻的哈希环节点对应的分片集群实例中访问到删除的分片集群实例中存储的数据,保证数据库集群的高可靠性。
本申请实施例通过哈希环节点映射数据的模式存储待存储数据,并且采用预设哈希函数计算待存储数据对应的哈希值,然后通过比较哈希值与预设的哈希环中各节点的标签哈希值区间,确定哈希值对应的哈希环的目标节点,进而确定待存储数据存储的分片集群实例,确保了分片集群实例存储的负载均衡;并且,将待存储数据分别存储到目标节点映射的分片集群实例和目标节点相邻的哈希环节点映射的分片集群实例中,即使某一分片集群实例不可用,也可以在该分片集群实例映射的哈希环节点相邻的哈希环节点对应的分片集群实例中访问到不可用分片集群实例中存储的数据,保持存储数据的完整性,保证了数据库集群的高可靠性。
图1-2描述了数据存储方法,下面结合附图3和附图4描述本申请实施例提供的装置。
图3示出了本申请一个实施例提供的数据存储装置的结构示意图,图3所示装置中各模块具有实现图1中各个步骤的功能,并能达到其相应技术效果。如图3所示,该装置可以包括:
获取模块310,用于获取待存储数据。
计算模块320,用于采用预设哈希函数计算待存储数据对应的哈希值。
确定模块330,用于通过比较哈希值与预设的哈希环中各节点的标签哈希值区间,确定哈希值对应的哈希环的目标节点。不同哈希环节点映射有不同分片集群实例。
存储模块340,用于将待存储数据分别存储到目标节点映射的分片集群实例和目标节点相邻的哈希环节点映射的分片集群实例中。
本申请实施例通过哈希环节点映射数据的模式存储待存储数据,并且采用预设哈希函数计算待存储数据对应的哈希值,然后通过比较哈希值与预设的哈希环中各节点的标签哈希值区间,确定哈希值对应的哈希环的目标节点,进而确定待存储数据存储的分片集群实例,确保了分片集群实例存储的负载均衡。并且,将待存储数据分别存储到目标节点映射的分片集群实例和目标节点相邻的哈希环节点映射的分片集群实例中,即使某一分片集群实例不可用,也可以在该分片集群实例映射的哈希环节点相邻的哈希环节点对应的分片集群实例中访问到不可用分片集群实例中存储的数据,保持存储数据的完整性,保证了数据库集群的高可靠性。
在一种实施例中,装置还包括划分模块350和创建模块360。
划分模块350,用于在通过比较哈希值与预设的哈希环中各节点的标签哈希值区间,确定哈希值对应的哈希环的目标节点之前,将数据库集群中的各分片集群实例分别划分为预设数量的虚拟节点。
创建模块360,用于将虚拟节点分别与预设的哈希环中各节点创建映射关系。
在一种实施例中,装置还包括新增模块370和复制模块380。
新增模块370,用于在接收到数据库集群扩容指令的情况下,在数据库集群中新增数据库集群扩容指令对应的分片集群实例,以及在预设的哈希环中新增哈希环节点。
创建模块360,还用于创建新增的哈希环节点与新增的分片集群实例中各虚拟节点的映射关系。
复制模块380,用于将新增的分片集群实例中存储的数据复制到新增的哈希环节点相邻的哈希环节点映射的分片集群实例中,以及将新增的哈希环节点相邻的哈希环节点映射的分片集群实例中存储的数据复制到新增的分片集群实例中。
在一种实施例中,装置还包括删除模块390。
删除模块390,用于在接收到数据库集群缩容指令的情况下,删除数据库集群缩容指令对应的分片集群实例,以及删除被删除分片集群实例映射的哈希环节点。
本申请实施例通过哈希环节点映射数据的模式存储待存储数据,并且采用预设哈希函数计算待存储数据对应的哈希值,然后通过比较哈希值与预设的哈希环中各节点的标签哈希值区间,确定哈希值对应的哈希环的目标节点,进而确定待存储数据存储的分片集群实例,确保了分片集群实例存储的负载均衡;并且,将待存储数据分别存储到目标节点映射的分片集群实例和目标节点相邻的哈希环节点映射的分片集群实例中,即使某一分片集群实例不可用,也可以在该分片集群实例映射的哈希环节点相邻的哈希环节点对应的分片集群实例中访问到不可用分片集群实例中存储的数据,保持存储数据的完整性,保证了数据库集群的高可靠性。
图4示出了本申请一个实施例提供的电子设备的结构示意图。如图4所示,该设备可以包括处理器401以及存储有计算机程序指令的存储器402。
具体地,上述处理器401可以包括中央处理器(Central Processing Unit,CPU),或者特定集成电路(Application Specific Integrated Circuit,ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
存储器402可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器402可包括硬盘驱动器(Hard Disk Drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(Universal Serial Bus,USB)驱动器或者两个或更多个以上这些的组合。在一个实例中,存储器402可以包括可移除或不可移除(或固定)的介质,或者存储器402是非易失性固态存储器。存储器402可在综合网关容灾设备的内部或外部。
在一个实例中,存储器402可以是只读存储器(Read Only Memory,ROM)。在一个实例中,该ROM可以是掩模编程的ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可改写ROM(EAROM)或闪存或者两个或更多个以上这些的组合。
处理器401通过读取并执行存储器402中存储的计算机程序指令,以实现图1所示实施例中的方法,并达到图1所示实例执行其方法达到的相应技术效果,为简洁描述在此不再赘述。
在一个示例中,该电子设备还可包括通信接口403和总线410。其中,如图4所示,处理器401、存储器402、通信接口403通过总线410连接并完成相互间的通信。
通信接口403,主要用于实现本申请实施例中各模块、装置、单元和/或设备之间的通信。
总线410包括硬件、软件或两者,将在线数据流量计费设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(Accelerated Graphics Port,AGP)或其他图形总线、增强工业标准架构(Extended Industry Standard Architecture,EISA)总线、前端总线(Front Side Bus,FSB)、超传输(Hyper Transport,HT)互连、工业标准架构(Industry Standard Architecture,ISA)总线、无限带宽互连、低引脚数(LPC)总线、存储器总线、微信道架构(MCA)总线、***组件互连(PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(SATA)总线、视频电子标准协会局部(VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线410可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。
该电子设备可以执行本申请实施例中的数据存储方法,从而实现图1描述的数据存储方法的相应技术效果。
另外,结合上述实施例中的数据存储方法,本申请实施例可提供一种计算机存储介质来实现。该计算机存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种数据存储方法。
需要明确的是,本申请并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本申请的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本申请的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本申请的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RadioFrequency,RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
还需要说明的是,本申请中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或***。但是,本申请不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
上面参考根据本申请的实施例的方法、装置(***)和计算机程序产品的流程图和/或框图描述了本申请的各方面。应当理解,流程图和/或框图中的每个方框以及流程图和/或框图中各方框的组合可以由计算机程序指令实现。这些计算机程序指令可被提供给通用计算机、专用计算机、或其它可编程数据处理装置的处理器,以产生一种机器,使得经由计算机或其它可编程数据处理装置的处理器执行的这些指令使能对流程图和/或框图的一个或多个方框中指定的功能/动作的实现。这种处理器可以是但不限于是通用处理器、专用处理器、特殊应用处理器或者现场可编程逻辑电路。还可理解,框图和/或流程图中的每个方框以及框图和/或流程图中的方框的组合,也可以由执行指定的功能或动作的专用硬件来实现,或可由专用硬件和计算机指令的组合来实现。
以上所述,仅为本申请的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的***、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。
Claims (11)
1.一种数据存储方法,其特征在于,包括:
获取待存储数据;
采用预设哈希函数计算所述待存储数据对应的哈希值;
通过比较所述哈希值与预设的哈希环中各节点的标签哈希值区间,确定所述哈希值对应的哈希环的目标节点;不同哈希环节点映射有不同分片集群实例;
将所述待存储数据分别存储到所述目标节点映射的分片集群实例和所述目标节点相邻的哈希环节点映射的分片集群实例中。
2.如权利要求1所述的数据存储方法,其特征在于,在通过比较所述哈希值与预设的哈希环中各节点的标签哈希值区间,确定所述哈希值对应的哈希环的目标节点之前,所述方法还包括:
将数据库集群中的各分片集群实例分别划分为预设数量的虚拟节点;
将所述虚拟节点分别与所述预设的哈希环中各节点创建映射关系。
3.如权利要求2所述的数据存储方法,其特征在于,所述方法还包括:
在接收到数据库集群扩容指令的情况下,在所述数据库集群中新增所述数据库集群扩容指令对应的分片集群实例,以及在所述预设的哈希环中新增哈希环节点;
创建新增的哈希环节点与新增的分片集群实例中各虚拟节点的映射关系;
将所述新增的分片集群实例中存储的数据复制到新增的哈希环节点相邻的哈希环节点映射的分片集群实例中,以及将所述新增的哈希环节点相邻的哈希环节点映射的分片集群实例中存储的数据复制到所述新增的分片集群实例中。
4.如权利要求1-3任一项所述的数据存储方法,其特征在于,所述方法还包括:
在接收到数据库集群缩容指令的情况下,删除所述数据库集群缩容指令对应的分片集群实例,以及删除被删除分片集群实例映射的哈希环节点。
5.一种数据存储装置,其特征在于,包括:
获取模块,用于获取待存储数据;
计算模块,用于采用预设哈希函数计算所述待存储数据对应的哈希值;
确定模块,用于通过比较所述哈希值与预设的哈希环中各节点的标签哈希值区间,确定所述哈希值对应的哈希环的目标节点;不同哈希环节点映射有不同分片集群实例;
存储模块,用于将所述待存储数据分别存储到所述目标节点映射的分片集群实例和所述目标节点相邻的哈希环节点映射的分片集群实例中。
6.如权利要求5所述的数据存储装置,其特征在于,所述装置还包括划分模块和创建模块;
所述划分模块,用于在通过比较所述哈希值与预设的哈希环中各节点的标签哈希值区间,确定所述哈希值对应的哈希环的目标节点之前,将数据库集群中的各分片集群实例分别划分为预设数量的虚拟节点;
所述创建模块,用于将所述虚拟节点分别与所述预设的哈希环中各节点创建映射关系。
7.如权利要求6所述的数据存储装置,其特征在于,所述装置还包括新增模块和复制模块;
所述新增模块,用于在接收到数据库集群扩容指令的情况下,在所述数据库集群中新增所述数据库集群扩容指令对应的分片集群实例,以及在所述预设的哈希环中新增哈希环节点;
所述创建模块,还用于创建新增的哈希环节点与新增的分片集群实例中各虚拟节点的映射关系;
所述复制模块,用于将所述新增的分片集群实例中存储的数据复制到新增的哈希环节点相邻的哈希环节点映射的分片集群实例中,以及将所述新增的哈希环节点相邻的哈希环节点映射的分片集群实例中存储的数据复制到所述新增的分片集群实例中。
8.如权利要求5-7任一项所述的数据存储装置,其特征在于,所述装置还包括删除模块;
所述删除模块,用于在接收到数据库集群缩容指令的情况下,删除所述数据库集群缩容指令对应的分片集群实例,以及删除被删除分片集群实例映射的哈希环节点。
9.一种电子设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至4中任一项所述的数据存储方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有信息传递的实现程序,所述程序被处理器执行时实现如权利要求1至4中任一项所述的数据存储方法。
11.一种计算机程序产品,其特征在于,所述计算机程序产品中的指令由电子设备的处理器执行时,使得所述电子设备执行如权利要求1至4任意一项所述的数据存储方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111528534.8A CN114185678A (zh) | 2021-12-14 | 2021-12-14 | 数据存储方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111528534.8A CN114185678A (zh) | 2021-12-14 | 2021-12-14 | 数据存储方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114185678A true CN114185678A (zh) | 2022-03-15 |
Family
ID=80543786
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111528534.8A Pending CN114185678A (zh) | 2021-12-14 | 2021-12-14 | 数据存储方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114185678A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114666338A (zh) * | 2022-05-19 | 2022-06-24 | 杭州指令集智能科技有限公司 | 一种基于消息的多实例负载均衡方法和*** |
CN115001969A (zh) * | 2022-05-24 | 2022-09-02 | 中欣链证数字科技有限公司 | 一种数据存储节点部署方法、数据存储方法、装置及设备 |
CN115442439A (zh) * | 2022-08-31 | 2022-12-06 | 云知声智能科技股份有限公司 | 分布式缓存集群管理方法、***、终端及存储介质 |
-
2021
- 2021-12-14 CN CN202111528534.8A patent/CN114185678A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114666338A (zh) * | 2022-05-19 | 2022-06-24 | 杭州指令集智能科技有限公司 | 一种基于消息的多实例负载均衡方法和*** |
CN114666338B (zh) * | 2022-05-19 | 2022-08-26 | 杭州指令集智能科技有限公司 | 一种基于消息的多实例负载均衡方法和*** |
CN115001969A (zh) * | 2022-05-24 | 2022-09-02 | 中欣链证数字科技有限公司 | 一种数据存储节点部署方法、数据存储方法、装置及设备 |
CN115442439A (zh) * | 2022-08-31 | 2022-12-06 | 云知声智能科技股份有限公司 | 分布式缓存集群管理方法、***、终端及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114185678A (zh) | 数据存储方法、装置、设备及存储介质 | |
CN103019960B (zh) | 分布式缓存方法及*** | |
CN108769264B (zh) | 一种区块链分域方法 | |
CN109492013B (zh) | 应用于数据库集群的数据处理方法、装置和*** | |
CN109951508B (zh) | 基于Zookeeper的请求协调方法及装置、计算机设备及存储介质 | |
CN111858146B (zh) | 用于恢复数据的方法、设备和计算机程序产品 | |
KR20150111952A (ko) | 계층적 데이터 구조의 노드 상에서 재귀적 이벤트 리스너를 사용하기 위한 방법 및 시스템 | |
CN111464353A (zh) | 区块链节点管理方法、装置、计算机以及可读存储介质 | |
CN112671908B (zh) | 网络管理方法、装置、电子设备及可读存储介质 | |
CN114490518A (zh) | 管理流式数据存储***的索引的方法、设备和程序产品 | |
CN111444043A (zh) | 数据备份方法、装置、节点、***及介质 | |
CN112436962B (zh) | 区块链共识网络动态扩展方法、电子设备、***及介质 | |
CN117014318A (zh) | 多尺度网络节点间链路的添加方法、装置、设备及介质 | |
CN111310242B (zh) | 设备指纹生成的方法、装置、存储介质及电子设备 | |
CN116938953A (zh) | 基于区块链的数据处理方法、装置、电子设备及存储介质 | |
CN115361295B (zh) | 基于topsis的资源备份方法、装置、设备及介质 | |
CN111833608B (zh) | 路况信息的处理方法、装置 | |
CN111125163A (zh) | 用于处理数据的方法和装置 | |
CN114791912A (zh) | 一种数据处理方法、***、电子设备及存储介质 | |
CN114911515A (zh) | 配置管理方法、装置、设备及介质 | |
CN114579662A (zh) | 内存数据库同步方法、***、设备及存储介质 | |
CN112948388A (zh) | 平行链仲裁共识方法、计算机设备和存储介质 | |
CN112910936A (zh) | 数据处理方法、装置、***、电子设备及可读存储介质 | |
CN111198782A (zh) | 数据重分布方法、装置、设备及存储介质 | |
CN107203559B (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 |