CN106375416B - 分布式数据存储系统中一致性动态调整方法及装置 - Google Patents

分布式数据存储系统中一致性动态调整方法及装置 Download PDF

Info

Publication number
CN106375416B
CN106375416B CN201610783920.4A CN201610783920A CN106375416B CN 106375416 B CN106375416 B CN 106375416B CN 201610783920 A CN201610783920 A CN 201610783920A CN 106375416 B CN106375416 B CN 106375416B
Authority
CN
China
Prior art keywords
probability
node
delay
distributed data
storage system
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
Application number
CN201610783920.4A
Other languages
English (en)
Other versions
CN106375416A (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.)
Tianhang Changying (Jiangsu) Technology Co.,Ltd.
Original Assignee
Beihang University
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 Beihang University filed Critical Beihang University
Priority to CN201610783920.4A priority Critical patent/CN106375416B/zh
Publication of CN106375416A publication Critical patent/CN106375416A/zh
Application granted granted Critical
Publication of CN106375416B publication Critical patent/CN106375416B/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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种分布式数据存储系统中一致性动态调整方法及装置。该方法,包括:所述协调节点获取分布式数据存储系统的性能参数;所述协调节点根据所述性能参数,计算所述分布式数据存储系统中用户请求的返回所需等待的每个副本应答数目对应的不一致性的概率和系统延迟;所述协调节点根据每个应答数目对应的不一致性的概率和系统延迟,获取不一致性的概率和系统延迟满足预设条件的至少一个第一应答数目;所述至少一个第一应答数目用于动态调整一致性等级。本发明能够实时自动地对分布式数据存储系统当前的运行状态作出符合用户延迟要求以及一致性要求的一致性等级的选择。

Description

