CN105915391A - 基于单阶段提交并具备自恢复功能的分布式键值存储方法 - Google Patents

基于单阶段提交并具备自恢复功能的分布式键值存储方法 Download PDF

Info

Publication number
CN105915391A
CN105915391A CN201610399443.1A CN201610399443A CN105915391A CN 105915391 A CN105915391 A CN 105915391A CN 201610399443 A CN201610399443 A CN 201610399443A CN 105915391 A CN105915391 A CN 105915391A
Authority
CN
China
Prior art keywords
node
key assignments
distributed key
storage system
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.)
Granted
Application number
CN201610399443.1A
Other languages
English (en)
Other versions
CN105915391B (zh
Inventor
高原
任升
顾文杰
沙川
沙一川
翟明玉
彭晖
陈鹏
袁鑫
季学纯
葛以踊
雷宝龙
万书鹏
季惠英
吴庆曦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nari Technology Co Ltd
NARI Nanjing Control System Co Ltd
Nanjing NARI Group Corp
Original Assignee
Nari Technology Co Ltd
NARI Nanjing Control System Co Ltd
Nanjing NARI Group Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nari Technology Co Ltd, NARI Nanjing Control System Co Ltd, Nanjing NARI Group Corp filed Critical Nari Technology Co Ltd
Priority to CN201610399443.1A priority Critical patent/CN105915391B/zh
Publication of CN105915391A publication Critical patent/CN105915391A/zh
Application granted granted Critical
Publication of CN105915391B publication Critical patent/CN105915391B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Computer Hardware Design (AREA)
  • Retry When Errors Occur (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于单阶段提交并具备自恢复功能的分布式键值存储方法,包括五个步骤:第一,基于单阶段提交;第二,系统具备自恢复功能,无论是存储服务程序退出后重启或节点离线后恢复,系统都能自动恢复到故障前的状态;第三,系统具备强一致性,写入过程一旦完成,能够保证在系统任何一个节点上都能读取到最新写入的值;第四,支持半数以上节点故障后正常运行,本发明中的分布式键值存储系统可以允许由奇数个节点组成,也允许由偶数个节点组成,即使大部分节点故障,系统仅剩下一个健康节点也能够继续运行;第五,系统具备自动扩展功能,系统加入一个新的节点后该节点自动从主节点恢复数据,作为跟随节点运行。

Description

基于单阶段提交并具备自恢复功能的分布式键值存储方法
技术领域
本发明属于分布式存储技术领域,具体涉及一种基于单阶段提交并具备自恢复功能的强一致性分布式键值存储系统。
背景技术
当前的计算机业界流行的分布式键值存储系统一般基于多阶段提交,通信交互过程复杂,实现的软件产品不容易稳定;同时一般要求半数以上的节点存活系统才能继续正常运行;并且故障的节点一般需要人工进行补全数据,或者将系统停止运行后进行恢复才能重新加入系统运行;在功能上有可能出现写入成功后还会读取到旧的数据的情况。
发明内容
为克服现有技术上的缺陷,本发明目的是在于提供一种基于单阶段提交并具备自恢复功能的强一致性分布式键值存储系统。目的在于使系统的通信过程更加简单可靠,系统可用性更高,并具有自我恢复功能和强一致性的确定性,使得分布式键值存储系统更适合工程化使用。
为实现上述目的,本发明的技术方案如下:
一种基于单阶段提交并具备自恢复功能的分布式键值存储方法,包括以下步骤:
步骤1):其中的分布式键值存储系统的写入过程只需主控节点发出一次报文,跟随节点回复一次报文即完成;即基于单阶段提交;
步骤2):无论是存储服务程序退出后重启或节点离线后恢复,分布式键值存储系统都自动恢复到故障前的状态;即系统具备自恢复功能;
步骤3):步骤1)中的写入过程一旦完成,分布式键值存储系统任何一个节点上都能读取到最新写入的值;即系统具备强一致性;
步骤4):分布式键值存储系统允许由奇数个节点组成,也允许由偶数个节点组成,即使大部分节点故障,系统仅剩下一个健康节点也能够继续运行;即支持半数以上节点故障后正常运行;
步骤5):分布式键值存储系统加入一个新的节点后该节点自动从主节点恢复数据,作为跟随节点运行;即系统具备自动扩展功能。
在上述步骤1)中,客户端发出的写请求全部交给主控节点处理,首先由主节点写入一个待提交的存储空间,并同时发出请求写入的提案报文,待有N个以上节点返回同意提交的报文后,主节点再从待提交的存储空间把最新的值拷贝到正式的存储空间,N为副本数的阈值;跟随节点在返回同意提交的报文前先把键值存入待提交的存储空间,收到大于N个的同意提交报文后再把数据存入正式的存储空间;存储空间均在共享内存中。
进一步的,在步骤2)中,每个节点都部署一组服务监控进程,监视存储服务进程一旦退出后会自动将其重启;服务监视进程有两个,一个监视服务进程和另一个与它同组的监视进程,第二个负责监视与它同组的监视进程。
进一步的,在步骤2)中,跟随节点离线恢复后,将从主节点申请恢复所有的键值对,然后再参与分布式键值存储系统运行;
主节点的离线恢复分为两种情况:离线时间短于阈值,分布式键值存储系统内仍然以该节点为主机,所有的写入操作此时会被阻塞,分布式键值存储系统的数据不会发生改变,离线恢复后不需要恢复数据,本机仍然作为主控节点继续运行;离线时间超过阈值,本机变为跟随节点运行,从分布式键值存储系统新选举的主节点恢复数据,恢复数据时发出本机所有键值对的版本号,新主机发现版本较旧的将主动发出最新版本数据提供给离线恢复节点。
进一步的,在步骤3)中,一旦客户端的写入操作成功完成,分布式键值存储系统中有N个以上节点有当前最新的值;且读取操作被引导到主控节点执行,获取最新的值;若主节点离线,则通过分布式键值存储系统内的数据同步过程使新选举的主节点有最新的值以实现分布式键值存储系统的强一致性。
进一步的,在步骤4)中,分布式键值存储系统中要求每次写入操作有N个节点同意提交即可成功,则分布式键值存储系统允许同时最多有N-1个节点发生故障;同时如果分布式键值存储系统的节点逐批发生故障,每批故障节点数小于N,当剩余健康节点数小于等于N时,分布式键值存储系统自动调整阈值N为比健康节点数少1,使分布式键值存储系统能够继续正常运行。
进一步的,跟随节点的存储服务进程退出重启后从主节点恢复数据。主节点的进程故障重启后恢复方式分为两种情况:故障时间短于阈值,从本机的共享内存恢复数据,本机仍然为主节点;故障时间超过阈值,从分布式键值存储系统新选举的主节点恢复数据,本机变为跟随节点运行。
进一步的,其特征在于,步骤2)中跟随节点离线恢复时以及跟随节点进程退出重启后从主节点恢复数据过程中,如果主节点离线,则等待剩余的节点完成同步后从主节点重新开始数据恢复过程。
进一步的,分布式键值存储系统利用心跳和优先级执行主节点选举算法;对于分布式键值存储系统中的每个节点都会有一个唯一的节点编号,编号越小的优先级越高;系统启动时,第一个节点自动升为主节点;分布式键值存储系统运行过程中,当主控节点离线后,剩余节点会根据心跳中的节点编号判断目前该由哪一个优先级最高的节点升为主节点。
进一步的,分布式键值存储系统中任何一个节点发现节点离线,进程故障时间超过阈值或者接收到数据恢复请求都会触发全分布式键值存储系统内的数据同步过程;每个节点把每一个数据副本数小于节点离线前的健康节点数的键值对都广播出去,每一个其他节点都向这个节点确认修复完毕。每个节点都完成一遍广播和接收确认过程后,系统同步过程完成
有益效果:本发明通过以上步骤,可达到以下有益效果:
1.本发明通信过程更加简单可靠,比传统的两阶段提交方式减少一倍的报文,读写效率将比业界流行的开源软件会有成倍的提高。
2.本发明可用性更高,不需要系统搭建时必须奇数个节点,且允许超过半数以上的节点故障也能运行,即使只剩一个健康节点也能继续运行。
3.本发明的自恢复能力强,无论是主节点或跟随节点上的进程退出还是直接两类节点的离线,都能够自动恢复到故障前的状态,且不需要人工干预。
4.本发明具有强一致性,当客户端写入成功的时刻后,确保任何节点上都能读取到最新的值,即使有进程或者节点故障发生。
5.本发明支持跨平台,所有程序支持LINUX/AIX/HPUX/WINDOWS平台。
综上所述,本发明是一种简单可靠、可用性高、自恢复能力强、强一致性的分布式键值存储系统。
附图说明
图1是本发明基于单阶段提交的分布式数据写入流程图;
图2是本发明节点离线恢复后的数据恢复流程图;
图3是本发明进程故障重启后的数据恢复流程图;
图4是本发明系统内数据同步流程图;
图5是本发明的主控节点选举流程图。
具体实施方式
下面结合附图对本发明作进一步详细说明。
在进行技术方案阐述前,本发明先说明以下几个概念:
1)主控节点:简称主节点,负责发起写入操作和提供读取功能的节点;
2)跟随节点:响应主节点提交请求和参与选举准备随时升级为主节点的节点;
3)副本数阈值:当主节点发出请求写入的提案报文后,收到大于此值的同意提交报文数才会继续完成写入;
4)键值对版本号:每个键值对具备的一个自然数,初始为1。每次值进行修改时数值会加1;
5)节点编号:系统中每个节点都有的一个全局唯一的自然数。
6)优先级:与节点编号紧密关联,节点编号越小,优先级越高。
下面结合附图对本发明的基于单阶段提交并具备自恢复功能的强一致性分布式键值存储系统作进一步的说明。
为了具体说明分布式键值存储系统的实施方式,现假定集群中总共有4个节点:node1、node2、node3、node4,副本数阈值设置为2,写入过程完成的时限是200毫秒,节点离线和进程故障后引起主节点切换的时间阈值是4秒,假设初始状态中node1为主控节点。
图1是本发明基于单阶段提交的分布式数据写入流程图。主控节点node1接收到写入请求后首先检查键值对中key对应的待提交空间是否为空,如果不为空则说明上一轮写入正在进行中,此写入请求被阻塞,等待上一轮写入完成。如果为空则先写入待提交空间,置键值对状态为pending,然后主节点发出请求提交的报文,报文中包括键值对本身和值的版本号,发出的节点名等信息。跟随节点收到报文后先把键值对存入待提交空间,置键值对状态为pending,然后发出同意提交的报文,报文中包括键值对中的key、版本号和节点名等信息。每个节点都会接收同意提交的报文,如果版本号匹配则报文数加一,待达到副本数阈值2时则把待提交空间的数据写入正式的存储空间,并把版本号加一,置键值对状态为success。如果某个节点超过200毫秒没有收到大于等于2个的同意提交报文,则置键值对状态为fail。
图2是本发明节点离线恢复后的数据恢复流程图。图2的(a)中,主控节点node1离线后,为了防止网络抖动误判,设置了一个阈值4秒。如果离线时间小于4秒则此时主控节点还没有发生切换,即其他节点认为node1仍然在线,所有的写入操作还是被导向node1。这期间由于node1不能提供服务整个系统的状态不会有任何改变,所以node1如果在4秒内恢复可以继续作为主节点运行。
如果node1离线超过4秒,则主控节点发生切换,假设node2升为主节点,则node2可以继续提供存储服务。node1恢复后系统的状态可能已发生改变,node1只能作为跟随节点加入系统,然后需要做一次全恢复以保证系统的副本数足够多,副本冗余度越高,则一次性运行故障的节点越多。由于系统内每个节点自身的数据并不一定是最新的,但是整个系统范围内肯定有最新的值,所以需要从整个系统获取数据进行恢复。具体方法是系统内未离线的节点先做一次数据同步,具体方法会在图4的说明中详细描述。数据同步完成后node1向node2发出自身所有键值对的版本号,node2会把自身版本号更新的键值对发回给node1进行恢复。
图2的(b)是跟随节点node2离线的处理流程。不论离线多长时间,启动时都向node1发出自身所有键值对的版本号,node1会把自身版本号更新的键值对发回给node2进行恢复。如果node2恢复过程中node1离线,则node3、node4会进行同步,使得它们都具有最新版本的数据,然后node2从新升级为主节点的node3进行数据恢复。
图3是本发明进程故障重启后的数据恢复流程图。图3的(a)中,主控节点node1的服务进程故障后,如果故障持续时间小于4秒,则此时主控节点还没有发生切换,即其他节点认为node1仍然能够提供服务,所有的写入操作还是被导向node1。这期间由于node1不能提供服务整个系统的状态不会有任何改变,所以node1如果在4秒内恢复可以继续作为主节点运行,但是此时因为进程重启,进程自身空间的数据都已丢失,需要从共享内存中把所有键值对数据加载进来。
如果node1的进程故障持续时间超过4秒,则主控节点发生切换,假设node2升为主节点,则node2可以继续提供存储服务。node1上进程恢复后系统的状态可能已发生改变,node1只能作为跟随节点加入系统,并且从本机共享内存恢复已经不能确保是最新的数据。需要等待系统内未故障的节点先做一次数据同步,同步完成后node1向node2发出自身所有键值对的版本号,node2会把自身版本号更新的键值对发回给node1进行恢复。
图3的(b)是跟随节点node2的进程故障处理流程。不论故障多长时间,启动时都向node1发出自身所有键值对的版本号,node1会把自身版本号更新的键值对发回给node2进行恢复。如果node2的进程恢复过程中node1离线,则node3、node4会进行同步,使得它们都具有最新版本的数据,然后node2从新升级为主节点的node3进行数据恢复。
图4是本发明系统内数据同步流程图。假设node1节点离线时间超过阈值,node2、node3、node4都开始检查本机是否有副本数小于4的键值对,如果有把所有此类键值对加入同步报文中并发出,如果没有则发出一个不含有键值对的同步完成报文。假设node3、node4直接发出同步完成报文。每个节点收到同步报文后,如果发现有比本地更新版本的键值对则更新并发出同步成功报文,如果没有直接发出同步成功报文。发出同步报文的节点收到全部节点的同步成功报文后发出同步完成报文。最后每个节点都收到所有节点的同步完成报文后,同步流程完成。
node2接收到另外两个节点的同步成功报文后也发出同步完成报文。同时前面也收到了node3和node4的同步完成报文,此时node2确认全系统数据最新,可以提供恢复数据服务和正常的分布式存储服务了。
图5是本发明的主控节点选举流程图。当原主控节点离线或者其上的服务进程故障时,每个健康节点会检查4秒内接收到的其他节点的心跳报文,4秒内收到过心跳的节点都认为是健康节点。然后检查自身是否是健康节点中节点号最小的节点,如果是则本机升为新的主控节点。如果不是则继续作为跟随节点运行。
通过上述实施例可知,本发明通信过程更加简单可靠,比传统的两阶段提交方式减少一倍的报文,读写效率将比业界流行的开源软件有成倍的提高。而且可用性更高,不需要系统搭建时必须奇数个节点,且允许超过半数以上的节点故障也能运行,即使只剩一个健康节点也能继续运行。同时自我恢复能力强,无论是主节点或跟随节点上的进程退出还是直接两类节点的离线,都能够自动恢复到故障前的状态,且不需要人工干预。且发明具有强一致性,当客户端写入成功的时刻后,确保任何节点上都能读取到最新的值。
此外,本发明扩展性强,节点加入系统后能自动加载最新的数据,使得基于本发明的分布式键值存储系统更适合工程化使用。同时系统支持跨平台,所有程序支持LINUX/AIX/HPUX/WINDOWS平台。
以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

