分布式数据存储系统、方法和装置制造方法及图纸

技术编号:14550360 阅读:70 留言:0更新日期:2017-02-04 23:27
本申请公开了分布式数据存储系统、方法及装置。所述系统的一具体实施方式包括:数据存储节点,用于存储代理节点发送的待存储数据,各所述数据存储节点包括多个用于映射不同键值信息的哈希槽,所述待存储数据包括键值信息和数据信息;中心管理节点,用于存储记录信息,所述记录信息包括各数据存储节点所构成的集群的网络拓扑关系、哈希槽在各数据存储节点的分布情况以及各数据存储节点的负载量;所述代理节点,用于接收客户端发送的待存储数据,根据所述中心管理节点的记录信息确定与所述待存储数据对应的哈希槽和数据存储节点。该系统的实施方式结构简单、扩展性强。

Distributed data storage system, method and apparatus

The invention discloses a distributed data storage system, a method and a device thereof. Including a specific embodiment of the system: the data storage nodes for storing proxy nodes send the data to be stored, the data storage node includes a plurality of slots for the hash key information mapping, the data to be stored includes key information and data information; center management node used to store records information, load the distribution network topology, Hashi said the record information includes a data storage node cluster in the data storage node and the data storage nodes; the proxy node receives the client to send the data to be stored, hash slot and data storage node corresponding to the stored data to be determined according to the record the information of the node management center. The implementation of this system is simple and extensible.

【技术实现步骤摘要】