分布式数据存储系统中一致性动态调整方法及装置
技术领域
本发明涉及分布式数据存储系统技术领域,尤其涉及一种分布式数据存储系统中一致性动态调整方法及装置。
背景技术
对于一个分布式数据存储系统来说,CAP定理指出,最多只能在一致性、可用性及网络分割容忍性三者中挑选两个。随着研究人员在分布式数据存储系统领域的不断探索和实践,提出了如下PACELC理论:(1)当副本节点间的网络出现分割时,分布式数据存储系统需要在强一致性和可用性之间进行取舍;(2)当未出现网络分割时,分布式数据存储系统需要在强一致性和请求延迟之间进行权衡。因此,系统设计人员需要在这两个权衡之间进行选择。但由于一个分布式数据存储系统出现网络分割的情况比较少见,因此大多数时间面临的是一致性与延迟之间的权衡。因此如何在一致性与延迟间做好权衡是一个重要的研究课题。
由PACELC理论可知,选择不同的一致性等级会引起系统延迟的变化。现有技术中,很多分布式数据存储系统提供多个一致性等级供应用开发人员选择。应用开发人员在开发或者部署应用时必须要配置一致性等级。在这个阶段配置的一致性等级将会在应用的运行期间不能够动态改变,因此分布式数据存储系统也就不能根据系统的当前状态动态调整一致性等级从而达到控制系统延迟的目标。
因此,如何通过动态调整一致性等级,达到满足系统延迟需求的目标是本领域技术人员亟需解决的技术问题。
发明内容
本发明提供一种分布式数据存储系统中一致性动态调整方法及装置,以实现通过动态调整一致性等级,达到满足系统延迟需求的目标。
第一方面,本发明提供一种分布式数据存储系统中一致性动态调整方法,应用于分布式数据存储系统中,所述分布式数据存储系统包括:客户端、至少两个服务器和数据库,所述至少两个服务器包括一个协调节点和至少一个副本节点,所述方法包括:
所述协调节点获取分布式数据存储系统的性能参数;
所述协调节点根据所述性能参数,计算所述分布式数据存储系统中用户请求的返回所需等待的每个副本应答数目对应的不一致性的概率和系统延迟;
所述协调节点根据每个副本应答数目对应的不一致性的概率和系统延迟,获取不一致性的概率和系统延迟满足预设条件的至少一个第一副本应答数目;所述至少一个第一副本应答数目用于动态调整一致性等级。
可选地,所述性能参数包括:静态参数和动态参数;
所述静态参数包括:所述协调节点失效的时间阈值、所述协调节点发送心跳的间隔时间;所述动态参数包括:副本节点崩溃的概率、所述协调节点向所述副本节点发送提交消息的延迟、所述副本节点向所述协调节点发送响应消息的延迟;所述副本节点崩溃的概率包括:所述协调节点与所述副本节点的网络连接失败概率,所述副本节点连接数据库失败的概率。
可选地,计算所述分布式数据存储系统中用户请求的返回所需等待的每个副本应答数目对应的不一致性的概率和系统延迟,包括:
根据如下公式(1)计算所述不一致性的概率;
Pwc=Pwl+Pwd(1);
其中,Pwc表示不一致性的概率;Pwd=(1-Pc)PgfsPno
其中,Pelw(m)表示当有副本节点崩溃时已经完成写操作的节点数目的经验概率密度函数,Pc表示副本节点崩溃的概率;其中,Pfs表示一个副本节点误判协调节点失效的概率;n表示数据的副本个数;d表示用户请求的返回所需等待的副本应答数目;
根据如下公式(2)计算所述系统延迟;
其中,G(t)表示g(t)的累积概率密度函数;f(t)表示两个节点间消息延迟的概率密度函数;Lw(d)表示所述分布式数据存储系统在一致性等级为d时,接收用户请求到返回用户请求的延迟;Lw(d+1)表示所述分布式数据存储系统在一致性等级为d+1时,接收用户请求到返回用户请求的延迟;E(Lw(d+1)-Lw(d))表示Lw(d+1)-Lw(d)的期望值。
可选地,获取不一致性的概率和系统延迟满足预设条件的至少一个第一副本应答数目,包括:
当所述不一致性的概率小于预设条件中的不一致性的概率阈值且所述系统延迟小于预设条件中的系统延迟阈值时,则所述不一致性的概率和所述系统延迟对应的副本应答数目为所述第一副本应答数目。
可选地,还包括:
所述协调节点接收所述副本节点的请求;
所述协调节点将所述副本节点的请求发送给所述分布式数据存储系统中所有的副本节点;
所述协调节点接收到所述第一应答数目的副本节点的响应后,将所述副本节点的请求进行提交。
第二方面,本发明提供一种分布式数据存储系统中一致性动态调整装置,应用于分布式数据存储系统中,所述分布式数据存储系统包括:客户端、至少两个服务器和数据库,所述至少两个服务器包括一个协调节点和至少一个副本节点,所述装置包括:
获取模块,用于获取分布式数据存储系统的性能参数;
计算模块,用于根据所述性能参数,计算所述分布式数据存储系统中用户请求的返回所需等待的每个副本应答数目对应的不一致性的概率和系统延迟;
处理模块,用于根据每个副本应答数目对应的不一致性的概率和系统延迟,获取不一致性的概率和系统延迟满足预设条件的至少一个第一副本应答数目;所述至少一个第一副本应答数目用于动态调整一致性等级。
可选地,所述性能参数包括:静态参数和动态参数;
所述静态参数包括:所述协调节点失效的时间阈值、所述协调节点发送心跳的间隔时间;所述动态参数包括:副本节点崩溃的概率、所述协调节点向所述副本节点发送提交消息的延迟、所述副本节点向所述协调节点发送响应消息的延迟;所述副本节点崩溃的概率包括:所述协调节点与所述副本节点的网络连接失败概率,所述副本节点连接数据库失败的概率。
可选地,所述计算模块,具体用于:
根据如下公式(1)计算所述不一致性的概率;
Pwc=Pwl+Pwd(1);
其中,Pwc表示不一致性的概率;Pwd=(1-Pc)PgfsPno
其中,Pelw(m)表示当有副本节点崩溃时已经完成写操作的节点数目的经验概率密度函数,Pc表示副本节点崩溃的概率;其中,Pfs表示一个副本节点误判协调节点失效的概率;n表示数据的副本个数;d表示用户请求的返回所需等待的副本应答数目;
根据如下公式(2)计算所述系统延迟;
其中,G(t)表示g(t)的累积概率密度函数;f(t)表示两个节点间消息延迟的概率密度函数;Lw(d)表示所述分布式数据存储系统在一致性等级为d时,接收用户请求到返回用户请求的延迟;Lw(d+1)表示所述分布式数据存储系统在一致性等级为d+1时,接收用户请求到返回用户请求的延迟;E(Lw(d+1)-Lw(d))表示Lw(d+1)-Lw(d)的期望值。
可选地,所述处理模块,具体用于:
当所述不一致性的概率小于预设条件中的不一致性的概率阈值且所述系统延迟小于预设条件中的系统延迟阈值时,则所述不一致性的概率和所述系统延迟对应的副本应答数目为所述第一副本应答数目。
可选地,还包括:
接收模块,用于接收所述副本节点的请求;
发送模块,用于将所述副本节点的请求发送给所述分布式数据存储系统中所有的副本节点;
所述处理模块,还用于接收到所述第一应答数目的副本节点的响应后,将所述副本节点的请求进行提交。
本发明分布式数据存储系统中一致性动态调整方法及装置,通过协调节点获取分布式数据存储系统的性能参数;所述协调节点根据所述性能参数,计算所述分布式数据存储系统中用户请求的返回所需等待的每个副本应答数目对应的不一致性的概率和系统延迟;所述协调节点根据每个副本应答数目对应的不一致性的概率和系统延迟,获取不一致性的概率和系统延迟满足预设条件的至少一个第一副本应答数目;所述至少一个第一应答数目用于动态调整一致性等级,实现了动态调整一致性等级,而且能够实时自动地对分布式数据存储系统当前的运行状态作出符合用户延迟要求以及一致性要求的一致性等级的选择。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明分布式数据存储系统中一致性动态调整方法的系统架构图;
图2为本发明分布式数据存储系统中一致性动态调整方法一实施例的流程示意图;
图3为本发明分布式数据存储系统中一致性动态调整装置一实施例的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明分布式数据存储系统中一致性动态调整方法的系统架构图。如图1所示,本发明实施例的方法,应用于分布式数据存储系统中,所述分布式数据存储系统包括:客户端、至少两个服务器和数据库,所述至少两个服务器包括一个协调节点和至少一个副本节点(replica)。
本发明实施例的分布式数据存储系统采用CC-Paxos协议实现。
如图1所示,分布式数据存储系统主要包括CC-Paxos客户端,CC-Paxos服务器和底层的数据库引擎。
CC-Paxos客户端是一个轻量级的客户端库,主要用于与后端服务器交互来完成数据的读写操作。对于写请求,客户端会将请求发送给协调节点所在的服务器。如果客户端不能够连接协调节点,客户端会发起一个协调节点的选举用于选举出新的协调节点。对于读请求,客户端会将请求随机发送给一个副本节点。这样能够在一定程度上在副本间均摊负载。
CC-Paxos服务器端的运行形式为数据库引擎的代理。它会接收客户端的读写请求。它具体可以包括请求管理模块,CC-Paxos协议模块,副本管理模块,一致性配置模块以及数据库连接模块。下面分别介绍一下其功能。请求管理模块会接收来自客户端的请求,也会将已经处理好的请求的结果返回给客户端。这个模块里有一个队列,它会缓存用户的请求。当队列已满时或者超过一定时间时,请求会被一次性发送给CC-Paxos协议模块进行批处理。这种批处理模式能够在平均意义下减少请求的开销。CC-Paxos协议模块负责执行CC-Paxos协议的流程,将客户端的请求排序。副本管理模块主要负责副本间的消息通信以及定期侦测副本间通信的延迟。副本间的网络延迟信息会发送给一致性配置模块。这对于一致性配置模块来说是一个重要的参数。一致性配置模块主要是动态计算在当前系统状态下能够设置的一致性等级以满足用户对于一致性和延迟的要求。数据库连接模块负责连接底层数据库进行读写操作。底层的数据库可以是mysql数据库,未对其进行任何修改。
CC-Paxos协议主要分为3个阶段。与Paxos协议类似,在协议中有四类角色,分别是协调节点(leader),提案节点(proposer),接受节点(acceptor),学习节点(learner)。在具体实现中,提案节点,接受节点,学习节点往往都在同一个节点。
图2为本发明分布式数据存储系统中一致性动态调整方法一实施例的流程示意图。如图2所示,本实施例的方法,包括:
步骤201、所述协调节点获取分布式数据存储系统的性能参数;
具体的,所述协调节点可以在所述分布式数据存储系统的用户配置文件中获取性能参数。该用户配置文件一般放在系统的配置文件夹中。
其中,在实际应用中,所述性能参数包括:静态参数和动态参数;
所述静态参数包括:所述协调节点失效的时间阈值、协调节点发送心跳的间隔时间;所述动态参数包括:副本节点崩溃的概率、所述协调节点向所述副本节点发送提交消息的延迟、所述副本节点向所述协调节点发送响应消息的延迟;所述副本节点崩溃的概率包括:所述协调节点与所述副本节点的网络连接失败概率,副本节点连接数据库失败的概率。
具体的,系统的配置文件中静态参数包括(1)FDSusperctTimeout,表示协调节点失效的时间阈值。(2)FDSendTimeout,表示发送心跳的间隔时间。这两个参数都可以在配置文件中找到,因此很容易收集到。
动态参数包括Pc,Tc(i)和Tf(i)。Pc表示副本节点崩溃的概率。在系统中,主要考虑两种由于网络引发的崩溃。第一种是协调节点与副本节点间的网络连接失败,其概率为Pc1。第二种是连接数据库失败,其概率为Pc2(协调节点如果有被请求的数据的话,它也是副本节点,副本节点都需要连接数据库进行操作)。第一种概率的获得是通过协调节点启动一个线程侦测协调节点与副本节点连接超时的次数,Pc1=Ntimeout/N1,其中N1是总连接次数,Ntimeout是其中超时的次数。同样地,对于第二种概率的计算也是通过计数的方法,Pc2=Nfail/N2,其中N2是总连接次数,Nfail是其中超时的次数。最终Pc=Pc1+Pc2。
Tc(i)和Tf(i)分别是代表从协调节点发送提交(COMMIT)消息到副本节点i的延迟以及从副本节点i发送响应(FINISHED)消息到协调节点的延迟。这两个延迟可以通过测量协调节点与副本节点之间的平均延迟来得到。具体的,可以通过协调节点的副本管理模块和副本节点的副本管理模块主动在协调节点和副本节点之间发送消息来测量它们之间的网络延迟,然后取个平均值。
步骤202、所述协调节点根据所述性能参数,计算所述分布式数据存储系统中用户请求的返回所需等待的每个副本应答数目对应的不一致性的概率和系统延迟;
具体的,对于给定的副本应答数目(d),可以通过一致性与延迟的量化模型计算不一致性的概率和系统延迟。
根据如下公式(1)计算所述不一致性的概率;
Pwc=Pwl+Pwd(1);
其中,Pwc表示不一致性的概率;Pwd=(1-Pc)PgfsPno
其中,Pelw(m)表示当有副本节点崩溃时已经完成写操作的节点数目的经验概率密度函数,Pc表示副本节点崩溃的概率;其中,Pfs表示一个副本节点误判协调节点失效的概率;n表示数据的副本个数;d表示用户请求的返回所需等待的副本应答数目;
根据如下公式(2)计算所述系统延迟;
其中,G(t)表示g(t)的累积概率密度函数;f(t)表示两个节点间消息延迟的概率密度函数;Lw(d)表示所述分布式数据存储系统在一致性等级为d时,接收用户请求到返回用户请求的延迟;Lw(d+1)表示所述分布式数据存储系统在一致性等级为d+1时,接收用户请求到返回用户请求的延迟;E(Lw(d+1)-Lw(d))表示Lw(d+1)-Lw(d)的期望值。
具体的,上述公式(1)和公式(2)中的参数可以参照现有的论文“Consistency orlatency a quantitative analysis of replication systems based on replicatedstate machines”。
Pelw(m)表示当有副本节点崩溃时已经完成写操作的节点数目的经验概率密度函数,具体的经验概率密度函数可以在实际系统中通过统计获得。
Pfs表示一个副本节点误判协调节点失效的概率,Pfs=P((Thb2-Thb1)>(FDSusperctTimeout–FDSendTimeout)),其中Thb2与Thb1表示心跳消息的延迟。在本发明实施例中可以假设消息延迟服从指数分布,因此上述获得的参数Tc(i)或者Tf(i)都可以当作指数分布的参数。这样Pfs就可以计算出来。
Tc(i)和Tf(i)是一样的,主要用于求出消息延迟所服从的指数分布的参数。获得指数分布的参数后,这样就可以把消息延迟这个随机变量的取值用概率刻画出来。而Thb2和Thb1是消息延迟这个随机变量的两个取值。因此Thb2和Thb1本身也就服从参数为Tc(i)的指数分布。
f(t)可以为指数函数。具体的指数函数的参数由Tc(i)或者Tf(i)给出。
E(Lw(d+1)–Lw(d))=E(Lw(d+1))–E(Lw(d)),E(Lw(1))可以事先测出,因此对于任何d值,E(Lw(d))可知。
步骤203、所述协调节点根据每个副本应答数目对应的不一致性的概率和系统延迟,获取不一致性概率和系统延迟满足预设条件的至少一个第一副本应答数目;所述至少一个第一副本应答数目用于动态调整一致性等级。
其中,在实际应用中,本步骤具体可以通过如下方式实现:
当所述不一致性的概率小于预设条件中的不一致性的概率阈值且所述系统延迟小于预设条件中的系统延迟阈值时,则所述不一致性的概率和所述系统延迟对应的副本应答数目为所述第一副本应答数目。
具体的,首先用户会提供他们对于一致性程度(1-UserPwc)或者仅仅是强弱两个等级以及对于延迟(UserLatency)的要求,即预设条件可以包括不一致性的概率阈值(UserPwc)以及系统延迟阈值(UserLatency)。这两个要求提供的是最低的一致性等级和应用可以容忍的最高延迟。
本实施例中的步骤202和203,使得副本应答数目d遍历[1,[n/2]+1]的区间,计算出Pwc和latency。然后将计算出的Pwc,以及latency与UserPwc以及UserLatency进行比较。如果符合用户需求,即latency和Pwc分别均小于或等于UserLatency和UserPwc,则将该d值保存。如果最后结果有多个d值满足用户需求,则需要根据用户对于一致性和性能(系统延迟)的偏好进行选择。
程序的伪代码如下:
上述程序中majority即第一副本应答数目,第12行将majority设置为[n/2]+1,这是因为没有d值能够满足用户的严格的要求,因此默认优先保证强一致性。
进一步的,通过收集的参数来确定出符合用户双重要求的第一副本应答数目,也就是说本发明实施例的方法通过改变第一副本应答数目来实现调整一致性等级。一致性等级可以用第一副本应答数目来表示,也可以用一致性概率来表示。这里的动态调整体现在两个地方,一是因为上述参数是实时测出来的。二是由于系统需要在一个预设的时间间隔后,重新配置第一应答数目。这两点加在一块也就起到了动态调整一致性等级的效果。
本发明实施例的方法能够在分布式数据存储系统中通过动态调整一致性等级从而实现用户对于系统一致性等级和系统延迟的双重要求。该方法首先能够实时自动地对分布式数据存储系统当前的运行状态作出符合用户延迟要求以及一致性要求的一致性等级的选择。其次该方法能够细化一致性等级的选项,用户可以通过概率的形式给出对于一致性的要求。
本实施例提供的分布式数据存储系统中一致性动态调整方法,通过所述协调节点获取分布式数据存储系统的性能参数;所述协调节点根据所述性能参数,计算所述分布式数据存储系统中用户请求的返回所需等待的每个副本应答数目对应的不一致性的概率和系统延迟;所述协调节点根据每个副本应答数目对应的不一致性的概率和系统延迟,获取不一致性的概率和系统延迟满足预设条件的至少一个第一副本应答数目;所述至少一个第一应答数目用于动态调整一致性等级,实现了动态调整一致性等级,而且能够实时自动地对分布式数据存储系统当前的运行状态作出符合用户延迟要求以及一致性要求的一致性等级的选择。
在上述实施例的基础上,本实施例的方法中,还包括如下步骤:
所述协调节点接收所述副本节点的请求;
所述协调节点将所述副本节点的请求发送给所述分布式数据存储系统中所有的副本节点;
所述协调节点接收到所述第一应答数目的副本节点的响应后,将所述副本节点的请求进行提交
具体地,本实施例中,详细阐述了CC-Paxos协议的流程,如下伪代码所示:
1:Parameters
2:δ//一致性等级调整的时间间隔
3:Initialization
4:Pc←φ//副本节点崩溃的概率
5:latency←φ//延迟(Tc(i)和Tf(i))
6:accepted←φ//相同状态的副本节点的集合
7:Task1(leader)
8:Everyδtime do
9:Capture latency and Pc
10:d←SETmajority(latency与Pc)
11:Task2(leader)
12:Upon receiving value v from proposer
13:increase cid to an arbitrary unique value
14:for all replicas do
15:send(replicas,Phase1A,cid)
16:end for
17:Task3(acceptor)
18:Upon receiving(Phase1A,cid)from leader
19:if cid>rid then
20:let rid←cid
21:send(leader,(Phase1B,rid,ridr,valr))
22:end if
23:Task4(leader)
24:Upon receiving(Phase1B,rid,ridr,valr)from replica p25:Select thelargest ridr value received labeled as k,
26:accepted←accepted∪p where ridr=k
27:Upon accepted contains d items
28:if k=0then
29:let valc=v
30:else
31:let valc=valr
32:end if
33:vidc identifier for valc
34:send(replicas,(Phase2A,cid,vidc,valc))
35:Task5(acceptor)
36:Upon receiving(Phase2A,cid,vidc,valc)from leader
37:if cid≥rid then
38:rid←cid&valr←valc&ridr←vidc
39:send(leader,(Phase2B,cid))
40:end if
41:Task6(leader)
42:Upon leader receive d Phase2B messages
43:forward SUCCESS message to proposer
上述伪代码详细描述了各个角色的交互逻辑。
阶段0(任务1)是准备阶段。协调节点会通过一致性与延迟的量化模型计算不一致性的概率和系统延迟。为了能够运用该一致性与延迟的量化模型,需要收集分布式数据存储系统的性能参数,参见上述实施例。参数收集后,根据应用对于一致性的要求和对于系统延迟的要求,找到特定的第一应答数目。
阶段1(任务2,任务3)与Paxos协议的第一阶段一样。这里简要描述下。从第11行到第16行,描述了协调节点对于提案节点提出的值v首先会生成一个唯一的标识id(记做cid)。然后将此cid发送给所有的接受节点。这个作为Phase1A消息。对于一个接受节点来说,它会回复一个三元组给协调节点,分别是该接受节点参与过的最大的rid,它提案过的最大的ridr以及它提案过的或者之前回复过的值valr。valr值可能为空,这是因为接受节点可能未接受过或提案过任何值。这个消息作为Phase1B消息。第19行表示如果接受节点接收到的cid比ridr小,则该消息会被忽略。
在阶段2(任务4,5,6)中,协调节点会基于从接受节点反馈的消息来选择一个值valc(协调节点会选出具有最大ridr值的消息中的值valr作为valc),然后提交它的提案。提案中包括它的唯一vidc,cid(第34行)。这个作为Phase2A的消息。第24行到34行阐述了其流程,与paxos协议不同的一点是,paxos协议需要接收到大多数节点的应答后才能开始第二阶段的消息传送,而CC-Paxos协议只要接收到d个(第一应答数目)节点的应答。d的值是在第0阶段计算出来的。如果将d的值设置为[n/2]+1,则CC-Paxos协议将提供强一致性,当d的值在区间[1,(n/2)]时,CC-Paxos协议将提供弱一致性。这是CC-Paxos协议与Paxos协议最核心的不同,也是本发明实施例方法的核心。
接受节点接收到Phase2A消息后,如果接受节点没有参与到更高的id的实例中的话,接受节点会作出应答,该应答是Phase2B消息。第36到40行阐述了这一过程。同时,接受节点会通知所有的学习节点它所接受的值。当学习节点收到d个接受节点的值时,学习节点才确定这个实例所对应的值。最后协调节点会发送成功的消息给提案节点。这些过程在第42到43行。
CC-Paxos不仅能够提供强一致性,也能支持弱一致性。与原始Paxos协议相比,CC-Paxos提交一个提案需要等待比较少的应答(ACK),这使得它的性能得到了提升。
图3为本发明分布式数据存储系统中一致性动态调整装置一实施例的结构示意图。如图3所示,本实施例的分布式数据存储系统中一致性动态调整装置,应用于分布式数据存储系统中,所述分布式数据存储系统包括:客户端、至少两个服务器和数据库,所述至少两个服务器包括一个协调节点和至少一个副本节点,该装置可以设置在协调节点中,该装置包括:
获取模块301,用于获取分布式数据存储系统的性能参数;
计算模块302,用于根据所述性能参数,计算所述分布式数据存储系统中用户请求的返回所需等待的每个副本应答数目对应的不一致性的概率和系统延迟;
处理模块303,用于根据每个副本应答数目对应的不一致性的概率和系统延迟,获取不一致性的概率和系统延迟满足预设条件的至少一个第一副本应答数目;所述至少一个第一副本应答数目用于动态调整一致性等级。
可选地,作为一种可实施的方式,所述性能参数包括:静态参数和动态参数;
所述静态参数包括:所述协调节点失效的时间阈值、所述协调节点发送心跳的间隔时间;所述动态参数包括:副本节点崩溃的概率、所述协调节点向所述副本节点发送提交消息的延迟、所述副本节点向所述协调节点发送响应消息的延迟;所述副本节点崩溃的概率包括:所述协调节点与所述副本节点的网络连接失败概率,所述副本节点连接数据库失败的概率。
可选地,作为一种可实施的方式,所述计算模块,具体用于:
根据如下公式(1)计算所述不一致性的概率;
Pwc=Pwl+Pwd(1);
其中,Pwc表示不一致性的概率;Pwd=(1-Pc)PgfsPno
其中,Pelw(m)表示当有副本节点崩溃时已经完成写操作的节点数目的经验概率密度函数,Pc表示副本节点崩溃的概率;其中,Pfs表示一个副本节点误判协调节点失效的概率;n表示数据的副本个数;d表示用户请求的返回所需等待的副本应答数目;
根据如下公式(2)计算所述系统延迟;
其中,G(t)表示g(t)的累积概率密度函数;f(t)表示两个节点间消息延迟的概率密度函数;Lw(d)表示所述分布式数据存储系统在一致性等级为d时,接收用户请求到返回用户请求的延迟;Lw(d+1)表示所述分布式数据存储系统在一致性等级为d+1时,接收用户请求到返回用户请求的延迟;E(Lw(d+1)-Lw(d))表示Lw(d+1)-Lw(d)的期望值。
可选地,作为一种可实施的方式,所述处理模块303,具体用于:
当所述不一致性的概率小于预设条件中的不一致性的概率阈值且所述系统延迟小于预设条件中的系统延迟阈值时,则所述不一致性的概率和所述系统延迟对应的副本应答数目为所述第一副本应答数目。
可选地,作为一种可实施的方式,还包括:
接收模块,用于接收所述副本节点的请求;
发送模块,用于将所述副本节点的请求发送给所述分布式数据存储系统中所有的副本节点;
所述处理模块303,还用于接收到所述第一应答数目的副本节点的响应后,将所述副本节点的请求进行提交。
本实施例的装置,可以用于执行如图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (10)