Claims (10)

1.一种基于单阶段提交并具备自恢复功能的分布式键值存储方法,其特征在于,包括以下步骤:
步骤1):其中的分布式键值存储系统的写入过程只需主控节点发出一次报文,跟随节点回复一次报文即完成;
步骤2):无论是存储服务程序退出后重启或节点离线后恢复,分布式键值存储系统都自动恢复到故障前的状态;
步骤3):步骤1)中的写入过程一旦完成,分布式键值存储系统任何一个节点上都能读取到最新写入的值;
步骤4):分布式键值存储系统允许由奇数个节点组成,也允许由偶数个节点组成,即使大部分节点故障,系统仅剩下一个健康节点也能够继续运行;
步骤5):分布式键值存储系统加入一个新的节点后该节点自动从主节点恢复数据,作为跟随节点运行。
2.根据权利要求1所述的基于单阶段提交并具备自恢复功能的分布式键值存储方法,其特征在于,在上述步骤1)中,客户端发出的写请求全部交给主控节点处理,首先由主节点写入一个待提交的存储空间,并同时发出请求写入的提案报文,待有N个以上节点返回同意提交的报文后,主节点再从待提交的存储空间把最新的值拷贝到正式的存储空间,N为副本数的阈值;跟随节点在返回同意提交的报文前先把键值存入待提交的存储空间,收到大于N个的同意提交报文后再把数据存入正式的存储空间;存储空间均在共享内存中。
3.根据权利要求1所述的基于单阶段提交并具备自恢复功能的分布式键值存储方法,其特征在于,在步骤2)中,每个节点都部署一组服务监控进程,监视存储服务进程一旦退出后会自动将其重启;服务监视进程有两个,一个监视服务进程和另一个与它同组的监视进程,第二个负责监视与它同组的监视进程。
4.根据权利要求1所述的基于单阶段提交并具备自恢复功能的分布式键值存储方法,其特征在于,在步骤2)中,跟随节点离线恢复后,将从主节点申请恢复所有的键值对,然后再参与分布式键值存储系统运行;
主节点的离线恢复分为两种情况:离线时间短于阈值,分布式键值存储系统内仍然以该节点为主机,所有的写入操作此时会被阻塞,分布式键值存储系统的数据不会发生改变,离线恢复后不需要恢复数据,本机仍然作为主控节点继续运行;离线时间超过阈值,本机变为跟随节点运行,从分布式键值存储系统新选举的主节点恢复数据,恢复数据时发出本机所有键值对的版本号,新主机发现版本较旧的将主动发出最新版本数据提供给离线恢复节点。
5.根据权利要求1所述的基于单阶段提交并具备自恢复功能的分布式键值存储方法,其特征在于,在步骤3)中,一旦客户端的写入操作成功完成,分布式键值存储系统中有N个以上节点有当前最新的值;且读取操作被引导到主控节点执行,获取最新的值;若主节点离线,则通过分布式键值存储系统内的数据同步过程使新选举的主节点有最新的值以实现分布式键值存储系统的强一致性。
6.根据权利要求1所述的基于单阶段提交并具备自恢复功能的分布式键值存储方法,其特征在于,在步骤4)中,分布式键值存储系统中要求每次写入操作有N个节点同意提交即可成功,则分布式键值存储系统允许同时最多有N-1个节点发生故障;同时如果分布式键值存储系统的节点逐批发生故障,每批故障节点数小于N,当剩余健康节点数小于等于N时,分布式键值存储系统自动调整阈值N为比健康节点数少1,使分布式键值存储系统能够继续正常运行。
7.根据权利要求4所述的基于单阶段提交并具备自恢复功能的分布式键值存储方法,其特征在于,跟随节点的存储服务进程退出重启后从主节点恢复数据。主节点的进程故障重启后恢复方式分为两种情况:故障时间短于阈值,从本机的共享内存恢复数据,本机仍然为主节点;故障时间超过阈值,从分布式键值存储系统新选举的主节点恢复数据,本机变为跟随节点运行。
8.根据权利要求7所述的基于单阶段提交并具备自恢复功能的分布式键值存储方法,其特征在于,步骤2)中跟随节点离线恢复时以及跟随节点进程退出重启后从主节点恢复数据过程中,如果主节点离线,则等待剩余的节点完成同步后从主节点重新开始数据恢复过程。
9.根据权利要求7所述的基于单阶段提交并具备自恢复功能的分布式键值存储方法,其特征在于,分布式键值存储系统利用心跳和优先级执行主节点选举算法;对于分布式键值存储系统中的每个节点都会有一个唯一的节点编号,编号越小的优先级越高;系统启动时,第一个节点自动升为主节点;分布式键值存储系统运行过程中,当主控节点离线后,剩余节点会根据心跳中的节点编号判断目前该由哪一个优先级最高的节点升为主节点。
10.根据权利要求8所述的基于单阶段提交并具备自恢复功能的分布式键值存储方法,其特征在于,分布式键值存储系统中任何一个节点发现节点离线,进程故障时间超过阈值或者接收到数据恢复请求都会触发全分布式键值存储系统内的数据同步过程;每个节点把每一个数据副本数小于节点离线前的健康节点数的键值对都广播出去,每一个其他节点都向这个节点确认修复完毕。每个节点都完成一遍广播和接收确认过程后,系统同步过程完成。
CN201610399443.1A 2016-06-08 2016-06-08 基于单阶段提交并具备自恢复功能的分布式键值存储方法 Active CN105915391B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610399443.1A CN105915391B (zh) 2016-06-08 2016-06-08 基于单阶段提交并具备自恢复功能的分布式键值存储方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610399443.1A CN105915391B (zh) 2016-06-08 2016-06-08 基于单阶段提交并具备自恢复功能的分布式键值存储方法