本申请涉及计算机
,尤其涉及分布式数据存储系统、方法和装置
技术介绍
目前,业内通常采用分布式数据存储系统进行数据存储,分布式数据存储系统既具有集群系统的可扩/缩容的特性,又可以进行分布式操作。因此,在数据存储量发生变化时,分布式数据存储系统能够通过增加/移除集群中的数据存储节点实现对分布式数据存储系统的扩/缩容。在现有的分布式数据存储系统中,通常可以采用一致性哈希算法对集群进行分片,而后对键值对数据(key-value)等进行存储。但是此种存储系统在存储数据量发生变化而需要增加/移除数据存储节点时,由于一致性哈希算法的限制,使得相邻存储节点的键值(key)映射发生的变化,容易导致数据的丢失,集群扩展性差。而更有甚者,有些分布式数据存储系统不存在中心管理机制,系统的结构复杂。
技术实现思路
本申请的目的在于提出一种改进的分布式数据存储系统、方法和装置,来解决以上
技术介绍
部分提到的技术问题。第一方面,本申请提供了一种分布式数据存储系统,所述系统包括:数据存储节点,用于存储代理节点发送的待存储数据,各所述数据存储节点包括多个用于映射不同键值信息的哈希槽,所述待存储数据包括键值信息和数据信息;中心管理节点,用于存储记录信息,所述记录信息包括各数据存储节点所构成的集群的网络拓扑关系、哈希槽在各数据存储节点的分布情况以及各数据存储节点的负载量;所述代理节点,用于接收客户端发送的待存储数据,根据所述中心管理节点的记录信息确定与所述待存储数据对应的哈希槽和数据存储节点。在一些实施例中,所述代理节点还用于:根据所述记录信息中的各所述数据存储节点的负载量,判断各所述数据存储节点的负载量是否在预设的阈值范围内;若是,则保持数据存储节点数目不变;若否,则增加/移除数据存储节点,重新分配各数据存储节点的哈希槽,并更新所述记录信息。在一些实施例中,所述代理节点进一步用于:判断是否存在数据存储节点的负载量大于所述阈值范围的最大值;若是,则增加至少一个数据存储节点;判断是否存在数据存储节点的负载量小于所述阈值范围的最小值;若是,则移除至少一个数据存储节点。在一些实施例中,当增加至少一个数据存储节点时,则将各个原数据存储节点中的部分哈希槽转移到新增加的数据存储节点中,使得哈希槽在各数据存储节点中平均分配;当移除至少一个数据存储节点时,则将移除的数据存储节点中的哈希槽转移到剩余的数据节点中,使得哈希槽在各数据存储节点中平均分配。在一些实施例中,所述系统用于云计算环境;以及所述系统还包括:资源管理节点,用于为所述系统分配云计算资源;所述代理节点进一步用于从所述资源管理节点获取云计算资源。第二方面,本申请提供了一种分布式数据存储方法,所述方法包括:接收客户端发送的待存储数据,其中,所述待存储数据包括键值信息和该哈希槽所在的第一数据信息;根据中心管理节点存储的记录信息,确定与所述键值信息对应的哈希槽和数据存储节点,其中,所述记录信息包括各数据存储节点所构成的集群的网络拓扑关系、哈希槽在各数据存储节点的分布情况以及各数据存储节点的负载量,各所述数据存储节点包括多个用于映射键值信息的哈希槽;根据所述键值信息,将所述待存储数据存储到所述第一数据存储节点。在一些实施例中,所述方法还包括:根据所述记录信息中的各所述数据存储节点的负载量,判断各所述数据存储节点的负载量是否在预设的阈值范围内;若是,则保持数据存储节点数目不变;若否,则增加/移除数据存储节点,重新分配各数据存储节点的哈希槽,并更新所述记录信息。在一些实施例中,所述增加/移除数据存储节点,包括:当存在负载量大于所述阈值范围的最大值的数据存储节点时,则增加至少一个数据存储节点;当存在负载量小于所述阈值范围的最小值的数据存储节点时,则移除至少一个数据存储节点。在一些实施例中,所述重新分配各数据存储节点的哈希槽,并更新所述记录信息,包括:当增加至少一个数据存储节点时,则将原数据存储节点中的部分哈希槽转移到新增加的数据存储节点中,使得哈希槽在各数据存储节点中平均分配,并更新所述记录信息;当移除至少一个数据存储节点时,则将移除的数据存储节点中的哈希槽转移到剩余的数据节点中,使得哈希槽在各数据存储节点中平均分配,并更新所述记录信息。在一些实施例中,所述方法用于云计算环境;以及所述方法还包括:从资源管理节点获取云计算资源。第三方面,本申请提供了一种分布式数据存储装置,所述装置包括:接收模块,配置用于接收客户端发送的待存储数据,其中,所述待存储数据包括键值信息和数据信息;确定模块,配置用于根据中心管理节点存储的记录信息,确定与所述键值信息对应的哈希槽和该哈希槽所在的第一数据存储节点,其中,所述记录信息包括各数据存储节点所构成的集群的网络拓扑关系、哈希槽在各数据存储节点的分布情况以及各数据存储节点的负载量,各所述数据存储节点包括多个用于映射键值信息的哈希槽;存储模块,配置用于根据所述键值信息,将所述待存储数据存储到所述第一数据存储节点。在一些实施例中,所述装置还包括:判断模块,配置用于根据所述记录信息中的各所述数据存储节点的负载量,判断各所述数据存储节点的负载量是否在预设的阈值范围内;若是,则保持数据存储节点数目不变;若否,则增加/移除数据存储节点,重新分配各数据存储节点的哈希槽,并更新所述记录信息。在一些实施例中,所述判断模块进一步配置用于:当存在负载量大于所述阈值范围的最大值的数据存储节点时,则增加至少一个数据存储节点;当存在负载量小于所述阈值范围的最小值的数据存储节点时,则移除至少一个数据存储节点。在一些实施例中,所述判断模块进一步配置用于:当增加至少一个数据存储节点时,则将原数据存储节点中的部分哈希槽转移到新增加的数据存储节点中,使得哈希槽在各数据存储节点中平均分配,并更新所述记录信息;当移除至少一个数据存储节点时,则将移除的数据存储节点中的哈希槽转移到剩余的数据节点中,使得哈希槽在各数据存储节点中平均分配,并更新所述记录信息。在一些实施例中,所述装置用于云计算环境;以及所述装置还包括:获取模块,配置用于从资源管理节点获取云计算资源。本申请提供的分布式数据存储系统、方法和装置,代理节点根据中心管理节点中存储的哈希槽在各数据存储节点的分布情况、数据存储节点中的哈希槽与各键值信息的映射本文档来自技高网...
分布式数据存储系统、方法和装置

【技术保护点】
一种分布式数据存储系统,其特征在于,所述系统包括:数据存储节点,用于存储代理节点发送的待存储数据,各所述数据存储节点包括多个用于映射不同键值信息的哈希槽,所述待存储数据包括键值信息和数据信息;中心管理节点,用于存储记录信息,所述记录信息包括各数据存储节点所构成的集群的网络拓扑关系、哈希槽在各数据存储节点的分布情况以及各数据存储节点的负载量;所述代理节点,用于接收客户端发送的待存储数据,根据所述中心管理节点的记录信息确定与所述待存储数据对应的哈希槽和数据存储节点。

【技术特征摘要】
1.一种分布式数据存储系统,其特征在于,所述系统包括:
数据存储节点,用于存储代理节点发送的待存储数据,各所述数
据存储节点包括多个用于映射不同键值信息的哈希槽,所述待存储数
据包括键值信息和数据信息;
中心管理节点,用于存储记录信息,所述记录信息包括各数据存
储节点所构成的集群的网络拓扑关系、哈希槽在各数据存储节点的分
布情况以及各数据存储节点的负载量;
所述代理节点,用于接收客户端发送的待存储数据,根据所述中
心管理节点的记录信息确定与所述待存储数据对应的哈希槽和数据存
储节点。
2.根据权利要求1所述的分布式数据存储系统,其特征在于,所
述代理节点还用于:
根据所述记录信息中的各所述数据存储节点的负载量,判断各所
述数据存储节点的负载量是否在预设的阈值范围内;
若是,则保持数据存储节点数目不变;
若否,则增加/移除数据存储节点,重新分配各数据存储节点的哈
希槽,并更新所述记录信息。
3.根据权利要求2所述的分布式数据存储系统,其特征在于,所
述代理节点进一步用于:
判断是否存在负载量大于所述阈值范围的最大值的数据存储节
点;
若是,则增加至少一个数据存储节点;
判断是否存在负载量小于所述阈值范围的最小值的数据存储节
点;
若是,则移除至少一个数据存储节点。
4.根据权利要求2或3所述的分布式数据存储系统,其特征在于,
当增加至少一个数据存储节点时,则将各个原数据存储节点中的部分
哈希槽转移到新增加的数据存储节点中,使得哈希槽在各数据存储节
点中平均分配;
当移除至少一个数据存储节点时,则将移除的数据存储节点中的
哈希槽转移到剩余的数据节点中,使得哈希槽在各数据存储节点中平
均分配。
5.根据权利要求4所述的分布式数据存储系统,其特征在于,所
述系统用于云计算环境;以及
所述系统还包括:资源管理节点,用于为所述系统分配云计算资
源;
所述代理节点进一步用于从所述资源管理节点获取云计算资源。
6.一种基于权利要求1-5任意一项所述的分布式数据存储系统实
现的分布式数据存储方法,其特征在于,所述方法包括:
接收客户端发送的待存储数据,其中,所述待存储数据包括键值
信息和数据信息;
根据中心管理节点存储的记录信息,确定与所述键值信息对应的
哈希槽和该哈希槽所在的第一数据存储节点,其中,所述记录信息包
括各数据存储节点所构成的集群的网络拓扑关系、哈希槽在各数据存
储节点的分布情况以及各数据存储节点的负载量,各所述数据存储节
点包括多个用于映射键值信息的哈希槽;
根据所述键值信息,将所述待存储数据存储到所述第一数据存储
节点。
7.根据权利要求6所述的分布式数据存储方法,其特征在于,所
述方法还包括:
根据所述记录信息中的各所述数据存储节点的负载量,判断各所
述数据存储节点的负载量是否在预设的阈值范围内;
若是,则保持数据存储节点数目不变;
若否,则增加/移除数据存储节点,重新分配各数据存储节点的哈
希槽,并更新所述记录信息。
8.根据权利要求6或7所述的分布...

【专利技术属性】
技术研发人员:宋惠卿孙晓
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1