CN111400112B - 分布式集群的存储系统的写入方法、装置及可读存储介质 - Google Patents
分布式集群的存储系统的写入方法、装置及可读存储介质 Download PDFInfo
- Publication number
- CN111400112B CN111400112B CN202010193359.0A CN202010193359A CN111400112B CN 111400112 B CN111400112 B CN 111400112B CN 202010193359 A CN202010193359 A CN 202010193359A CN 111400112 B CN111400112 B CN 111400112B
- Authority
- CN
- China
- Prior art keywords
- node
- competition
- entry
- request
- library
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2089—Redundant storage control functionality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0617—Improving the reliability of storage systems in relation to availability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Abstract
本申请提供了一种分布式集群的存储系统的写入方法、装置及可读存储介质,其中方法包括:在监测到分布式集群的当前主节点发生故障时,从竞争条目库中删除当前主节点的竞争条目得到更新后的竞争条目库,其中,竞争条目库中存储有分布式集群的上一次主节点选举中各个参选节点的竞争条目;在接收到分布式集群发送的包含有标识信息的写入请求时,基于标识信息和更新后的竞争条目库确定请求发出节点是否为替补主节点;若确定请求发出节点为替补主节点,则执行写入请求对应的写入操作。该方案通过确定请求发出节点为替补主节点后再执行写入请求对应的写入操作,避免了执行发生故障的当前主节点发出的写入请求对应的写入操作,保证了分布式集群的一致性。
Description
技术领域
本申请涉及计算机技术领域,具体而言,本申请涉及一种分布式集群的存储系统的写入方法、装置及可读存储介质。
背景技术
主从结构是一种常见的分布式集群组织结构,许多主从结构的分布式集群系统都会采用外挂的一致性存储系统来进行数据存储以实现分布式集群的一致性,这就产生了许多由主从结构的分布式系统和一致性存储系统组成的组合系统。例如,由Apache Flink和Apache ZooKeeper组成的组合系统,其中Apache Flink是一个主从结构的分布式计算系统,Apache ZooKeeper通过multi-op操作提供事务机制。此外,还有由Apache Spark和Apache ZooKeeper组成的组合系统,或由Apache Flink和Etcd组成的组合系统。
这些组合系统中的主从结构的分布式集群为了实现高可用,在主节点发生故障的时候需要进行主备切换,即采用替补主节点替换发生故障的主节点,该主节点替换过程中一般通过主节点选举产生替补主节点。
但是,目前基于ZooKeeper或其他一致性存储系统的主节点选举的方案,在选举出替补主节点后的一个时间段内,由于发生故障的主节点还未接收到一致性存储系统发送的主节点权限丢失通知,该发生故障的主节点和替补主节点都具有对一致性存储系统进行数据修改的权限,在此时间段内,若发生故障的主节点和替补主节点分别对一致性存储系统中的数据进行修改操作,将会破坏分布式集群的一致性。
发明内容
本申请的目的旨在至少能解决上述的技术缺陷之一,本申请实施例所提供的技术方案如下:
第一方面,本申请实施例提供了一种分布式集群的存储系统的写入方法,包括:
在监测到分布式集群的当前主节点发生故障时,从竞争条目库中删除当前主节点的竞争条目得到更新后的竞争条目库,其中,竞争条目库中存储有分布式集群的上一次主节点选举中各个参选节点的竞争条目,以使分布式集群基于更新后的竞争条目库进行主节点选举得到替补主节点;
在接收到分布式集群发送的包含有标识信息的写入请求时,基于标识信息和更新后的竞争条目库确定请求发出节点是否为替补主节点;
若确定请求发出节点为替补主节点,则执行写入请求对应的写入操作。
在本申请的一种可选实施例中,基于标识信息和更新后的竞争条目库确定请求发出节点是否为替补主节点,包括:
基于标识信息判断更新后的竞争条目库中是否包含有请求发出节点的竞争条目,若更新后的竞争条目库中包含有请求发出节点的竞争条目,则确定请求发出节点为替补主节点,反之,则请求发出节点不为替补主节点。
在本申请的一种可选实施例中,方法还包括:
在分布式集群进行上一次主节点选举前,接收各个参选节点的注册信息;
基于注册信息为对应的节点创建对应的竞争条目并存储,得到竞争条目库。
在本申请的一种可选实施例中,注册信息包括对应的节点的标识信息和注册时间,基于注册信息为对应的节点创建对应的竞争条目并存储,得到竞争条目库,包括:
基于标识信息获取对应的节点的条目标识,基于注册时间获取对应的节点的条目序号,其中,时间越早的注册时间对应的条目序号越小;
基于条目标识和条目序号获取对应的节点的竞争条目并存储,得到竞争条目库。
第二方面,本申请实施例提供了一种分布式集群的存储系统的写入方法,包括:
在当前主节点发生故障时,从存储系统中获取更新后的竞争条目库,其中,竞争条目库中存储有上一次主节点选举中各个参选节点的竞争条目,更新后的竞争条目库是通过删除当前主节点的竞争条目得到的;
基于更新后的竞争条目库进行主节点选举得到替补主节点;
在接收到针对存储系统的写入指令时,向存储系统发送写入请求,其中,写入请求包含有请求发出节点的标识信息,以使存储系统在基于标识信息和更新后的竞争条目库确定请求发出节点为替补主节点时,执行写入请求对应的写入操作。
在本申请的一种可选实施例中,在当前主节点发生故障时,从存储系统中获取更新后的竞争条目库,包括:
在当前主节点发生故障时,接收存储系统发送的竞争条目库变更通知;
响应于竞争条目库变更通知,从存储系统获取更新后的竞争条目库。
在本申请的一种可选实施例中,竞争条目包含有对应的节点的条目序号,且注册时间越早的节点对应的条目序号越小;
基于更新后的竞争条目库进行主节点选举得到替补主节点,包括:
将更新后的竞争条目库中的终止节点筛除,得到剩余参选节点;
将剩余参选节点中对应的条目序号最小的节点,确定为替补主节点。
第三方面,本申请实施例提供了一种分布式集群的存储系统的写入装置,包括:
竞争条目删除模块,用于在监测到分布式集群的当前主节点发生故障时,从竞争条目库中删除当前主节点的竞争条目得到更新后的竞争条目库,其中,竞争条目库中存储有分布式集群的上一次主节点选举中各个参选节点的竞争条目,以使分布式集群基于更新后的竞争条目库进行主节点选举得到替补主节点;
替补主节点确定模块,用于在接收到分布式集群发送的包含有标识信息的写入请求时,基于标识信息和更新后的竞争条目库确定请求发出节点是否为替补主节点;
写入操作执行模块,用于若确定请求发出节点为替补主节点,则执行写入请求对应的写入操作。
在本申请的一种可选实施例中,替补主节点确定模块具体用于:
基于标识信息判断更新后的竞争条目库中是否包含有请求发出节点的竞争条目,若更新后的竞争条目库中包含有请求发出节点的竞争条目,则确定请求发出节点为替补主节点,反之,则请求发出节点不为替补主节点。
在本申请的一种可选实施例中,该装置还可以包括竞争条目库获取模块,用于:
在分布式集群进行上一次主节点选举前,接收各个参选节点的注册信息;
基于注册信息为对应的节点创建对应的竞争条目并存储,得到竞争条目库。
在本申请的一种可选实施例中,注册信息包括对应的节点的标识信息和注册时间,竞争条目库获取模块具体用于:
基于标识信息获取对应的节点的条目标识,基于注册时间获取对应的节点的条目序号,其中,时间越早的注册时间对应的条目序号越小;
基于条目标识和条目序号获取对应的节点的竞争条目并存储,得到竞争条目库。
第四方面,本申请实施例提供了一种分布式集群的存储系统的写入装置,包括:
竞争条目库获取模块,用于在当前主节点发生故障时,从存储系统中获取更新后的竞争条目库,其中,竞争条目库中存储有上一次主节点选举中各个参选节点的竞争条目,更新后的竞争条目库是通过删除当前主节点的竞争条目得到的;
替补主节点选举模块,用于基于更新后的竞争条目库进行主节点选举得到替补主节点;
写入请求发送模块,用于在接收到针对存储系统的写入指令时,向存储系统发送写入请求,其中,写入请求包含有请求发出节点的标识信息,以使存储系统在基于标识信息和更新后的竞争条目库确定请求发出节点为替补主节点时,执行写入请求对应的写入操作。
在本申请的一种可选实施例中,替补主节点选举模块具体用于:
在当前主节点发生故障时,接收存储系统发送的竞争条目库变更通知;
响应于竞争条目库变更通知,从存储系统获取更新后的竞争条目库。
在本申请的一种可选实施例中,竞争条目包含有对应的节点的条目序号,且注册时间越早的节点对应的条目序号越小;相应地,替补主节点选举模块具体用于:
将更新后的竞争条目库中的终止节点筛除,得到剩余参选节点;
将剩余参选节点中对应的条目序号最小的节点,确定为替补主节点。
第五方面,本申请实施例提供了一种电子设备,包括存储器和处理器;
存储器中存储有计算机程序;
处理器,用于执行计算机程序以实现第一方面实施例、第一方面任一可选实施例、第二方面实施例或第二方面任一可选实施例任一可选实施例中所提供的方法。
第六方面,本申请实施例提供了一种计算机可读存储介质,其特征在于,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现第一方面实施例、第一方面任一可选实施例、第二方面实施例或第二方面任一可选实施例中所提供的方法。
本申请提供的技术方案带来的有益效果是:
本申请实施例提供的方案,在当前主节点发生故障时通过主节点选举实现当前主节点和替补主节点的切换,并从竞争条目库中删除当前主节点的竞争条目得到更新后的竞争条目库,在主节点选举完成后,一致性存储系统若接收到写入请求,则根据写入请求中的标识信息在更新后的竞争条目库中查询是否存在请求发出节点对应的竞争条目,以确定该请求发出节点为替补主节点后再执行写入请求对应的写入操作,避免了执行发生故障的当前主节点发出的写入请求对应的写入操作,保证了分布式集群的一致性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种分布式集群的存储系统的写入方法的流程示意图;
图2为本申请实施例中参选节点的状态转移示意图;
图3为本申请实施例提供的另一种分布式集群的存储系统的写入方法的流程示意图;
图4为本申请实施例提供的一种分布式系统应用于区块链系统的一个可选的结构示意图;
图5为本申请实施例提供的一种区块结构一个可选的示意图;
图6为本申请实施例提供了一种分布式集群的存储系统的写入装置的结构框图;
图7为本申请实施例提供了另一种分布式集群的存储系统的写入装置的结构框图;
图8为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本申请实施例中服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
云技术(Cloud technology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
云计算(cloud computing)指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是IT和软件、互联网相关,也可是其他服务。云计算是网格计算(Grid Computing)、分布式计算(DistributedComputing)、并行计算(Parallel Computing)、效用计算(Utility Computing)、网络存储(Network StorageTechnologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机和网络技术发展融合的产物。
随着互联网、实时数据流、连接设备多样化的发展,以及搜索服务、社会网络、移动商务和开放协作等需求的推动,云计算迅速发展起来。不同于以往的并行分布式计算,云计算的产生从理念上将推动整个互联网模式、企业管理模式发生革命性的变革。
云存储(cloud storage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统(以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统。
目前,存储系统的存储方法为:创建逻辑卷,在创建逻辑卷时,就为每个逻辑卷分配物理存储空间,该物理存储空间可能是某个存储设备或者某几个存储设备的磁盘组成。客户端在某一逻辑卷上存储数据,也就是将数据存储在文件系统上,文件系统将数据分成许多部分,每一部分是一个对象,对象不仅包含数据而且还包含数据标识(ID,ID entity)等额外的信息,文件系统将每个对象分别写入该逻辑卷的物理存储空间,且文件系统会记录每个对象的存储位置信息,从而当客户端请求访问数据时,文件系统能够根据每个对象的存储位置信息让客户端对数据进行访问。
存储系统为逻辑卷分配物理存储空间的过程,具体为:按照对存储于逻辑卷的对象的容量估量(该估量往往相对于实际要存储的对象的容量有很大余量)和独立冗余磁盘阵列(RAID,Redundant Array of Independent Disk)的组别,预先将物理存储空间划分成分条,一个逻辑卷可以理解为一个分条,从而为逻辑卷分配了物理存储空间。
云安全(Cloud Security)是指基于云计算商业模式应用的安全软件、硬件、用户、机构、安全云平台的总称。云安全融合了并行处理、网格计算、未知病毒行为判断等新兴技术和概念,通过网状的大量客户端对网络中软件行为的异常监测,获取互联网中木马、恶意程序的最新信息,并发送到服务端进行自动分析和处理,再把病毒和木马的解决方案分发到每一个客户端。
云安全主要研究方向包括:1.云计算安全,主要研究如何保障云自身及云上各种应用的安全,包括云计算机系统安全、用户数据的安全存储与隔离、用户接入认证、信息传输安全、网络攻击防护、合规审计等;2.云安全服务,主要研究各种基于云计算平台为用户提供的安全服务,如防病毒服务等。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先对本申请涉及的几个名词进行介绍和解释:
Zookeeper:是一个分布式的,开放源码的分布式应用协同服务,主要为分布式应用提供一致性服务的软件,提供的功能包括:配置维护,域名服务,分布式同步,组服务等。
目前基于ZooKeeper或其他一致性存储系统的主节点选举的方案,在选举出替补主节点后的一个时间段内,由于发生故障的主节点还未接收到一致性存储系统发送的主节点权限丢失通知,该发生故障的主节点和替补主节点都具有对一致性存储系统进行数据修改的权限,在此时间段内,若发生故障的主节点和替补主节点分别对一致性存储系统中的数据进行修改操作,将会破坏分布式集群的一致性。现有技术中存在的上述问题可以以下情形来体现:
(1)T0时刻,节点1接收到一致性存储系统本节点成为主节点的通知。
(2)T1(T1>T0)时刻,一致性存储系统上的状态判断节点1失去主节点权限,通过主节点选举确定节点2成为主节点,分别向两个节点发送对应消息。
(3)T2(T2>T1)时刻,节点1请求修改一直性存储系统。
(4)T3(T3>T2)时刻,节点1接收到分布式共享存储系统本节点失去主节点权限的通知,终止服务。
在上面的时序关系中,节点1在T1时刻失去主节点权限后,仍然在T2(T2>T1)时刻请求修改分布式共享存储并成功,破坏了分布式一致性。针对上述问题,本申请实施例提供了一种分布式集群的存储系统的写入方法。
图1为本申请实施例提供的一种分布式集群的存储系统的写入方法的流程示意图,该方法的执行主体为一致性存储系统,如图1所示,该方法可以包括:
步骤S101,在监测到分布式集群的当前主节点发生故障时,从竞争条目库中删除当前主节点的竞争条目得到更新后的竞争条目库,其中,竞争条目库中存储有分布式集群的上一次主节点选举中各个参选节点的竞争条目,以使分布式集群基于更新后的竞争条目库进行主节点选举得到替补主节点。
其中,主从结构的分布式集群中的各个节点都有其对应的节点状态,根据其是否参与主节点选举以及在主节点选举中所处的阶段这些状态可分为:初始状态(可用CREATED表示)、注册状态(可用REGISTRING表示)、选举状态(可用ELECTING表示)、主节点状态(可用LEADING表示)、等待状态(可用WAITING表示)以及终止状态(可用STOPPED表示),各节点可以通过自身配置的状态机获知自己的节点状态,各节点的状态也会因为参与节点选举和其他原因发生变化。
具体地,节点在未进入主节点选举过程时处于初始状态,为了保证分布式集群的高可用性,需要在当前主节点发生故障时通过主节点选举确定出替补主节点用来替换发生故障的当前主节点。其中,分布式集群中参与主节点选举的节点可以称为参选节点,且节点一旦进入主节点选举过程,即有普通节点转换为参选节点时,其状态从初始状态转移至注册状态。主节点的选举过程可以包括:
(1)各参选节点在一致性存储系统上注册,并在一致性存储系统中为各参选节点分别创建对应的竞选条目并存储在竞选条目库中,当竞选条目创建成功时,对应的参选节点的状态从注册状态转移至选举状态。一致性存储系统会检测各参选节点的运行状态,当某一参选节点发生故障时会从竞争条目库中删除该参选节点对应的竞争条目。其中,每一竞选条目可以指示对应的参选节点的注册时间。
(2)在当前主节点发生故障时,一致性存储系统会删除当前主节点的竞争条目,竞争条目库成为更新后的竞争条目库,可以理解的是,当前主节点是由上一次主节点选举产生的,那么竞争条目库中存储的是上一次主节点选举过程中的各参选节点的竞争条目。在竞争条目库成为更新后的竞争条目库时,即竞争条目库中的竞争条目发生变化时,一致性存储系统会向各参选节点发送变更通知,此时各参选节点基于更新后的竞争条目库确定自己是否成为替补主节点。具体来说,各参选节点在接收到一致性存储系统发送的变更通知后,查询更新后的竞争条目库,并基于各自竞争条目库指示的注册时间,来确定自己是否成为替补主节点。若参选节点确定自己成为替补主节点,则对应的节点状态由选举状态转移至主节点状态,若确定自己没有成为替补主节点,则对应的节点状态由选举状态转移至等待状态。在有参选节点转移至主节点状态后,即完成了主节点选举,得到替补主节点。
(3)进入等待状态的参选节点在再次接收到一致性存储系统发送的变更通知后,再次执行(2)中的上述过程以确定自己是否成为新的替补主节点,即等待状态可以转移至选举状态。另外,当处于注册状态、选举状态、等待状态或主节点状态的参选节点发生故障或主动退出主节点选举时,其节点状态转移至终止状态。参选节点的状态转移示意图如图2所示。
步骤S102,在接收到分布式集群发送的包含有标识信息的写入请求时,基于标识信息和更新后的竞争条目库确定请求发出节点是否为替补主节点。
其中,分布式集群的写入请求是由具有主节点权限的节点发出,那么替补主节点和未收到主节点权限丢失通知的当前主节点都可以对发出写入请求,一对一致性存储系统进行写入操作。写入请求中包含有请求发出节点的标识信息,根据该标识信息,一致性存储系统可以确定该节点的身份。其中,写入操作包括对数据的增加、删除和修改。
具体地,在分布式集群需要对一致性存储系统进行写入操作时,需要通过主节点向一致性存储系统发送写入请求以使一致性存储系统基于写入请求执行相应的写入操作。由前文描述可知,该写入请求可能是发生故障的当前主节点发发送的,因此为了保证分布式集群的一致性,一致性存储系统需要对请求发出节点是否具有主节点权限进行确定,即确定请求发出节点不是发生故障的当前节点,而是当前主节点发生故障后选举出的替补主节点。具体来说,一致性存储系统根据接收到的请求发出节点的标识信息,在更新后的竞争条目库中查询请求发出节点的竞争条目,由于更新后的竞争条目库中删除了当前主节点的竞争条目,因此根据是否查询到请求发出节点的竞争条目可以确定该请求发出节点是否为替补主节点。
步骤S103,若确定请求发出节点为替补主节点,则执行写入请求对应的写入操作。
具体地,若根据查询结果确定出该请求发出节点为替补主节点,则一致性存储系统执行写入请求对应的写入操作,若根据查询结果确定出该请求发出节点不为替补主节点(即为当前主节点),则一致性存储系统不执行写入请求对应的写入操作,即忽略了当前主节点的写入请求,因此保证一致性存储在主节点选举后只执行替补主节点的写入请求对应的写入操作,进而保证了一致性存储系统的一致性,即保证了分布式集群的一致性。
本申请实施例提供的方案,在当前主节点发生故障时通过主节点选举实现当前主节点和替补主节点的切换,并从竞争条目库中删除当前主节点的竞争条目得到更新后的竞争条目库,在主节点选举完成后,一致性存储系统若接收到写入请求,则根据写入请求中的标识信息在更新后的竞争条目库中查询是否存在请求发出节点对应的竞争条目,以确定该请求发出节点为替补主节点后再执行写入请求对应的写入操作,避免了执行发生故障的当前主节点发出的写入请求对应的写入操作,保证了分布式集群的一致性。
在本申请的一种可选实施例中,基于标识信息和更新后的竞争条目库确定请求发出节点是否为替补主节点,包括:
基于标识信息判断更新后的竞争条目库中是否包含有请求发出节点的竞争条目,若更新后的竞争条目库中包含有请求发出节点的竞争条目,则确定请求发出节点为替补主节点,反之,则请求发出节点不为替补主节点。
具体地,根据请求发出节点的标识信息可以确定该节点的身份,而竞争条目也能指示其对应的节点身份,因此可以确定出更新后的竞争条目节点中各竞争条目对应的节点身份,若有竞争条目对应的节点身份与请求发出节点的身份相同,则更新后的竞争条目库中包含有请求发出节点的竞争条目,反之,则更新后的竞争条目库中不包含有请求发出节点的竞争条目。又由于一致性存储系统删除了发生故障的当前节点的竞争条目,那么若更新后的竞争条目库中包含有请求发出节点的竞争条目,则说明请求发出节点为替补主节点,反之,则说明请求发出节点为当前主节点。换言之,请求发出节点为替补主节点还是当前主节点,是根据更新后的竞争条目库中是否包含有请求发出节点的竞争条目来确定的。
在本申请的一种可选实施例中,该方法还可以包括:
在分布式集群进行上一次主节点选举前,接收各个参选节点的注册信息;
基于注册信息为对应的节点创建对应的竞争条目并存储,得到竞争条目库。
其中,上一次主节点选举为选举当前主节点的过程。
具体地,各处于初始状态的节点在一致性存储系统上注册后成为参选节点,并根据各参选节点注册时的注册信息创建对应的竞争条目并存储得到竞争条目库。可以理解的是,由前文描述可知,此次主节点选举过程中的各参选节点可以包括新注册的参选节点,即由初始状态的普通节点在一致性存储系统上注册后状态转移至选举状态,也可以包括处于等待状态的参选节点。
在本申请的一种可选实施例中,注册信息包括对应的节点的标识信息和注册时间,基于注册信息为对应的节点创建对应的竞争条目并存储,得到竞争条目库,包括:
基于标识信息获取对应的节点的条目标识,基于注册时间获取对应的节点的条目序号,其中,时间越早的注册时间对应的条目序号越小;
基于条目标识和条目序号获取对应的节点的竞争条目并存储,得到竞争条目库。
具体地,基于标识信息获取对应的节点的竞争条目的条目标识,基于注册时间获取对应的节点的竞争条目的条目序号,使得节点对应的竞争条目能指示该节点的身份和注册时间的先后顺序。具体来说,根据竞争条目的条目标识可以确定其对应的节点的身份,根据竞争条目的条目序号可以确定其对应的节点注册的先后顺序,又由于注册时间越早对应的序号越小,因此条目序号越小的竞争条目对应的节点注册时间越早。进一步地,在进行主节点选举时,将更新后的条目数据库中条目序号最小的竞争条目对应的参选节点选举为替补主节点。
图3为本申请实施例提供的一种分布式集群的存储系统的写入方法的流程示意图,该方法的执行主体为主从结构的分布式集群,如图3所示,该方法可以包括:
步骤S301,在当前主节点发生故障时,从存储系统中获取更新后的竞争条目库,其中,所述竞争条目库中存储有上一次主节点选举中各个参选节点的竞争条目,所述更新后的竞争条目库是通过删除所述当前主节点的竞争条目得到的。
步骤S302,基于所述更新后的竞争条目库进行主节点选举得到替补主节点。
其中,主从结构的分布式集群中的各个节点都有其对应的节点状态,根据其是否参与主节点选举以及在主节点选举中所处的阶段这些状态可分为:初始状态(可用CREATED表示)、注册状态(可用REGISTRING表示)、选举状态(可用ELECTING表示)、主节点状态(可用LEADING表示)、等待状态(可用WAITING表示)以及终止状态(可用STOPPED表示),各节点可以通过自身配置的状态机获知自己的节点状态,各节点的状态也会因为参与节点选举和其他原因发生变化。
具体地,节点在未进入主节点选举过程时处于初始状态,为了保证分布式集群的高可用性,需要在当前主节点发生故障时通过主节点选举确定出替补主节点用来替换发生故障的当前主节点。其中,分布式集群中参与主节点选举的节点可以称为参选节点,且节点一旦进入主节点选举过程,即有普通节点转换为参选节点时,其状态从初始状态转移至注册状态。主节点的选举过程可以包括:
(1)各参选节点在一致性存储系统上注册,并在一致性存储系统中为各参选节点分别创建对应的竞选条目并存储在竞选条目库中,当竞选条目创建成功时,对应的参选节点的状态从注册状态转移至选举状态。一致性存储系统会检测各参选节点的运行状态,当某一参选节点发生故障时会从竞争条目库中删除该参选节点对应的竞争条目。其中,每一竞选条目可以指示对应的参选节点的注册时间。
(2)在当前主节点发生故障时,一致性存储系统会删除当前主节点的竞争条目,竞争条目库成为更新后的竞争条目库,可以理解的是,当前主节点是由上一次主节点选举产生的,那么竞争条目库中存储的是上一次主节点选举过程中的各参选节点的竞争条目。在竞争条目库成为更新后的竞争条目库时,即竞争条目库中的竞争条目发生变化时,一致性存储系统会向各参选节点发送变更通知,此时各参选节点基于更新后的竞争条目库确定自己是否成为替补主节点。具体来说,各参选节点在接收到一致性存储系统发送的变更通知后,查询更新后的竞争条目库,并基于各自竞争条目库指示的注册时间,来确定自己是否成为替补主节点。若参选节点确定自己成为替补主节点,则对应的节点状态由选举状态转移至主节点状态,若确定自己没有成为替补主节点,则对应的节点状态由选举状态转移至等待状态。在有参选节点转移至主节点状态后,即完成了主节点选举,得到替补主节点。
(3)进入等待状态的参选节点在再次接收到一致性存储系统发送的变更通知后,再次执行(2)中的上述过程以确定自己是否成为新的替补主节点,即等待状态可以转移至选举状态。另外,当处于注册状态、选举状态、等待状态或主节点状态的参选节点发生故障或主动退出主节点选举时,其节点状态转移至终止状态。
步骤S303,在接收到针对所述存储系统的写入指令时,向所述存储系统发送写入请求,其中,所述写入请求包含有请求发出节点的标识信息,以使所述存储系统在基于所述标识信息和所述更新后的竞争条目库确定所述请求发出节点为所述替补主节点时,执行所述写入请求对应的写入操作。
其中,分布式集群的写入请求是由具有主节点权限的节点发出,那么替补主节点和未收到主节点权限丢失通知的当前主节点都可以对发出写入请求,一致性存储系统进行写入操作。写入请求中包含有请求发出节点的标识信息,根据该标识信息,一致性存储系统可以确定该节点的身份。其中,写入操作包括对数据的增加、删除和修改。
具体地,在分布式集群需要对一致性存储系统进行写入操作时,需要通过主节点向一致性存储系统发送写入请求以使一致性存储系统基于写入请求执行相应的写入操作。由前文描述可知,该写入请求可能是发生故障的当前主节点发送的,因此为了保证分布式集群的一致性,一致性存储系统需要对请求发出节点是否具有主节点权限进行确定,即确定请求发出节点不是发生故障的当前节点,而是当前主节点发生故障后选举出的替补主节点。具体来说,一致性存储系统根据接收到的请求发出节点的标识信息,在更新后的竞争条目库中查询请求发出节点的竞争条目,由于更新后的竞争条目库中删除了当前主节点的竞争条目,因此根据是否查询到请求发出节点的竞争条目可以确定该请求发出节点是否为替补主节点。
具体地,若根据查询结果确定出该请求发出节点为替补主节点,则一致性存储系统执行写入请求对应的写入操作,若根据查询结果确定出该请求发出节点不为替补主节点,则一致性存储系统不执行写入请求对应的写入操作,即忽略了当前主节点的写入请求,因此保证一致性存储在主节点选举后只执行替补主节点的写入请求对应的写入操作,进而保证了一致性存储系统的一致性,即保证了分布式集群的一致性。
本申请实施例提供的方案,在当前主节点发生故障时通过主节点选举实现当前主节点和替补主节点的切换,并从竞争条目库中删除当前主节点的竞争条目得到更新后的竞争条目库,在主节点选举完成后,一致性存储系统若接收到写入请求,则根据写入请求中的标识信息在更新后的竞争条目库中查询是否存在请求发出节点对应的竞争条目,以确定该请求发出节点为替补主节点后再执行写入请求对应的写入操作,避免了执行发生故障的当前主节点发出的写入请求对应的写入操作,保证了分布式集群的一致性。
在本申请的一种可选实施例中,在当前主节点发生故障时,从存储系统中获取更新后的竞争条目库,包括:
在当前主节点发生故障时,接收存储系统发送的竞争条目库变更通知;
响应于竞争条目库变更通知,从存储系统获取更新后的竞争条目库。
其中,每当竞争条目库中的竞争条目被删除时,一致性存储系统都坏想分布式集群中的各节点发送竞争条目库变更通知。一般竞争条目被删除是由于其对应的参选节点由于各种原因(例如网络连接故障)发生故障,故当前主节点发生故障时,其对应的竞争条目也回被删除。
在本申请的一种可选实施例中,竞争条目包含有对应的节点的条目序号,且注册时间越早的节点对应的条目序号越小;
基于更新后的竞争条目库进行主节点选举得到替补主节点,包括:
将更新后的竞争条目库中的终止节点筛除,得到剩余参选节点;
将剩余参选节点中对应的条目序号最小的节点,确定为替补主节点。
其中,由于终止节点处于终止状态,其本身就可能发生了故障或退出了主节点选举,故应将其排除在本次主节点选举之外。
本申请实施例涉及的系统可以是由客户端、多个节点(接入网络中的任意形式的计算设备,如服务器、用户终端)通过网络通信的形式连接形成的分布式系统。
以分布式系统为区块链系统为例,参见图4,图4是本申请实施例提供的分布式系统400应用于区块链系统的一个可选的结构示意图,由多个节点401(接入网络中的任意形式的计算设备,如服务器、用户终端)和客户端402形成,节点之间形成组成的点对点(P2P,Peer To Peer)网络,P2P协议是一个运行在传输控制协议(TCP,TransmissionControlProtocol)协议之上的应用层协议。在分布式系统中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。
参见图4示出的区块链系统中各节点的功能,涉及的功能包括:
1)路由,节点具有的基本功能,用于支持节点之间的通信。
节点除具有路由功能外,还可以具有以下功能:
2)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。
例如,应用实现的业务包括:
2.1)钱包,用于提供进行电子货币的交易的功能,包括发起交易(即,将当前交易的交易记录发送给区块链系统中的其他节点,其他节点验证成功后,作为承认交易有效的响应,将交易的记录数据存入区块链的临时区块中;当然,钱包还支持查询电子货币地址中剩余的电子货币;
2.2)共享账本,用于提供账目数据的存储、查询和修改等操作的功能,将对账目数据的操作的记录数据发送到区块链系统中的其他节点,其他节点验证有效后,作为承认账目数据有效的响应,将记录数据存入临时区块中,还可以向发起操作的节点发送确认。
2.3)智能合约,计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,根据实际的业务需求代码用于完成自动化的交易,例如查询买家所购买商品的物流状态,在买家签收货物后将买家的电子货币转移到商户的地址;当然,智能合约不仅限于执行用于交易的合约,还可以执行对接收的信息进行处理的合约。
3)区块链,包括一系列按照产生的先后时间顺序相互接续的区块(Block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。
参见图5,图5是本申请实施例提供的区块结构(Block Structure)一个可选的示意图,每个区块中包括本区块存储交易记录的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链。另外,区块中还可以包括有区块生成时的时间戳等信息。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
图6为本申请实施例提供了一种分布式集群的存储系统的写入装置的结构框图,如图6所示,该装置600可以包括:竞争条目删除模块601、替补主节点确定模块602以及写入操作执行模块603,其中:
竞争条目删除模块601用于在监测到分布式集群的当前主节点发生故障时,从竞争条目库中删除当前主节点的竞争条目得到更新后的竞争条目库,其中,竞争条目库中存储有分布式集群的上一次主节点选举中各个参选节点的竞争条目,以使分布式集群基于更新后的竞争条目库进行主节点选举得到替补主节点;
替补主节点确定模块602用于在接收到分布式集群发送的包含有标识信息的写入请求时,基于标识信息和更新后的竞争条目库确定请求发出节点是否为替补主节点;
写入操作执行模块603用于若确定请求发出节点为替补主节点,则执行写入请求对应的写入操作。
本申请实施例提供的方案,在当前主节点发生故障时通过主节点选举实现当前主节点和替补主节点的切换,并从竞争条目库中删除当前主节点的竞争条目得到更新后的竞争条目库,在主节点选举完成后,一致性存储系统若接收到写入请求,则根据写入请求中的标识信息在更新后的竞争条目库中查询是否存在请求发出节点对应的竞争条目,以确定该请求发出节点为替补主节点后再执行写入请求对应的写入操作,避免了执行发生故障的当前主节点发出的写入请求对应的写入操作,保证了分布式集群的一致性。
在本申请的一种可选实施例中,替补主节点确定模块具体用于:
基于标识信息判断更新后的竞争条目库中是否包含有请求发出节点的竞争条目,若更新后的竞争条目库中包含有请求发出节点的竞争条目,则确定请求发出节点为替补主节点,反之,则请求发出节点不为替补主节点。
在本申请的一种可选实施例中,该装置还可以包括竞争条目库获取模块,用于:
在分布式集群进行上一次主节点选举前,接收各个参选节点的注册信息;
基于注册信息为对应的节点创建对应的竞争条目并存储,得到竞争条目库。
在本申请的一种可选实施例中,注册信息包括对应的节点的标识信息和注册时间,竞争条目库获取模块具体用于:
基于标识信息获取对应的节点的条目标识,基于注册时间获取对应的节点的条目序号,其中,时间越早的注册时间对应的条目序号越小;
基于条目标识和条目序号获取对应的节点的竞争条目并存储,得到竞争条目库。
图7为本申请实施例提供了一种分布式集群的存储系统的写入装置的结构框图,如图7所示,该装置700可以包括:竞争条目库获取模块701、替补主节点选举模块702以及写入请求发送模块703,其中:
竞争条目库获取模块701用于在当前主节点发生故障时,从存储系统中获取更新后的竞争条目库,其中,竞争条目库中存储有上一次主节点选举中各个参选节点的竞争条目,更新后的竞争条目库是通过删除当前主节点的竞争条目得到的;
替补主节点选举模块702用于基于更新后的竞争条目库进行主节点选举得到替补主节点;
写入请求发送模块703用于在接收到针对存储系统的写入指令时,向存储系统发送写入请求,其中,写入请求包含有请求发出节点的标识信息,以使存储系统在基于标识信息和更新后的竞争条目库确定请求发出节点为替补主节点时,执行写入请求对应的写入操作。
本申请实施例提供的方案,在当前主节点发生故障时通过主节点选举实现当前主节点和替补主节点的切换,并从竞争条目库中删除当前主节点的竞争条目得到更新后的竞争条目库,在主节点选举完成后,一致性存储系统若接收到写入请求,则根据写入请求中的标识信息在更新后的竞争条目库中查询是否存在请求发出节点对应的竞争条目,以确定该请求发出节点为替补主节点后再执行写入请求对应的写入操作,避免了执行发生故障的当前主节点发出的写入请求对应的写入操作,保证了分布式集群的一致性。
在本申请的一种可选实施例中,替补主节点选举模块具体用于:
在当前主节点发生故障时,接收存储系统发送的竞争条目库变更通知;
响应于竞争条目库变更通知,从存储系统获取更新后的竞争条目库。
在本申请的一种可选实施例中,竞争条目包含有对应的节点的条目序号,且注册时间越早的节点对应的条目序号越小;相应地,替补主节点选举模块具体用于:
将更新后的竞争条目库中的终止节点筛除,得到剩余参选节点;
将剩余参选节点中对应的条目序号最小的节点,确定为替补主节点。
基于相同的原理,本申请实施例还提供了一种电子设备,该电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行该计算机程序时,实现本申请任一可选实施例中所提供的方法,具体可实现如下情况:
情况一:在监测到分布式集群的当前主节点发生故障时,从竞争条目库中删除当前主节点的竞争条目得到更新后的竞争条目库,其中,竞争条目库中存储有分布式集群的上一次主节点选举中各个参选节点的竞争条目,以使分布式集群基于更新后的竞争条目库进行主节点选举得到替补主节点;在接收到分布式集群发送的包含有标识信息的写入请求时,基于标识信息和更新后的竞争条目库确定请求发出节点是否为替补主节点;若确定请求发出节点为替补主节点,则执行写入请求对应的写入操作。
情况二:在当前主节点发生故障时,从存储系统中获取更新后的竞争条目库,其中,竞争条目库中存储有上一次主节点选举中各个参选节点的竞争条目,更新后的竞争条目库是通过删除当前主节点的竞争条目得到的;基于更新后的竞争条目库进行主节点选举得到替补主节点;在接收到针对存储系统的写入指令时,向存储系统发送写入请求,其中,写入请求包含有请求发出节点的标识信息,以使存储系统在基于标识信息和更新后的竞争条目库确定请求发出节点为替补主节点时,执行写入请求对应的写入操作。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现本申请任一实施例所示的方法。
可以理解的是,介质中存储的可以是分布式集群的存储系统的写入方法对应的计算机程序。
图8中示出了本申请实施例所适用的一种电子设备的结构示意图,如图8所示,图8所示的电子设备800包括:处理器801和存储器803。其中,处理器801和存储器803相连,如通过总线802相连。进一步地,电子设备800还可以包括收发器804,电子设备800可以通过收发器804与其他电子设备进行数据的交互。需要说明的是,实际应用中收发器804不限于一个,该电子设备800的结构并不构成对本申请实施例的限定。
其中,处理器801应用于本申请实施例中,可以用于实现图6所示的竞争条目删除模块、替补主节点确定模块和写入操作执行模块的功能,或者用于实现图7所示的竞争条目库获取模块、替补主节点选举模块和写入请求发送模块的功能。
处理器801可以是CPU,通用处理器,DSP,ASIC,FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器801也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线802可包括一通路,在上述组件之间传送信息。总线802可以是PCI总线或EISA总线等。总线802可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器803可以是ROM或可存储静态信息和指令的其他类型的静态存储设备,RAM或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM、CD-ROM或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器803用于存储执行本申请方案的应用程序代码,并由处理器801来控制执行。处理器801用于执行存储器803中存储的应用程序代码,以实现图6或图7所示实施例提供的分布式集群的存储系统的写入装置的动作。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种分布式集群的存储系统的写入方法,其特征在于,包括:
在监测到分布式集群的当前主节点发生故障时,从竞争条目库中删除所述当前主节点的竞争条目得到更新后的竞争条目库,其中,所述竞争条目库中存储有所述分布式集群的上一次主节点选举中各个参选节点的竞争条目,以使所述分布式集群基于所述更新后的竞争条目库进行主节点选举得到替补主节点;
在接收到所述分布式集群发送的包含有标识信息的写入请求时,基于所述标识信息判断所述更新后的竞争条目库中是否包含有请求发出节点的竞争条目,若所述更新后的竞争条目库中包含有所述请求发出节点的竞争条目,则确定所述请求发出节点为所述替补主节点,反之,则所述请求发出节点不为所述替补主节点;
若确定所述请求发出节点为替补主节点,则执行所述写入请求对应的写入操作。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述分布式集群进行所述上一次主节点选举前,接收所述各个参选节点的注册信息;
基于所述注册信息为对应的节点创建对应的竞争条目并存储,得到所述竞争条目库。
3.根据权利要求2所述的方法,其特征在于,所述注册信息包括对应的节点的标识信息和注册时间,所述基于所述注册信息为对应的节点创建对应的竞争条目并存储,得到所述竞争条目库,包括:
基于所述标识信息获取对应的节点的条目标识,基于所述注册时间获取对应的节点的条目序号,其中,时间越早的注册时间对应的条目序号越小;
基于所述条目标识和所述条目序号获取对应的节点的竞争条目并存储,得到所述竞争条目库。
4.一种分布式集群的存储系统的写入方法,其特征在于,包括:
在当前主节点发生故障时,从存储系统中获取更新后的竞争条目库,其中,所述竞争条目库中存储有上一次主节点选举中各个参选节点的竞争条目,所述更新后的竞争条目库是通过删除所述当前主节点的竞争条目得到的;
基于所述更新后的竞争条目库进行主节点选举得到替补主节点;
在接收到针对所述存储系统的写入指令时,向所述存储系统发送写入请求,其中,所述写入请求包含有请求发出节点的标识信息,以使所述存储系统在确定所述更新后的竞争条目库中包含有所述请求发出节点的竞争条目时,执行所述写入请求对应的写入操作。
5.根据权利要求4所述的方法,其特征在于,所述在当前主节点发生故障时,从存储系统中获取更新后的竞争条目库,包括:
在所述当前主节点发生故障时,接收所述存储系统发送的竞争条目库变更通知;
响应于所述竞争条目库变更通知,从所述存储系统获取所述更新后的竞争条目库。
6.根据权利要求4所述的方法,其特征在于,所述竞争条目包含有对应的节点的条目序号,且注册时间越早的节点对应的条目序号越小;
基于所述更新后的竞争条目库进行主节点选举得到替补主节点,包括:
将所述更新后的竞争条目库中的终止节点筛除,得到剩余参选节点;
将所述剩余参选节点中对应的条目序号最小的节点,确定为所述替补主节点。
7.一种分布式集群的存储系统的写入装置,其特征在于,包括:
竞争条目删除模块,用于在监测到分布式集群的当前主节点发生故障时,从竞争条目库中删除所述当前主节点的竞争条目得到更新后的竞争条目库,其中,所述竞争条目库中存储有所述分布式集群的上一次主节点选举中各个参选节点的竞争条目,以使所述分布式集群基于所述更新后的竞争条目库进行主节点选举得到替补主节点;
替补主节点确定模块,用于在接收到所述分布式集群发送的包含有标识信息的写入请求时,基于所述标识信息判断所述更新后的竞争条目库中是否包含有请求发出节点的竞争条目,若所述更新后的竞争条目库中包含有所述请求发出节点的竞争条目,则确定所述请求发出节点为所述替补主节点,反之,则所述请求发出节点不为所述替补主节点;
写入操作执行模块,用于若确定所述请求发出节点为所述替补主节点,则执行所述写入请求对应的写入操作。
8.一种分布式集群的存储系统的写入装置,其特征在于,包括:
竞争条目库获取模块,用于在当前主节点发生故障时,从存储系统中获取更新后的竞争条目库,其中,所述竞争条目库中存储有上一次主节点选举中各个参选节点的竞争条目,所述更新后的竞争条目库是通过删除所述当前主节点的竞争条目得到的;
替补主节点选举模块,用于基于所述更新后的竞争条目库进行主节点选举得到替补主节点;
写入请求发送模块,用于在接收到针对所述存储系统的写入指令时,向所述存储系统发送写入请求,其中,所述写入请求包含有请求发出节点的标识信息,以使所述存储系统在确定所述更新后的竞争条目库中包含有所述请求发出节点的竞争条目时,执行所述写入请求对应的写入操作。
9.一种电子设备,其特征在于,包括存储器和处理器;
所述存储器中存储有计算机程序;
所述处理器,用于执行所述计算机程序以实现权利要求1至6中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010193359.0A CN111400112B (zh) | 2020-03-18 | 2020-03-18 | 分布式集群的存储系统的写入方法、装置及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010193359.0A CN111400112B (zh) | 2020-03-18 | 2020-03-18 | 分布式集群的存储系统的写入方法、装置及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111400112A CN111400112A (zh) | 2020-07-10 |
CN111400112B true CN111400112B (zh) | 2021-04-13 |
Family
ID=71436501
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010193359.0A Active CN111400112B (zh) | 2020-03-18 | 2020-03-18 | 分布式集群的存储系统的写入方法、装置及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111400112B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112764968B (zh) * | 2020-12-29 | 2024-02-13 | 杭州海康威视系统技术有限公司 | 数据处理方法、装置、设备及存储介质 |
CN112732674B (zh) * | 2021-01-08 | 2022-08-19 | 烽火通信科技股份有限公司 | 云平台服务管理方法、装置、设备及可读存储介质 |
CN112954008B (zh) * | 2021-01-26 | 2022-11-04 | 网宿科技股份有限公司 | 一种分布式任务处理方法、装置、电子设备及存储介质 |
CN113596172B (zh) * | 2021-08-04 | 2023-11-14 | 百度在线网络技术(北京)有限公司 | 分布式集群中节点更新方法和装置 |
CN114153390B (zh) * | 2021-11-19 | 2023-08-29 | 苏州浪潮智能科技有限公司 | 一种分布式存储系统中卷删除优化方法、装置及存储介质 |
CN114443224B (zh) * | 2022-01-21 | 2023-11-03 | 苏州浪潮智能科技有限公司 | 分布式集群逻辑卷数据管理方法、系统、设备和介质 |
US11907137B2 (en) * | 2022-01-26 | 2024-02-20 | Capital One Services, Llc | Systems and methods for leader node election in cluster server configurations |
CN115277379B (zh) * | 2022-07-08 | 2023-08-01 | 北京城市网邻信息技术有限公司 | 分布式锁容灾处理方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104506625A (zh) * | 2014-12-22 | 2015-04-08 | 国云科技股份有限公司 | 一种提升云数据库元数据节点可靠性的方法 |
CN106844399A (zh) * | 2015-12-07 | 2017-06-13 | 中兴通讯股份有限公司 | 分布式数据库系统及其自适应方法 |
US10133619B1 (en) * | 2015-06-08 | 2018-11-20 | Nutanix, Inc. | Cluster-wide virtual machine health monitoring |
CN109729129A (zh) * | 2017-10-31 | 2019-05-07 | 华为技术有限公司 | 存储集群的配置修改方法、存储集群及计算机系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101217402B (zh) * | 2008-01-15 | 2012-01-04 | 杭州华三通信技术有限公司 | 一种提高集群可靠性的方法和一种高可靠性通信节点 |
CN105069152B (zh) * | 2015-08-25 | 2019-12-13 | 航天恒星科技有限公司 | 数据处理方法及装置 |
CN105306566A (zh) * | 2015-10-22 | 2016-02-03 | 创新科存储技术(深圳)有限公司 | 一种云存储系统中选举主控节点的方法及系统 |
CN110045912B (zh) * | 2018-01-16 | 2021-06-01 | 华为技术有限公司 | 数据处理方法和装置 |
CN108881489A (zh) * | 2018-08-03 | 2018-11-23 | 高新兴科技集团股份有限公司 | 一种分布式服务的协调系统及方法 |
CN109379238B (zh) * | 2018-12-14 | 2022-06-17 | 郑州云海信息技术有限公司 | 一种分布式集群的ctdb主节点选举方法、装置及系统 |
-
2020
- 2020-03-18 CN CN202010193359.0A patent/CN111400112B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104506625A (zh) * | 2014-12-22 | 2015-04-08 | 国云科技股份有限公司 | 一种提升云数据库元数据节点可靠性的方法 |
US10133619B1 (en) * | 2015-06-08 | 2018-11-20 | Nutanix, Inc. | Cluster-wide virtual machine health monitoring |
CN106844399A (zh) * | 2015-12-07 | 2017-06-13 | 中兴通讯股份有限公司 | 分布式数据库系统及其自适应方法 |
CN109729129A (zh) * | 2017-10-31 | 2019-05-07 | 华为技术有限公司 | 存储集群的配置修改方法、存储集群及计算机系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111400112A (zh) | 2020-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111400112B (zh) | 分布式集群的存储系统的写入方法、装置及可读存储介质 | |
US11899684B2 (en) | System and method for maintaining a master replica for reads and writes in a data store | |
US11388043B2 (en) | System and method for data replication using a single master failover protocol | |
US10929240B2 (en) | System and method for adjusting membership of a data replication group | |
CN109218079B (zh) | 一种区块链网络、部署方法及存储介质 | |
CN110417558B (zh) | 签名的验证方法和装置、存储介质及电子装置 | |
CN109325854B (zh) | 区块链网络、部署方法及存储介质 | |
US10248704B2 (en) | System and method for log conflict detection and resolution in a data store | |
US8930312B1 (en) | System and method for splitting a replicated data partition | |
US9489434B1 (en) | System and method for replication log branching avoidance using post-failover rejoin | |
CN112422341B (zh) | 区块链网络的故障检测方法及相关设备 | |
CN111327613A (zh) | 分布式服务的权限控制方法、装置及计算机可读存储介质 | |
CN111639309B (zh) | 一种数据处理方法、装置、节点设备及存储介质 | |
WO2023082883A1 (zh) | 跨区块链处理事务的方法、装置、计算机设备、计算机存储介质及计算机程序产品 | |
US10771242B2 (en) | Blockchain-based data processing | |
CN113518126A (zh) | 一种面向联盟链的交叉容错方法 | |
CN113010337B (zh) | 故障检测方法、总控节点、工作节点及分布式系统 | |
CN110597922B (zh) | 数据处理方法、装置、终端及存储介质 | |
CN114629806A (zh) | 数据处理方法、装置、电子设备、存储介质及程序产品 | |
CN110597922A (zh) | 数据处理方法、装置、终端及存储介质 | |
CN113704238A (zh) | 基于fpga与区块链技术的数字文件认证方法及系统 |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40026322 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |