CN106572153A - 集群的数据存储方法及装置 - Google Patents
集群的数据存储方法及装置 Download PDFInfo
- Publication number
- CN106572153A CN106572153A CN201610920541.5A CN201610920541A CN106572153A CN 106572153 A CN106572153 A CN 106572153A CN 201610920541 A CN201610920541 A CN 201610920541A CN 106572153 A CN106572153 A CN 106572153A
- Authority
- CN
- China
- Prior art keywords
- data
- stored
- node
- cluster
- nodes
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供一种集群的数据存储方法及装置,其中所述方法包括:按照集群中各节点的网络地址,将集群中的多个节点映射到一致性哈希环上;响应于多个客户端的待存储数据的写入请求,向所述多个客户端发送选举指令;响应于多个客户端选举出的主写入者的待存储数据的写入请求,确定待存储数据的属性信息;根据待存储数据的属性信息,将待存储数据映射到一致性哈希环上,从一致性哈希环上的多个节点中确定与待存储数据相关联的待存储的节点;将所确定的待存储的节点的网络地址发送至所述主写入者。本发明实施例提供的集群的数据存储方法及装置,能够在不对存储集群扩容的情况下提高节点存储的吞吐量,有效的节省了存储成本。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种集群的数据存储方法及装置。
背景技术
近年来,互联网有着惊人的发展,互联网的应用也层出不穷。互联网迅猛的发展,对网络存储等提出了更高的要求。网络带宽的增加,促使互联网涌现了一大批新型应用,例如互联网直播的应用,进一步带动了存储行业的发展。
在存储技术的实际应用中,通常采用集群技术,将两台或多台服务器节点组成一个集群,为用户提供更高效的容错和故障恢复能力,增加了对海量任务的处理能力,从而提供了更好的可靠性和实用性。
以内容分发网络(Content Delivery Network,CDN)为例,在现有技术中存在这样一个现象,网络的带宽已经超过了集群中节点存储的吞吐量,因此多个客户端可以同时访问一个存储节点,但是当数量较多的客户端同时访问一个节点时,例如对节点进行数据写入操作时,写入数据的速度会很慢,甚至会出现节点宕机的情况,而且频繁的输入/输出(Input/Output,IO)操作对节点的存储设备例如磁盘的损害较大,容易出现损坏故障。
发明人在实现本发明的过程中发现,在现有技术中通常通过对存储集群进行扩容以使节点存储的吞吐量达到网络带宽的要求,从而导致存储的成本急剧上升。
发明内容
为了至少解决现有技术中存在的集群中节点的存储吞吐量与存储成本无法兼顾和平衡的技术问题,第一方面,本发明实施例提供了一种集群的数据存储方法,包括:
按照集群中各节点的网络地址,将集群中的多个节点映射到一致性哈希环上;
响应于多个客户端的待存储数据的写入请求,向所述多个客户端发送进行选举指令;
响应于多个客户端选举出的主写入者的待存储数据的写入请求,确定待存储数据的属性信息;
根据所述待存储数据的属性信息,将所述待存储数据映射到所述一致性哈希环上,从所述一致性哈希环上的多个节点中确定与所述待存储数据相关联的待存储的节点;
将所确定的待存储的节点的网络地址发送至所述主写入者。
第二方面,本发明实施例提供了一种集群的数据存储装置,包括:
节点映射模块,用于按照集群中各节点的网络地址,将集群中的多个节点映射到一致性哈希环上;
选举指令发送模块,用于响应于多个客户端的待存储数据的写入请求,向所述多个客户端发送进行选举指令;
数据属性确定模块,用于响应于多个客户端选举出的主写入者的待存储数据的写入请求,确定待存储数据的属性信息;
存储节点确定模块,用于根据所述待存储数据的属性信息,将所述待存储数据映射到所述一致性哈希环上,从所述一致性哈希环上的多个节点中确定与所述待存储数据相关联的待存储的节点;
数据写入定位模块,用于将所确定的待存储的节点的网络地址发送至所述主写入者。
第三方面,本发明实施例还提供了一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行本发明上述任一项集群的数据存储方法。
第四方面,本发明实施例还提供了一种电子设备,包括:至少一个处理器;以及存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明上述任一项集群的数据存储方法。
第五方面,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述任一项集群的数据存储方法。
本发明实施例提供的集群的数据存储方法及装置,能够在不对存储集群扩容的情况下提高节点存储的吞吐量,有效的节省了存储成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的集群的数据存储方法的流程图;
图2为本发明一实施例提供的集群的数据存储方法的实施图;
图3为本发明另一实施例提供的集群的数据存储方法的流程图;
图4为本发明又一实施例提供的集群的数据存储方法的流程图;
图5为本发明再一实施例提供的集群的数据存储方法的流程图;
图6为本发明一实施例提供的集群的数据存储装置的结构示意图;
图7为本发明另一实施例提供的集群的数据存储装置的结构示意图;
图8为本发明另一实施例提供的集群的数据存储装置的结构示意图;
图9为本发明另一实施例提供的集群的数据存储装置的结构示意图;
图10为本发明一实施例提供的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种集群的数据存储方法,包括:
步骤S10:按照集群中各节点的网络地址,将集群中的多个节点映射到一致性哈希环上;
步骤S11:响应于多个客户端的待存储数据的写入请求,向所述多个客户端发送进行选举指令;
步骤S12:响应于多个客户端选举出的主写入者的待存储数据的写入请求,确定待存储数据的属性信息;
步骤S13:根据所述待存储数据的属性信息,将所述待存储数据映射到所述一致性哈希环上,从所述一致性哈希环上的多个节点中确定与所述待存储数据相关联的待存储的节点;
步骤S14:将所确定的待存储的节点的网络地址发送至所述主写入者。
在本实施例中,对于步骤S10,利用一致性哈希算法(例如Chord算法),对集群中的各节点的网络地址进行一致性哈希运算,将运算得到的结果映射到一致性哈希环上,其中,集群中的每一个节点映射到一致性哈希环上后为该一致性哈希环上的一个点,即集群中的一个节点对应于一致性哈希环上唯一的一个点。
作为一个具体的示例,当采用的一致性哈希算法为MD5,CRC32(CyclicRedundancy Check循环冗余校验码,CRC32则表示会产生一个32比特的校验值)时,上述一致性哈希环为将0~(232-1)范围内的数值按照顺时针方向从小到大排列的圆环。假定集群中共有5个节点(节点A、B、C、D、E),利用一致性哈希算法MD5分别对5个节点的网络地址进行一致性哈希运算,运算结果分别为哈希值A(节点A)、哈希值B(节点B)、哈希值C(节点C)、哈希值D(节点D)、哈希值E(节点E),其中0<哈希值A<哈希值D<哈希值C<哈希值B<哈希值E<(232-1)。
对于步骤S11:当接收到多个客户端的待存储数据的写入请求后,向所述多个客户端发送进行选举的指令,多个客户端接收到进行选举的指令后,多个客户端自主进行选举,例如根据raft协议选定其中一个客户端为主写入者。
对于步骤S12,在可选的实施例中,所述接收到的主写入者发送的写入请求可以包括待存储数据的文件名以及文件大小,通过所述写入请求可以确定待存储数据的属性信息,例如文件名。
对于步骤S13,利用同样的一致性哈希算法对所述待存储数据的属性信息例如文件名进行一致性哈希运算,将运算结果映射到所述一致性哈希环上,若待存储数据的一致性哈希运算结果与集群中的某个节点的一致性哈希运算结果相同,则所述某个节点为与该待存储数据相关联的待存储的节点;若待存储数据的一致性哈希运算结果与集群中的每个节点的一致性哈希运算结果都不相同,则在一致性哈希环上,按照顺时针方向,与待存储数据在一致性哈希环上的位置距离最近的节点为与该待存储数据相关联的待存储的节点。
继续上述示例,对待存储数据data1、data2及data3的属性信息进行一致性哈希运算分别得到键值1、键值2及键值3,将各待存储数据的一致性哈希运算结果映射到一致性哈希环上,按照顺时针方向,节点C与待存储数据data1的位置距离最近,则与待存储数据data1相关联的存储节点为节点C;节点B与待存储数据data2的位置距离最近,则与待存储数据data2相关联的存储节点为节点B;节点D与待存储数据data3的位置距离最近,则与待存储数据data3相关联的存储节点为节点D,其中待存储数据、与待存储数据相关联的待存储节点在一致性哈希环上的分布如图2所示。
本发明实施例提供的集群的数据存储方法,将现有技术中多路流IO(多个客户端的写入)缩减到一路流IO(主写入者的写入),提高了节点的存储吞吐量。另外,本发明实施例提供的集群的数据存储方法将待存储数据的属性信息例如文件名进行一致性哈希运算并映射到一致性哈希环上,定位到具体的待存储节点,因此当检索某存储数据时,以文件名为索引,索引的内容为物理存储的内容的文件名,数据检索效率高。
如图3所示为本发明另一实施例提供的集群的数据存储方法,包括如下步骤:
步骤S35:响应于所述多个客户端中除所述主写入者之外的剩余客户端选举出的补充写入者的补充写入请求,确定待存储数据的写入状态信息;
步骤S36:将所述待存储数据的写入状态信息和所确定的节点的网络地址发送至所述补充主写入者。
本实施例中,步骤S30-S34与图1中的步骤S10-S14相同,本实施例在此不再赘述。
作为一个具体的示例,在将所确定的待存储的节点的网络地址发送给所述主写入者后,所述主写入者将待存储的数据写入所述待存储的节点,在主写入者写入待存储数据时,将待存储数据的偏移量写入所述待存储的节点,主写入者写入的数据格式可以是数据内容+偏移量。若主写入者在还未将待存储数据完全写入相关联的待存储的节点时写入中断,则除所述主写入者之外剩余的客户端进行选举,选举出补充写入者。
当接收到补充写入者发送的补充写入请求后,通过存储接口向所述待存储的节点中查询待存储数据的偏移量,然后将查询到的待存储数据的偏移量和待存储的节点的网络地址发送至所述补充写入者,补充写入者根据接收到的待存储数据的偏移量,补充数据,将未写入的数据写入待存储的节点。
本发明实施例通过将未完全写入节点的待存储数据的偏移量和所述节点的网络地址发送至补充写入者,避免了因主写入者宕机或其他突发情况写入中断而导致的待存储的节点中的存储数据不完整的危险,保证了将待存储数据完整地存储到相关联的节点中。
如图4所示为本发明另一实施例提供的集群的数据存储方法,包括如下步骤:
步骤S47:在待存储的节点被完全写入待存储数据生成数据副本后,确定所述待存储的节点在所述一致性哈希环上的至少一个后继节点;
步骤S48:将所述数据副本备份至所述至少一个后继节点。
本实施例中,步骤S40-S46与图3中的步骤S30-S36相同,本实施例在此不再赘述。
对于步骤S47,当待存储节点中被写入的待存储数据的大小与主写入者发送的写入请求中包含的待存储数据的大小相同时,则在所述待存储节点生成待存储数据的数据副本。在一致性哈希环上,按照顺时针方向,待存储的节点后面的节点为所述待存储的节点的后继节点。
继续上述的示例,在待存储数据data1由补充写入者完全写入节点C生成数据副本后,在一致性哈希环上按顺时针方向,节点C后面的节点B和节点E为节点C的后继节点,将数据data1的副本备份至节点B和节点E中。
本发明实施例提供的集群的数据存储方法将写入待存储节点的数据进行备份,提高了数据的安全性,防止单点失效。
如图5所示为本发明另一实施例提供的集群的数据存储方法的流程图,本实施例为图4中的步骤S48之后的步骤,包括如下步骤:
步骤S501:检测集群中所有节点的数据副本的状态;
步骤S502:若所述所有节点中部分节点存在数据损坏的坏数据副本,则检测剩余节点中是否存在与所述坏数据副本关联的可用数据副本;
步骤S503:当存在可用数据副本时,利用所述可用数据副本所在的节点将所述可用数据副本同步至所述部分节点。
作为一个具体的示例,在将待存储的数据备至所述至少一个后继节点后,可以生成待存储数据、待存储数据的大小、数据副本数量以及存储节点的映射列表,当检测到集群中部分节点中的数据副本的大小或某存储数据的数据副本数量与所述映射列表中记录的大小或数据副本数量不一致时,从所述映射列表中查询是否存在与坏数据副本关联的可用数据副本;当存在可用数据副本时,利用所述可用数据副本所在的节点将所述可用数据副本同步至所述某部分节点。
以数据data1为例,在将数据data1备份至节点B和节点E之后,此时数据data1有3个数据副本,每个数据副本的大小一致均为530M,检测节点B、节点C和节点E中的数据副本的大小,若节点B中数据data1为500M而节点C和节点E中数据data1为530M,则节点B中的数据副本为坏数据副本,利用节点B或节点E中的数据副本同步至节点B。
本发明实施例提供的集群的数据存储方法能够保证存储数据的安全性以及存储数据在不同存储节点中的一致性。
在本发明的可选实施例提供的集群的数据存储方法中,检测集群中各节点的数据副本的状态包括:
周期性地检测集群中所有节点的数据副本的状态,和/或
监控集群中所有节点的存储设备的工作状态,
若某节点中存在不可用的存储设备,则对集群中所有节点的数据副本的状态进行检测。
在可选的实施中,在将数据data1备份至节点B和节点E之后,可以每天检测一次节点的数据副本的状态,也可以每周检测一次节点的数据副本的状态;也可以实时监控集群中各节点的存储设备的工作状态,如磁盘是否可用,当存在不可用的磁盘时,检测集群中所有节点的存储数据的数据副本的数量;还可以一方面每天检测集群中所有节点的数据副本的状态,另一方面实时监控所有节点的存储设备的工作状态。
本发明实施例提供的集群的数据存储方法能够提高节点中存储数据的安全性,降低了数据丢失的风险。
如图6所示为本发明实施例提供了一种集群的数据存储装置60,包括:
节点映射模块601,用于按照集群中各节点的网络地址,将集群中的多个节点映射到一致性哈希环上;
选举指令发送模块602,响应于多个客户端的待存储数据的写入请求,向所述多个客户端发送进行选举指令;
数据属性确定模块603,用于响应于多个客户端选举出的主写入者的待存储数据的写入请求,确定待存储数据的属性信息;
存储节点确定模块604,用于根据所述待存储数据的属性信息,将所述待存储数据映射到所述一致性哈希环上,从所述一致性哈希环上的多个节点中确定与所述待存储数据相关联的待存储的节点;
数据写入定位模块605,用于将所确定的待存储的节点的网络地址发送至所述主写入者。
本发明实施例提供的集群的数据存储装置,将现有技术中多路流IO(多个客户端的写入)缩减到一路流IO(主写入者的写入),提高了节点的存储吞吐量。
在一些可选的实施例中,如图7所示,本发明实施例提供的集群的数据存储装置还包括:
数据状态确定模块706,用于响应于所述多个客户端中除所述主写入者之外的剩余客户端选举出的补充写入者的补充写入请求,确定待存储数据的写入状态信息。
在本实施例中,所述数据写入定位模块705,用于将所述待存储数据的写入状态信息和所确定的节点的网络地址发送至所述补充主写入者。
本发明实施例通过将未完全写入节点的待存储数据的偏移量和所述节点的网络地址发送至补充写入者,避免了因主写入者宕机或其他突发情况写入中断而导致的待存储的节点中的存储数据不完整的危险,保证了将待存储数据完整地存储到相关联的节点中。
在一些可选的实施例中,如图8所示,本发明实施例提供的集群的数据存储装置还包括:
后继节点确定模块807,用于在所述待存储的节点被完全写入待存储数据生成数据副本后,确定所述待存储的节点在所述一致性哈希环上的至少一个后继节点;
副本备份模块808,用于将所述数据副本备份至所述至少一个后继节点。
本发明实施例提供的集群的数据存储装置将写入待存储节点的数据进行备份,提高了数据的安全性。
在一些可选的实施例中,如图9所示,本发明实施例提供的集群的数据存储装置还包括:
副本检测模块909,用于检测集群中所有节点的数据副本的状态;
副本同步模块910,用于若所有节点中部分节点存在数据损坏的坏数据副本,则检测剩余节点中是否存在与所述坏数据副本关联的可用数据副本;当存在可用数据副本时,利用所述可用数据副本所在的节点将所述可用数据副本同步至所述部分节点。
在一些可选的实施例中,上述所述副本检测模块,用于:
周期性地检测集群中所有节点的数据副本的状态;和/或
用于监控集群中所有节点的存储设备的工作状态,若某节点中存在不可用的存储设备,则对集群中所有节点的数据副本的状态进行检测。
本发明实施例提供的集群的数据存储方法能够保证存储数据的安全性以及存储数据在不同存储节点中的一致性。
本发明实施例提供的集群的数据存储装置能够解决与上述方法实施例同样的技术问题并能达到同样的技术效果。
本发明实施例提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的集群的数据存储方法;
作为一种实施方式,本发明的非易失性计算机存储介质存储有计算机可执行指令,所述计算机可执行指令设置为:
按照集群中各节点的网络地址,将集群中的多个节点映射到一致性哈希环上;
响应于多个客户端的待存储数据的写入请求,向所述多个客户端发送进行选举指令;
响应于多个客户端选举出的主写入者的待存储数据的写入请求,确定待存储数据的属性信息;
根据所述待存储数据的属性信息,将所述待存储数据映射到所述一致性哈希环上,从所述一致性哈希环上的多个节点中确定与所述待存储数据相关联的待存储的节点;
将所确定的待存储的节点的网络地址发送至所述主写入者。
作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的集群的数据存储方法对应的程序指令/模块(例如,附图6所示的节点映射模块601、选举指令发送模块602、数据属性确定模块603、存储节点确定模块604和数据写入定位模块605)。所述一个或者多个模块存储在所述非易失性计算机可读存储介质中,当被处理器执行时,执行上述任意方法实施例中的集群的数据存储方法。
非易失性计算机可读存储介质可以包括存储程序区和存储数据区,其中,存储程序区可存储操作装置、至少一个功能所需要的应用程序;存储数据区可存储根据存储器的存储优化装置的使用所创建的数据等。此外,非易失性计算机可读存储介质可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,非易失性计算机可读存储介质可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至存储器的存储优化装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述任一项方法实施例中的集群的数据存储方法。
图10是本发明一实施例提供的电子设备的结构示意图,如图10所示,该设备包括:
一个或多个处理器1010以及存储器1020,图10中以一个处理器1010为例。
存储器的存储优化方法的设备还可以包括:输入装置1030和输出装置1040。
处理器1010、存储器1020、输入装置1030和输出装置1040可以通过总线或者其他方式连接,图10中以通过总线连接为例。
存储器1020为上述的非易失性计算机可读存储介质。处理器1010通过运行存储在存储器1020中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例集群的数据存储方法。
输入装置1030可接收输入的数字或字符信息,以及产生与存储器的存储优化装置的用户设置以及功能控制有关的键信号输入。输出装置1040可包括显示屏等显示设备。
上述产品可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例所提供的方法。
作为一种实施方式,上述电子设备包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
按照集群中各节点的网络地址,将集群中的多个节点映射到一致性哈希环上;
响应于多个客户端的待存储数据的写入请求,向所述多个客户端发送进行选举指令;
响应于多个客户端选举出的主写入者的待存储数据的写入请求,确定待存储数据的属性信息;
根据所述待存储数据的属性信息,将所述待存储数据映射到所述一致性哈希环上,从所述一致性哈希环上的多个节点中确定与所述待存储数据相关联的待存储的节点;
将所确定的待存储的节点的网络地址发送至所述主写入者。
本发明实施例的电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、装置总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子装置。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (11)
1.一种集群的数据存储方法,包括:
按照集群中各节点的网络地址,将集群中的多个节点映射到一致性哈希环上;
响应于多个客户端的待存储数据的写入请求,向所述多个客户端发送选举指令;
响应于多个客户端选举出的主写入者的待存储数据的写入请求,确定待存储数据的属性信息;
根据所述待存储数据的属性信息,将所述待存储数据映射到所述一致性哈希环上,从所述一致性哈希环上的多个节点中确定与所述待存储数据相关联的待存储的节点;
将所确定的待存储的节点的网络地址发送至所述主写入者。
2.根据权利要求1所述的方法,其中,在将所确定的待存储的节点的网络地址发送至所述主写入者之后,包括:
响应于所述多个客户端中除所述主写入者之外的剩余客户端选举出的补充写入者的补充写入请求,确定所述待存储数据的写入状态信息;
将所述待存储数据的写入状态信息和所确定的节点的网络地址发送至所述补充主写入者。
3.根据权利要求1或2所述的方法,其中,所述方法还包括:
在所述待存储的节点被完全写入所述待存储数据生成数据副本后,确定所述待存储的节点在所述一致性哈希环上的至少一个后继节点;
将所述数据副本备份至所述至少一个后继节点。
4.根据权利要求3所述的方法,其中,在将所述数据副本备份至所述至少一个后继节点之后,包括:
检测集群中所有节点的数据副本的状态;
若所述所有节点中部分节点存在数据损坏的坏数据副本,则检测剩余节点中是否存在与所述坏数据副本关联的可用数据副本;
当存在可用数据副本时,利用所述可用数据副本所在的节点将所述可用数据副本同步至所述部分节点。
5.根据权利要求4所述的方法,其中,所述检测集群中所有节点的数据副本的状态包括:
周期性地检测集群中所有节点的数据副本的状态,和/或
监控集群中所有节点的存储设备的工作状态,若某节点中存在不可用的存储设备,则对集群中所有节点的数据副本的状态进行检测。
6.一种集群的数据存储装置,包括:
节点映射模块,用于按照集群中各节点的网络地址,将集群中的多个节点映射到一致性哈希环上;
选举指令发送模块,用于响应于多个客户端的待存储数据的写入请求,向所述多个客户端发送进行选举指令;
数据属性确定模块,用于响应于多个客户端选举出的主写入者的待存储数据的写入请求,确定待存储数据的属性信息;
存储节点确定模块,用于根据所述待存储数据的属性信息,将所述待存储数据映射到所述一致性哈希环上,从所述一致性哈希环上的多个节点中确定与所述待存储数据相关联的待存储的节点;
数据写入定位模块,用于将所确定的待存储的节点的网络地址发送至所述主写入者。
7.根据权利要求6所述的装置,其中,所述装置还包括:
数据状态确定模块,用于响应于所述多个客户端中除所述主写入者之外的剩余客户端选举出的补充写入者的补充写入请求,确定待存储数据的写入状态信息;
所述数据写入定位模块,用于将所述待存储数据的写入状态信息和所确定的节点的网络地址发送至所述补充主写入者。
8.根据权利要求6或7所述的装置,其中,所述装置还包括:
后继节点确定模块,用于在所述待存储的节点被完全写入所述待存储数据生成数据副本后,确定所述待存储的节点在所述一致性哈希环上的至少一个后继节点;
副本备份模块,用于将所述数据副本备份至所述至少一个后继节点。
9.根据权利要求8所述的装置,其中,所述装置还包括:
副本检测模块,用于检测集群中所有节点的数据副本的状态;
副本同步模块,用于若所述所有节点中部分节点存在数据损坏的坏数据副本,则检测剩余节点中是否存在与所述坏数据副本关联的可用数据副本;当存在可用数据副本时,利用所述可用数据副本所在的节点将所述可用数据副本同步至所述部分节点。
10.根据权利要求9所述的装置,其中,
所述副本检测模块,用于周期性地检测集群中所有节点的数据副本的状态,和/或
所述副本检测模块,用于监控集群中所有节点的存储设备的工作状态,若某节点中存在不可用的存储设备,则对集群中所有节点的数据副本的状态进行检测。
11.一种电子设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-5任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610920541.5A CN106572153A (zh) | 2016-10-21 | 2016-10-21 | 集群的数据存储方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610920541.5A CN106572153A (zh) | 2016-10-21 | 2016-10-21 | 集群的数据存储方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106572153A true CN106572153A (zh) | 2017-04-19 |
Family
ID=58533224
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610920541.5A Pending CN106572153A (zh) | 2016-10-21 | 2016-10-21 | 集群的数据存储方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106572153A (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107249029A (zh) * | 2017-06-12 | 2017-10-13 | 上海优刻得信息科技有限公司 | 主动领取任务的方法、工作节点、系统及存储介质 |
CN107391040A (zh) * | 2017-07-28 | 2017-11-24 | 郑州云海信息技术有限公司 | 一种存储阵列磁盘io调度的方法及装置 |
CN108124012A (zh) * | 2017-12-21 | 2018-06-05 | 中通服公众信息产业股份有限公司 | 一种基于哈希算法的分布式缓存计算方法 |
CN108255422A (zh) * | 2017-12-28 | 2018-07-06 | 浪潮通用软件有限公司 | 一种存储方法和存储装置 |
CN108810041A (zh) * | 2017-04-27 | 2018-11-13 | 华为技术有限公司 | 一种分布式缓存系统的数据写入及扩容方法、装置 |
CN109639777A (zh) * | 2018-11-28 | 2019-04-16 | 优刻得科技股份有限公司 | 数据同步的方法、装置、系统和非易失性存储介质 |
CN109951508A (zh) * | 2017-12-21 | 2019-06-28 | 中国移动通信集团重庆有限公司 | 基于Zookeeper的请求协调方法及装置、计算机设备及存储介质 |
CN110188006A (zh) * | 2019-06-03 | 2019-08-30 | 深圳市网心科技有限公司 | 一种数据维护方法、装置及设备 |
CN110351313A (zh) * | 2018-04-02 | 2019-10-18 | 武汉斗鱼网络科技有限公司 | 数据缓存方法、装置、设备及存储介质 |
CN110489059A (zh) * | 2019-07-11 | 2019-11-22 | 平安科技(深圳)有限公司 | 数据集群存储的方法、装置及计算机设备 |
CN110968453A (zh) * | 2018-09-28 | 2020-04-07 | 杭州海康威视系统技术有限公司 | 一种数据存储方法及装置 |
CN111147546A (zh) * | 2019-11-29 | 2020-05-12 | 中科院计算技术研究所大数据研究院 | 一种边缘集群资源的处理方法及系统 |
WO2020143410A1 (zh) * | 2019-01-10 | 2020-07-16 | 阿里巴巴集团控股有限公司 | 数据存储方法及装置、电子设备、存储介质 |
CN111522883A (zh) * | 2020-04-28 | 2020-08-11 | 杭州海康威视系统技术有限公司 | 对象数据的备份方法、装置、设备及存储介质 |
CN111723073A (zh) * | 2019-03-19 | 2020-09-29 | 北京沃东天骏信息技术有限公司 | 数据存储处理方法、装置、处理系统以及存储介质 |
CN111770149A (zh) * | 2020-06-23 | 2020-10-13 | 江苏荣泽信息科技股份有限公司 | 基于分布式存储的新型联盟链 |
CN112948377A (zh) * | 2021-02-02 | 2021-06-11 | 京东数字科技控股股份有限公司 | 数据的存储方法、装置、电子设备及计算机可读介质 |
CN113127409A (zh) * | 2019-12-31 | 2021-07-16 | 深圳云天励飞技术有限公司 | 数据实时归档用运算集群的管理方法、装置、设备及介质 |
-
2016
- 2016-10-21 CN CN201610920541.5A patent/CN106572153A/zh active Pending
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108810041A (zh) * | 2017-04-27 | 2018-11-13 | 华为技术有限公司 | 一种分布式缓存系统的数据写入及扩容方法、装置 |
CN107249029A (zh) * | 2017-06-12 | 2017-10-13 | 上海优刻得信息科技有限公司 | 主动领取任务的方法、工作节点、系统及存储介质 |
CN107249029B (zh) * | 2017-06-12 | 2019-09-06 | 优刻得科技股份有限公司 | 主动领取任务的方法、工作节点、系统及存储介质 |
CN107391040A (zh) * | 2017-07-28 | 2017-11-24 | 郑州云海信息技术有限公司 | 一种存储阵列磁盘io调度的方法及装置 |
CN108124012A (zh) * | 2017-12-21 | 2018-06-05 | 中通服公众信息产业股份有限公司 | 一种基于哈希算法的分布式缓存计算方法 |
CN109951508B (zh) * | 2017-12-21 | 2022-02-25 | 中国移动通信集团重庆有限公司 | 基于Zookeeper的请求协调方法及装置、计算机设备及存储介质 |
CN109951508A (zh) * | 2017-12-21 | 2019-06-28 | 中国移动通信集团重庆有限公司 | 基于Zookeeper的请求协调方法及装置、计算机设备及存储介质 |
CN108255422A (zh) * | 2017-12-28 | 2018-07-06 | 浪潮通用软件有限公司 | 一种存储方法和存储装置 |
CN110351313A (zh) * | 2018-04-02 | 2019-10-18 | 武汉斗鱼网络科技有限公司 | 数据缓存方法、装置、设备及存储介质 |
CN110351313B (zh) * | 2018-04-02 | 2022-02-22 | 武汉斗鱼网络科技有限公司 | 数据缓存方法、装置、设备及存储介质 |
CN110968453A (zh) * | 2018-09-28 | 2020-04-07 | 杭州海康威视系统技术有限公司 | 一种数据存储方法及装置 |
CN109639777A (zh) * | 2018-11-28 | 2019-04-16 | 优刻得科技股份有限公司 | 数据同步的方法、装置、系统和非易失性存储介质 |
WO2020143410A1 (zh) * | 2019-01-10 | 2020-07-16 | 阿里巴巴集团控股有限公司 | 数据存储方法及装置、电子设备、存储介质 |
CN111723073B (zh) * | 2019-03-19 | 2023-09-01 | 北京沃东天骏信息技术有限公司 | 数据存储处理方法、装置、处理系统以及存储介质 |
CN111723073A (zh) * | 2019-03-19 | 2020-09-29 | 北京沃东天骏信息技术有限公司 | 数据存储处理方法、装置、处理系统以及存储介质 |
CN110188006A (zh) * | 2019-06-03 | 2019-08-30 | 深圳市网心科技有限公司 | 一种数据维护方法、装置及设备 |
CN110188006B (zh) * | 2019-06-03 | 2022-04-29 | 深圳市网心科技有限公司 | 一种数据维护方法、装置及设备 |
WO2021003935A1 (zh) * | 2019-07-11 | 2021-01-14 | 平安科技(深圳)有限公司 | 数据集群存储的方法、装置及计算机设备 |
CN110489059B (zh) * | 2019-07-11 | 2022-04-12 | 平安科技(深圳)有限公司 | 数据集群存储的方法、装置及计算机设备 |
CN110489059A (zh) * | 2019-07-11 | 2019-11-22 | 平安科技(深圳)有限公司 | 数据集群存储的方法、装置及计算机设备 |
CN111147546B (zh) * | 2019-11-29 | 2021-05-14 | 中科院计算技术研究所大数据研究院 | 一种边缘集群资源的处理方法及系统 |
CN111147546A (zh) * | 2019-11-29 | 2020-05-12 | 中科院计算技术研究所大数据研究院 | 一种边缘集群资源的处理方法及系统 |
CN113127409A (zh) * | 2019-12-31 | 2021-07-16 | 深圳云天励飞技术有限公司 | 数据实时归档用运算集群的管理方法、装置、设备及介质 |
CN111522883A (zh) * | 2020-04-28 | 2020-08-11 | 杭州海康威视系统技术有限公司 | 对象数据的备份方法、装置、设备及存储介质 |
CN111522883B (zh) * | 2020-04-28 | 2023-04-28 | 杭州海康威视系统技术有限公司 | 对象数据的备份方法、装置、设备及存储介质 |
CN111770149A (zh) * | 2020-06-23 | 2020-10-13 | 江苏荣泽信息科技股份有限公司 | 基于分布式存储的新型联盟链 |
CN111770149B (zh) * | 2020-06-23 | 2023-02-14 | 江苏荣泽信息科技股份有限公司 | 基于分布式存储的新型联盟链系统 |
CN112948377A (zh) * | 2021-02-02 | 2021-06-11 | 京东数字科技控股股份有限公司 | 数据的存储方法、装置、电子设备及计算机可读介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106572153A (zh) | 集群的数据存储方法及装置 | |
CN111183625B (zh) | 用于在区块链网络中删除节点的系统和方法 | |
CN105960639B (zh) | 分布式存储系统中的优先化数据重构 | |
CN103890729B (zh) | 计算机化方法、存储服务器及管理服务器 | |
CN102546782B (zh) | 一种分布式系统及其数据操作方法 | |
US9569517B1 (en) | Fault tolerant distributed key-value storage | |
CN107395665A (zh) | 一种区块链业务受理及业务共识方法及装置 | |
US20190018738A1 (en) | Method for performing replication control in a storage system with aid of characteristic information of snapshot, and associated apparatus | |
CN107870829A (zh) | 一种分布式数据恢复方法、服务器、相关设备及系统 | |
US9226000B1 (en) | Content distribution system and method | |
CN107710215A (zh) | 在测试设施中的移动计算装置安全的方法和设备 | |
US11394777B2 (en) | Reliable data storage for decentralized computer systems | |
CN107644030A (zh) | 分布式数据库数据同步方法、相关装置及系统 | |
CN102521073B (zh) | 在故障恢复期间增加数据库的可用性 | |
US20070271304A1 (en) | Method and system of tiered quiescing | |
CN107506266A (zh) | 一种数据恢复方法及系统 | |
KR101778907B1 (ko) | 분산 저장 시스템에서의 캐시 및 비-캐시 사용 | |
CN107038092A (zh) | 一种数据复制方法及装置 | |
CN109189327A (zh) | 区块链数据的压缩处理方法和装置 | |
CN110278222A (zh) | 分布式文件存储系统中数据管理的方法、系统以及相关设备 | |
CN104715044B (zh) | 一种分布式系统及其数据操作方法 | |
US10142415B2 (en) | Data migration | |
CN102984009B (zh) | 一种基于P2P的VoIP系统容灾备份方法 | |
US8312237B2 (en) | Automated relocation of in-use multi-site protected data storage | |
CN104182296A (zh) | 数据处理系统、数据处理设备以及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170419 |
|
WD01 | Invention patent application deemed withdrawn after publication |