1.一种分布式数据存储系统中一致性动态调整方法,其特征在于,应用于分布式数据存储系统中,所述分布式数据存储系统包括:客户端、至少两个服务器和数据库,所述至少两个服务器包括一个协调节点和至少一个副本节点,所述方法包括:
所述协调节点获取分布式数据存储系统的性能参数;
所述协调节点根据所述性能参数,计算所述分布式数据存储系统中用户请求的返回所需等待的每个副本应答数目对应的不一致性的概率和系统延迟;
所述协调节点根据每个副本应答数目对应的不一致性的概率和系统延迟,获取不一致性的概率和系统延迟满足预设条件的至少一个第一副本应答数目;所述至少一个第一副本应答数目用于动态调整一致性等级。
2.根据权利要求1所述的方法,其特征在于,所述性能参数包括:静态参数和动态参数;
所述静态参数包括:所述协调节点失效的时间阈值、所述协调节点发送心跳的间隔时间;所述动态参数包括:副本节点崩溃的概率、所述协调节点向所述副本节点发送提交消息的延迟、所述副本节点向所述协调节点发送响应消息的延迟;所述副本节点崩溃的概率包括:所述协调节点与所述副本节点的网络连接失败概率,所述副本节点连接数据库失败的概率。
3.根据权利要求2所述的方法,其特征在于,计算所述分布式数据存储系统中用户请求的返回所需等待的每个副本应答数目对应的不一致性的概率和系统延迟,包括:
根据如下公式(1)计算所述不一致性的概率;
Pwc=Pwl+Pwd (1);
其中,Pwc表示不一致性的概率;Pwd=(1-Pc)PgfsPno
其中,Pelw(m)表示当有副本节点崩溃时已经完成写操作的节点数目的经验概率密度函数,Pc表示副本节点崩溃的概率;其中,Pfs表示一个副本节点误判协调节点失效的概率;n表示数据的副本个数;d表示用户请求的返回所需等待的副本应答数目;
根据如下公式(2)计算所述系统延迟;
其中,G(t)表示g(t)的累积概率密度函数;f(t)表示两个节点间消息延迟的概率密度函数;Lw(d)表示所述分布式数据存储系统在一致性等级为d时,接收用户请求到返回用户请求的延迟;Lw(d+1)表示所述分布式数据存储系统在一致性等级为d+1时,接收用户请求到返回用户请求的延迟;E(Lw(d+1)-Lw(d))表示Lw(d+1)-Lw(d)的期望值。
4.根据权利要求3所述的方法,其特征在于,获取不一致性的概率和系统延迟满足预设条件的至少一个第一副本应答数目,包括:
当所述不一致性的概率小于预设条件中的不一致性的概率阈值且所述系统延迟小于预设条件中的系统延迟阈值时,则所述不一致性的概率和所述系统延迟对应的副本应答数目为所述第一副本应答数目。
5.根据权利要求1-4任一项所述的方法,其特征在于,还包括:
所述协调节点接收所述副本节点的请求;
所述协调节点将所述副本节点的请求发送给所述分布式数据存储系统中所有的副本节点;
所述协调节点接收到第一应答数目的副本节点的响应后,将所述副本节点的请求进行提交。
6.一种分布式数据存储系统中一致性动态调整装置,其特征在于,应用于分布式数据存储系统中,所述分布式数据存储系统包括:客户端、至少两个服务器和数据库,所述至少两个服务器包括一个协调节点和至少一个副本节点,所述装置包括:
获取模块,用于获取分布式数据存储系统的性能参数;
计算模块,用于根据所述性能参数,计算所述分布式数据存储系统中用户请求的返回所需等待的每个副本应答数目对应的不一致性的概率和系统延迟;
处理模块,用于根据每个副本应答数目对应的不一致性的概率和系统延迟,获取不一致性的概率和系统延迟满足预设条件的至少一个第一副本应答数目;所述至少一个第一副本应答数目用于动态调整一致性等级。
7.根据权利要求6所述的装置,其特征在于,所述性能参数包括:静态参数和动态参数;
所述静态参数包括:所述协调节点失效的时间阈值、所述协调节点发送心跳的间隔时间;所述动态参数包括:副本节点崩溃的概率、所述协调节点向所述副本节点发送提交消息的延迟、所述副本节点向所述协调节点发送响应消息的延迟;所述副本节点崩溃的概率包括:所述协调节点与所述副本节点的网络连接失败概率,所述副本节点连接数据库失败的概率。
8.根据权利要求7所述的装置,其特征在于,所述计算模块,具体用于:
根据如下公式(1)计算所述不一致性的概率;
Pwc=Pwl+Pwd (1);
其中,Pwc表示不一致性的概率;Pwd=(1-Pc)PgfsPno
其中,Pelw(m)表示当有副本节点崩溃时已经完成写操作的节点数目的经验概率密度函数,Pc表示副本节点崩溃的概率;其中,Pfs表示一个副本节点误判协调节点失效的概率;n表示数据的副本个数;d表示用户请求的返回所需等待的副本应答数目;
根据如下公式(2)计算所述系统延迟;
其中,G(t)表示g(t)的累积概率密度函数;f(t)表示两个节点间消息延迟的概率密度函数;Lw(d)表示所述分布式数据存储系统在一致性等级为d时,接收用户请求到返回用户请求的延迟;Lw(d+1)表示所述分布式数据存储系统在一致性等级为d+1时,接收用户请求到返回用户请求的延迟;E(Lw(d+1)-Lw(d))表示Lw(d+1)-Lw(d)的期望值。
9.根据权利要求8所述的装置,其特征在于,所述处理模块,具体用于:
当所述不一致性的概率小于预设条件中的不一致性的概率阈值且所述系统延迟小于预设条件中的系统延迟阈值时,则所述不一致性的概率和所述系统延迟对应的副本应答数目为所述第一副本应答数目。
10.根据权利要求6-9任一项所述的装置,其特征在于,还包括:
接收模块,用于接收所述副本节点的请求;
发送模块,用于将所述副本节点的请求发送给所述分布式数据存储系统中所有的副本节点;
所述处理模块,还用于接收到第一应答数目的副本节点的响应后,将所述副本节点的请求进行提交。
CN201610783920.4A 2016-08-30 2016-08-30 分布式数据存储系统中一致性动态调整方法及装置 Active CN106375416B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610783920.4A CN106375416B (zh) 2016-08-30 2016-08-30 分布式数据存储系统中一致性动态调整方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610783920.4A CN106375416B (zh) 2016-08-30 2016-08-30 分布式数据存储系统中一致性动态调整方法及装置