Publications (2)

Publication Number Publication Date
CN105915391A true CN105915391A (zh) 2016-08-31
CN105915391B CN105915391B (zh) 2019-06-14

Family

ID=56750684

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610399443.1A Active CN105915391B (zh) 2016-06-08 2016-06-08 基于单阶段提交并具备自恢复功能的分布式键值存储方法

Country Status (1)

Country Link
CN (1) CN105915391B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106789193A (zh) * 2016-12-06 2017-05-31 郑州云海信息技术有限公司 一种集群投票仲裁方法及系统
CN108572793A (zh) * 2017-10-18 2018-09-25 北京金山云网络技术有限公司 数据写入和数据恢复方法、装置、电子设备及存储介质
CN109032854A (zh) * 2018-07-13 2018-12-18 新华三技术有限公司成都分公司 选举请求处理方法、装置、管理节点及存储介质
CN110515960A (zh) * 2019-08-27 2019-11-29 江苏华库数据技术有限公司 一种保证数据一致性的mpp数据库提交控制方法
CN112214466A (zh) * 2019-07-12 2021-01-12 海能达通信股份有限公司 分布式集群系统及数据写入方法、电子设备、存储装置
CN113268545A (zh) * 2021-06-03 2021-08-17 浙江邦盛科技有限公司 一种增量合并与全量相结合的集群节点间键值数据异步复制方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1308839A2 (en) * 2001-11-02 2003-05-07 Guy Pardon Commit messages with additional information and propagation of concurrency preferences in composite systems
CN101388759A (zh) * 2007-09-10 2009-03-18 中兴通讯股份有限公司 实现数据的异步复制到同步复制的转换方法和系统
US20090144750A1 (en) * 2007-11-29 2009-06-04 Mark Cameron Little Commit-one-phase distributed transactions with multiple starting participants
CN103347086A (zh) * 2013-07-11 2013-10-09 南京大学 基于分布式协商算法的协同内核构建方法
US20150212850A1 (en) * 2014-01-30 2015-07-30 Red Hat, Inc. Using compensation transactions for multiple one-phase commit participants
US20150310054A1 (en) * 2014-04-23 2015-10-29 Qumulo, Inc. Data mobility, accessibility, and consistency in a data storage system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1308839A2 (en) * 2001-11-02 2003-05-07 Guy Pardon Commit messages with additional information and propagation of concurrency preferences in composite systems
CN101388759A (zh) * 2007-09-10 2009-03-18 中兴通讯股份有限公司 实现数据的异步复制到同步复制的转换方法和系统
US20090144750A1 (en) * 2007-11-29 2009-06-04 Mark Cameron Little Commit-one-phase distributed transactions with multiple starting participants
CN103347086A (zh) * 2013-07-11 2013-10-09 南京大学 基于分布式协商算法的协同内核构建方法
US20150212850A1 (en) * 2014-01-30 2015-07-30 Red Hat, Inc. Using compensation transactions for multiple one-phase commit participants
US20150310054A1 (en) * 2014-04-23 2015-10-29 Qumulo, Inc. Data mobility, accessibility, and consistency in a data storage system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
G GONGIU ETC: ""One Phase Commit:A low overhead atomic commitment protocol for scalable metadata services"", 《2012 IEEE CONFERENCE ON CLUSTER COMPUTING》 *
杨春明等: ""一种基于Paxos 算法的高可用分布式锁服务系统"", 《西南科技大学学报》 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106789193A (zh) * 2016-12-06 2017-05-31 郑州云海信息技术有限公司 一种集群投票仲裁方法及系统
CN108572793A (zh) * 2017-10-18 2018-09-25 北京金山云网络技术有限公司 数据写入和数据恢复方法、装置、电子设备及存储介质
CN109032854A (zh) * 2018-07-13 2018-12-18 新华三技术有限公司成都分公司 选举请求处理方法、装置、管理节点及存储介质
CN112214466A (zh) * 2019-07-12 2021-01-12 海能达通信股份有限公司 分布式集群系统及数据写入方法、电子设备、存储装置
CN112214466B (zh) * 2019-07-12 2024-05-14 海能达通信股份有限公司 分布式集群系统及数据写入方法、电子设备、存储装置
CN110515960A (zh) * 2019-08-27 2019-11-29 江苏华库数据技术有限公司 一种保证数据一致性的mpp数据库提交控制方法
CN110515960B (zh) * 2019-08-27 2022-06-10 江苏华库数据技术有限公司 一种保证数据一致性的mpp数据库提交控制方法
CN113268545A (zh) * 2021-06-03 2021-08-17 浙江邦盛科技有限公司 一种增量合并与全量相结合的集群节点间键值数据异步复制方法
CN113268545B (zh) * 2021-06-03 2022-05-17 浙江邦盛科技有限公司 一种增量合并与全量相结合的集群节点间键值数据异步复制方法