Publications (2)

Publication Number Publication Date
CN106375416A CN106375416A (zh) 2017-02-01
CN106375416B true CN106375416B (zh) 2019-08-09

Family

ID=57900406

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610783920.4A Active CN106375416B (zh) 2016-08-30 2016-08-30 分布式数据存储系统中一致性动态调整方法及装置

Country Status (1)

Country Link
CN (1) CN106375416B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107040476B (zh) * 2017-03-10 2020-05-05 浙江工业大学 一种面向实时流计算的动态逐级反压方法
CN107332888B (zh) * 2017-06-21 2020-04-10 优刻得科技股份有限公司 在分布式存储系统中写入数据副本的方法、装置及其系统
CN110196680B (zh) * 2018-03-27 2021-10-26 腾讯科技(深圳)有限公司 数据处理方法、装置及存储介质
CN108595638A (zh) * 2018-04-25 2018-09-28 杭州闪捷信息科技股份有限公司 一种分布式系统下确定关联调用时间范围的方法
CN111506254B (zh) * 2019-01-31 2023-04-14 阿里巴巴集团控股有限公司 分布式存储系统及其管理方法、装置
CN110138863B (zh) * 2019-05-16 2021-11-02 哈尔滨工业大学(深圳) 基于Multi-Paxos分组的自适应一致性协议优化方法
CN113220235B (zh) * 2021-05-17 2024-02-06 北京青云科技股份有限公司 读写请求的处理方法、装置、设备及存储介质
WO2024037222A1 (zh) * 2022-08-18 2024-02-22 华为云计算技术有限公司 文件系统的管理方法及装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6769048B2 (en) * 2001-12-06 2004-07-27 Sun Microsystems, Inc. Cache synchronization method, system and apparatus for a distributed application and an object located in a client cache
CN100336343C (zh) * 2004-10-10 2007-09-05 中兴通讯股份有限公司 分布式系统中保持多个数据副本一致性的方法
US20140101298A1 (en) * 2012-10-05 2014-04-10 Microsoft Corporation Service level agreements for a configurable distributed storage system
CN103986694B (zh) * 2014-04-23 2017-02-15 清华大学 分布式计算机数据存储系统中多副本一致性的控制方法
US9990372B2 (en) * 2014-09-10 2018-06-05 Panzura, Inc. Managing the level of consistency for a file in a distributed filesystem

Also Published As

Publication number Publication date
CN106375416A (zh) 2017-02-01

Similar Documents

Publication Publication Date Title
CN106375416B (zh) 分布式数据存储系统中一致性动态调整方法及装置
EP3564873B1 (en) System and method of decentralized machine learning using blockchain
US7849223B2 (en) Virtually synchronous Paxos
US10521311B1 (en) Prioritized leadership for data replication groups
CN106462449B (zh) 具有多项目事务支持的多数据库日志
US11269679B2 (en) Resource-governed protocol and runtime for distributed databases with consistency models
US11917005B2 (en) Clustered storage system synchronization
CN112102044B (zh) 一种消息队列处理高并发秒杀商品的方法、系统及装置
CN107832138A (zh) 一种扁平化的高可用namenode模型的实现方法
US7571088B2 (en) Simulation of connected devices
WO2022111188A1 (zh) 事务处理方法、系统、装置、设备、存储介质及程序产品
AU2020200695B2 (en) Low-cost, realistic, performance test bed for an electronic trading venue
CN109739684A (zh) 基于向量时钟的分布式键值数据库的副本修复方法与装置
US20220300323A1 (en) Job Scheduling Method and Job Scheduling Apparatus
Branco et al. Managing very large distributed data sets on a data grid
CN110196680A (zh) 数据处理方法、装置及存储介质
CN109691065A (zh) 分布式存储系统及其数据读写方法、存储终端及存储介质
Islam et al. Transaction management with tree-based consistency in cloud databases
US10348817B2 (en) Optimizing latency and/or bandwidth of large client requests for replicated state machines
Pankowski Consistency and availability of Data in replicated NoSQL databases
CN109582734A (zh) 分布式数据库的一致性解决方法
Lu et al. Adaptive consistency guarantees for large-scale replicated services
CN114124973A (zh) 一种面向多云场景的镜像同步方法和装置
Islam Database consistency in cloud databases
Shen Distributed storage system model design in internet of things based on hash distribution

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220124

Address after: 215488 No. 301, building 11, phase II, Taicang University Science Park, No. 27, Zigang Road, science and education new town, Taicang City, Suzhou City, Jiangsu Province

Patentee after: Tianhang Changying (Jiangsu) Technology Co.,Ltd.

Address before: 100191 g506, new main building of Beijing University of Aeronautics and Astronautics, 37 Xueyuan Road, Haidian District, Beijing

Patentee before: BEIHANG University