Also Published As

Publication number Publication date
CN105915391B (zh) 2019-06-14

Similar Documents

Publication Publication Date Title
CN105915391A (zh) 基于单阶段提交并具备自恢复功能的分布式键值存储方法
US7428657B2 (en) Method for rolling back from snapshot with log
CN101300780B (zh) 提供网络服务的系统和方法
WO2021136422A1 (zh) 状态管理方法、主备应用服务器的切换方法及电子设备
CN103294701B (zh) 一种分布式文件系统以及数据处理的方法
CN113127565A (zh) 基于外部观察者组的分布式数据库节点同步的方法和装置
JPH09259098A (ja) 分散メモリ型マルチプロセッサシステム及び故障回復方法
CN111460039A (zh) 关系型数据库处理系统、客户端、服务器及方法
CN105426213B (zh) 软件更新方法和系统
CN102045187B (zh) 一种利用检查点实现高可用性系统的方法和设备
CN113965578A (zh) 一种集群中主节点的选举方法、装置、设备及存储介质
CN108173971A (zh) 一种基于主备切换的MooseFS高可用方法及系统
CN110825763B (zh) 基于共享存储的MySQL数据库高可用系统及其高可用方法
CN114337944B (zh) 一种系统级主备冗余通用控制方法
CN102013997B (zh) 电信网管系统中的双机数据备份方法和系统
CN112948484A (zh) 分布式数据库系统和数据灾备演练方法
CN110377487A (zh) 一种处理高可用集群脑裂的方法及装置
CN114363350A (zh) 一种服务治理系统及方法
CN114020279A (zh) 应用软件分布式部署方法、系统、终端及存储介质
US20180167269A1 (en) Multiple site rolling upgrade protocol
CN111752962A (zh) 一种保证mha集群高可用及一致性的系统及方法
CN108984602B (zh) 一种数据库控制方法和数据库系统
CN116346588A (zh) 一种管理节点切换方法、装置、设备及介质
CN114546724A (zh) 一种两中心部署的数据中心级别容灾方法与系统
CN112437142B (zh) 多个数据中心的数据同步系统和方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant