CN114816774B - 一种弹性的分布式强一致性方法及系统 - Google Patents

一种弹性的分布式强一致性方法及系统 Download PDF

Info

Publication number
CN114816774B
CN114816774B CN202210761205.6A CN202210761205A CN114816774B CN 114816774 B CN114816774 B CN 114816774B CN 202210761205 A CN202210761205 A CN 202210761205A CN 114816774 B CN114816774 B CN 114816774B
Authority
CN
China
Prior art keywords
nodes
node
secretary
bidding
state
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
CN202210761205.6A
Other languages
English (en)
Other versions
CN114816774A (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.)
Nanchang University
Original Assignee
Nanchang 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 Nanchang University filed Critical Nanchang University
Priority to CN202210761205.6A priority Critical patent/CN114816774B/zh
Publication of CN114816774A publication Critical patent/CN114816774A/zh
Application granted granted Critical
Publication of CN114816774B publication Critical patent/CN114816774B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0645Rental transactions; Leasing transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/08Auctions
    • 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

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Development Economics (AREA)
  • Software Systems (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提供了一种弹性的分布式强一致性方法及系统,该方法应用于一集群中,集群包括若干数据处理节点,数据处理节点包括状态节点和非状态节点,状态节点用于当接收到客服端发送的请求时,分配非状态节点运作,以缓解状态节点的工作负载,完成横向扩展,具体的,获取预设时间内的客服端发送的请求计数,并判断请求计数是否大于预设请求数量,若是,则根据请求计数,租用竞价实例,竞价实例作为非状态节点服务于集群,由于该方法中引入了两种不需要维持状态的节点,这两种状态的节点可以失败、可以不可靠,因为它们的失败不会影响整个系统的正确性,所以可以选择全球地理分布的廉价节点,从而在解决性能瓶颈的同时兼顾了成本。

Description

一种弹性的分布式强一致性方法及系统
技术领域
本发明属于分布式系统的技术领域,具体涉及一种弹性的分布式强一致性方法及系统。
背景技术
随着云时代的来临,大数据也吸引了越来越多的关注,大数据分析常和云计算联系到一起,因为实时的大型数据集分析需要像MapReduce一样的框架来向数十、数百或甚至数千的电脑分配工作。
一般情况下,会采用分布式系统对数据进行处理,其中,分布式系统常使用Raft算法来保证软件/系统组件之间的共识,但随着工作负载上升,必须提高系统的数据处理性能,通常采取的办法为在原Raft算法的基础上垂直扩展,即通过在Leader节点上增加更多的CPU、内存和硬盘等来增强Leader节点的能力,从而容忍更高的工作负载,但该方法的缺点在于无法为一个节点无限制提高性能,或者,采用Multi-Raft算法的方案,该方案将数据拆分给每个Raft服务,Raft相互独立,处理自己的工作。这些Raft的Leader相互通信,从而保持一致性,但是这种使用横向扩展来解决Leader节点瓶颈方法的代价使资源占用翻倍,而且Multi-Raft算法需要稳定的服务器来保证系统的稳定,只能租赁昂贵的按需实例,所以也无法兼顾成本。
可以看出,以上方法无法做到在保证分布式系统平稳运行的情况下兼顾成本,为此,亟需一种方法解决上述问题。
发明内容
基于此,本发明实施例当中提供了一种弹性的分布式强一致性方法及系统,旨在解决现有技术中,使用Raft算法的分布式系统中,无法在解决性能瓶颈的同时兼顾成本的问题。
本发明实施例的第一方面提供了一种弹性的分布式强一致性方法,应用于一集群中,所述集群包括若干数据处理节点,所述数据处理节点包括状态节点和非状态节点,所述方法包括:
获取预设时间内的客服端发送的请求计数;
判断所述请求计数是否大于预设请求计数;
若是,则根据所述请求计数,租用竞价实例,所述竞价实例作为所述非状态节点服务于所述集群,其中,所述状态节点用于当接收到客服端发送的写请求或读请求时,分配所述非状态节点运作,以缓解所述状态节点的工作负载。
进一步的,所述请求计数至少包括读请求计数和写请求计数,所述状态节点包括领导者节点、候选者节点以及追随者节点,所述非状态节点至少包括秘书节点和观察者节点。
进一步的,所述领导者节点用于接收和处理客服端发送的所述写请求,所述领导者节点用于接收和处理客服端发送的所述写请求,所述秘书节点用于分担所述领导者节点的所述写请求,所述追随者节点用于接收和处理客服端发送的所述读请求,以及所述秘书节点发送的所述写请求,所述观察者节点用于分担所述追随者节点发送的所述写请求和所述读请求。
进一步的,所述根据所述请求计数,租用竞价实例的步骤之后包括:
通过所述追随者节点,获取对应的第一领导者节点的心跳,并判断在预设时间内,所述心跳是否终止;
若是,将所述追随者节点转变为所述候选者节点,并发起选举;
获取选票数量,判断所述选票数量是否大于预设选票数量;
若是,则将所述候选者节点转变为第二领导者节点,并租赁对应的所述秘书节点。
进一步的,所述将所述候选者节点转变为第二领导者节点,并租赁对应的所述秘书节点的步骤之后包括:
将所述第一领导者节点转变为所述追随者节点,并解雇所述第一领导者节点对应的所有所述秘书节点。
进一步的,根据所述请求计数,租用竞价实例的步骤之后还包括:
根据所述读请求,所述观察者节点向所述领导者节点请求目标读索引号,所述目标读索引号用于当状态机执行到所述目标读索引号处,所述观察者节点会向所述客服端反馈。
进一步的,所述非状态节点还包括全球秘书节点,所述全球秘书节点用于当所述第一领导者节点被所述第二领导者节点替换后,告知所述第一领导者节点已被取代。
进一步的,所述根据所述请求计数,租用竞价实例的步骤包括:
获取数据中心总数量、各数据中心的第一追随者节点数量以及单个秘书节点可以管理的第二追随者节点数量,并根据所述数据中心总数量、所述第一追随者节点数量以及所述第二追随者节点数量,计算出需要分担所述领导者节点负载的秘书节点数量;
根据所述秘书节点数量和预设秘书节点数量,计算出目标秘书节点数量;
根据所述写请求计数,计算出写入率,并判断所述写入率是否小于等于写入率阈值;
若是,则根据所述读请求计数,计算出读取率,并判断所述读取率是否大于预设读取率;
若是,则将所述数据中心总数量赋值给第一新增观察者节点数量,并获取可用预算和竞价实例单价;
根据所述可用预算、所述竞价实例单价以及所述第一新增观察者节点数量,计算出目标新增观察者节点数量;
花费所述可用预算租用所述目标新增观察者节点数量的观察者节点,并获取第一剩余可用预算;
根据所述第一剩余可用预算、所述竞价实例单价以及所述目标秘书节点数量,确定目标新增秘书节点数量;
根据所述目标新增秘书节点数量和所述目标新增观察者节点数量,计算出所述竞价实例的数量。
进一步的,所述根据所述请求计数,租用竞价实例的步骤还包括:
获取竞价实例信息,所述竞价实例信息至少包括CPU容量数据、可用内存数据、平均价格数据以及竞价撤销概率;
根据所述竞价实例信息,计算竞价实例得分,所述竞价实例得分用于筛选出划算的竞价实例,其中,计算公式为:
Figure 673021DEST_PATH_IMAGE001
c表示为CPU容量,φ表示为可用内存,
Figure 331535DEST_PATH_IMAGE002
表示为平均价格,
Figure 450932DEST_PATH_IMAGE003
表示为竞价撤销概率,
Figure 220305DEST_PATH_IMAGE004
表示为所述CPU容量的权重系数,
Figure 787553DEST_PATH_IMAGE005
表示为所述可用内存的权重系数,
Figure 616968DEST_PATH_IMAGE006
表示为所述平均价格的权重系数。
本发明实施例的第二方面提供了一种弹性的分布式强一致性系统,应用于一集群中,所述集群包括若干数据处理节点,所述数据处理节点包括状态节点和非状态节点,所述系统包括:
获取模块,用于获取预设时间内的客服端发送的请求计数;
第一判断模块,用于判断所述请求计数是否大于预设请求计数;
租用模块,用于当判断所述请求计数大于预设请求计数时,则根据所述请求计数,租用竞价实例,所述竞价实例作为所述非状态节点服务于所述集群,其中,所述状态节点用于当接收到客服端发送的写请求或读请求时,分配所述非状态节点运作,以缓解所述状态节点的工作负载。
本发明的有益效果为:该方法应用于一集群中,集群包括若干数据处理节点,数据处理节点包括状态节点和非状态节点,状态节点用于当接收到客服端发送的请求时,分配非状态节点运作,以缓解状态节点的工作负载,完成横向扩展,具体的,获取预设时间内的客服端发送的请求计数,并判断请求计数是否大于预设请求数量,若是,则根据请求计数,租用竞价实例,竞价实例作为非状态节点服务于集群,由于该方法中引入了两种不需要维持状态的节点,这两种状态的节点可以失败、可以不可靠,因为它们的失败不会影响整个系统的正确性,所以可以选择全球地理分布的廉价节点,从而在解决性能瓶颈的同时兼顾了成本。
附图说明
图1是本发明第一实施例提供的一种弹性的分布式强一致性方法的实现流程图;
图2是本发明第三实施例提供的一种弹性的分布式强一致性系统的结构示意图。
以下具体实施方式将结合上述附图进一步说明。
具体实施方式
为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的若干实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容更加透彻全面。
需要说明的是,当元件被称为“固设于”另一个元件,它可以直接在另一个元件上或者也可以存在居中的元件。当一个元件被认为是“连接”另一个元件,它可以是直接连接到另一个元件或者可能同时存在居中元件。本文所使用的术语“垂直的”、“水平的”、“左”、“右”以及类似的表述只是为了说明的目的。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
强一致性(Strong Consistency):系统中的某个数据被成功更新后,后续任何对该数据的读取操作都将得到更新后的值。举例来说,一个集群需要对外部提供强一致性,所以只要集群内部某一台服务器的数据发生了改变,那么就需要等待集群内其他服务器的数据同步完成后,才能正常的对外提供服务。需要满足两个要求:1.任何一次读都能读到某个数据的最近一次写的数据;2.系统中的所有进程,看到的操作顺序,都和全局时钟下的顺序一致。
可扩展的(Scalable):scale out,横向扩展,主要是在集群系统中。指由多个节点组成的系统,这种系统的扩展方式主要以水平扩展方式(指增加节点的方式)来进行。scaleup,垂直扩展,称为单节点系统,指系统中只包括一个有效节点。这种架构的系统只具有垂直扩展的能力,当需要扩展系统时,通过在节点上增加更多的CPU、内存和硬盘来扩大系统的能力。
地理多样性(Geo-diverse):在本发明中,这个词主要指云计算站点呈全球地理分布,也就是说一个分布式系统的各个站点可能分布在全球各个地方。
竞价实例(Spot instance):竞价实例(抢占式实例),竞价实例是云中的闲置计算能力,它是云供应商出售其计算能力的一种方式之一。
为了对本发明提出的弹性的分布式强一致性方法的逻辑进行验证,采用TLA+形式化规范语言对该方法进行建模和验证,验证结果合格,具体的,通过代码逻辑,建立系统中每个角色的行为,例如:
Candidate角色会发起以下行为:
1.RequestVote:发起一次选举;
2.BecomeLeader:收到大多数 follower 的投票后,成为 leader
Follower 角色会有以下行为:
1. IncreaseHighestBallot:在集群初始化时,follower 会自增选票号,并成为candidate;
2. RequestVoteResponse:回复 candidate 的投票请求;
3. AcceptEntries:回复 leader 的日志同步请求;
Leader 角色会有以下行为:
1. ProposeEntries:向 followers\observers 发送日志同步请求;
Secretary 角色会有以下行为:
1. ProposeEntries:分担 leader 的日志同步工作;
Observer 角色会有以下行为:
1. LearnAccept:找到最新的提交索引号,也即最新读取索引号readIndex;
规范中的其他信息:
Next:规范的下一步行为,不断遍历这些角色行为的可达状态。
Inv:规范的不变量,不违反不变量即可保证正确性。
Init:变量的初始状态。
TypeOK:变量的正确类型。
通过上述建立的角色的行为,验证该行为是否会导致错误发生,错误一旦发生,则说明违背了Raft算法规则,即存在算法逻辑问题。
实施例一
请参阅图1,图1示出了本发明第一实施例提供的一种弹性的分布式强一致性方法的实现流程图,其中,所述方法应用于一集群中,集群包括若干数据处理节点,数据处理节点包括状态节点和非状态节点,具体的,集群中的请求至少包括读请求和写请求,状态节点包括领导者节点、候选者节点以及追随者节点,非状态节点至少包括秘书节点和观察者节点,需要说明的是,领导者节点用于接收和处理客服端发送的写请求,秘书节点用于分担领导者节点的写请求,追随者节点用于接收和处理客服端发送的读请求,以及秘书节点发送的写请求,观察者节点用于分担追随者节点发送的写请求或读请求。
在本实施例当中,所述方法具体包括步骤S01至步骤S03。
步骤S01,获取预设时间内的客服端发送的请求计数。
可以理解的,请求计数包括读请求计数和写请求计数,只有当预设时间内的请求计数大于预设请求计数时,即服务负载超过默认容量时,才会开始扩展。
步骤S02,判断所述请求计数是否大于预设请求计数,若是,则执行步骤S03。
其中,集群中的各状态节点都具有一定的负载能力,负载能力可以从处理请求计数中体现,且取决于各状态节点的硬件配置,若各状态节点的硬件配置都相同,那么,各状态节点处理的请求计数也相同,具体的,预设请求计数为整个集群中所有状态节点处理的请求计数的总和,当请求计数大于预设请求计数时,说明集群处理读请求和写请求的能力已不足,需要横向扩展。
步骤S03,则根据所述请求计数,租用竞价实例,所述竞价实例作为所述非状态节点服务于所述集群,其中,所述状态节点用于当接收到客服端发送的写请求或读请求时,分配所述非状态节点运作,以缓解所述状态节点的工作负载。
具体的,在租用竞价实例之前,集群中只含有状态节点,可以理解的,非状态节点中,秘书节点的数量和观察者节点的数量均为0,为了确定系统中需要租用的竞价实例的数量,首先,获取数据中心总数量、各数据中心的第一追随者节点数量以及单个秘书节点可以管理的第二追随者节点数量,并根据数据中心总数量、第一追随者节点数量以及第二追随者节点数量,计算出需要分担领导者节点负载的秘书节点数量,计算公式为:
Figure 207350DEST_PATH_IMAGE007
其中,Fi表示为第i个数据中心的第一追随者节点数量,f表示为单个秘书节点可以管理的第二追随者节点数量,m表示为数据中心总数量,
Figure 842730DEST_PATH_IMAGE008
表示为需要分担领导者节点负载的秘书节点数量。
根据秘书节点数量和预设秘书节点数量,计算出目标新增秘书节点数量,计算公式为:
Figure 451435DEST_PATH_IMAGE009
其中,ks表示为集群中秘书节点总数,随着集群中写请求需求的多少而变化,初始状态下,ks为0,
Figure 451752DEST_PATH_IMAGE010
表示为目标新增秘书节点数量。
根据写请求计数,计算出写入率,具体的,写入率的计算公式为
Figure 529429DEST_PATH_IMAGE011
,其中,
Figure 968501DEST_PATH_IMAGE012
表示为当前写请求计数,NW表示为历史写请求计数,再判断写入率是否小于等于写入率阈值,在本实施例当中,写入率阈值为30%,该写入率阈值可根据用户需求进行自定义,
当判断当前写入率小于等于写入率阈值时,代表优先考虑观察者节点的数量,若优先考虑观察者节点的数量,则需要先计算出读请求增长率,因为观察者节点只用于处理读请求,观察者节点的数量与读请求数量紧密相关,反之则优先考虑秘书节点的数量。
具体的,则根据读请求计数,计算出读取率,需要说明的是,读取率的计算公式为:
Figure 182445DEST_PATH_IMAGE013
其中,
Figure 369975DEST_PATH_IMAGE014
表示为读取率,
Figure 731686DEST_PATH_IMAGE015
表示为当前读请求计数,Nr表示为历史读请求计数,计算出读取率后,再判断读取率是否大于预设读取率,
考虑到真实环境中系统的波动,在本实施例当中,预设读取率为10%,当读取率大于预设读取率时,则说明需要更多的观察者节点处理增长的读请求,当读取率小于等于预设读取率时,则说明无需选择新的观察者节点或撤回旧的观察者节点,以避免频繁调度资源的额外开销,需要说明的是,基础上要为每个数据中心至少提供一个观察者节点。
进一步的,当读取率大于预设读取率时,则将数据中心总数量赋值给第一新增观察者节点数量,并获取可用预算和竞价实例单价,并根据可用预算、竞价实例单价以及第一新增观察者节点数量,计算出目标新增观察者节点数量,计算公式为
Figure 646552DEST_PATH_IMAGE016
,其中,
Figure 777319DEST_PATH_IMAGE017
表示为第一新增观察者节点数量,ρ表示为竞价实例单价,
Figure 119439DEST_PATH_IMAGE018
表示为可用预算。
需要说明的是,在计算出目标新增观察者节点数量后,花费可用预算租用目标新增观察者节点数量的观察者节点,并获取第一剩余可用预算,根据第一剩余可用预算、竞价实例单价以及目标秘书节点数量,确定目标新增秘书节点数量,具体的,将第一剩余可用预算除以竞价实例单价,得到第一秘书节点数量,再将第一秘书节点数量与目标秘书节点数量进行比较,取它们间的最小值作为目标新增秘书节点数量,最后,通过将该目标新增秘书节点数量和目标新增观察者节点数量相加,计算出竞价实例的数量,并进行租用,在租用对应数量的竞价实例后,可用预算也在减少,即用于以后的资源租用或购买,且是保持更新的状态。
另外,当判断读取率小于第一预设读取率时,在本实施例当中,第一预设读取率为-10%,即当前读请求计数小于历史读请求计数,说明读请求计数正在减少,而用原本数量的观测者节点来处理读请求不再合算,需要撤回一些观测者节点,此时,最多撤回观测者节点的个数应与数据中心总数量相同。
更进一步的,已知新增竞价实例数量,则可计算服务器资源管理总费用,具体的,计算公式为:
Figure 171709DEST_PATH_IMAGE019
其中,β表示为按需实例单价,Fi表示为第i个数据中心中的追随者节点数量,ρ表示为竞价实例单价,ks表示为集群中秘书节点总数,ko表示为集群中观察者节点总数,C表示为集群中所有实例相关的网络费用的线性函数,m表示为数据中心总数。
在本实施例当中,当确定了新增竞价实例数量后,需要在竞价实例池中选择最划算的竞价实例,具体的,首先获取竞价实例信息,竞价实例信息至少包括CPU容量数据、可用内存数据、平均价格数据以及竞价撤销概率,根据竞价实例信息,计算竞价实例得分,竞价实例得分用于筛选出划算的竞价实例,其中,计算公式为:
Figure 687004DEST_PATH_IMAGE001
c表示为CPU容量,φ表示为可用内存,
Figure 124807DEST_PATH_IMAGE002
表示为平均价格,
Figure 700145DEST_PATH_IMAGE003
表示为竞价撤销概率,
Figure 239711DEST_PATH_IMAGE004
表示为CPU容量的权重系数,
Figure 496380DEST_PATH_IMAGE005
表示为可用内存的权重系数,
Figure 601739DEST_PATH_IMAGE006
表示为平均价格的权重系数。
可以理解的,当确定新增竞价实例数量为k时,即所需选择竞价实例的数量为k,则从竞价实例池中的n个竞价实例中,根据竞价实例得分,选出top-k的竞价实例,并进行选择,在本实施例当中,采用MCSA(Multiple-Choice Secretary Algorithm)算法选出top-k的竞价实例。
需要说明的是,租用竞价实例后,竞价实例作为非状态节点服务于集群,即在集群中至少包括领导者节点、候选者节点、追随者节点、秘书节点以及观察者节点,具体的,整个集群系统中,各节点的运作方式可以包括,追随者节点和观察者节点通过感知领导者节点的心跳来保证它们可以安全地在各自的状态机上执行命令,其中,通过追随者节点,获取对应的第一领导者节点的心跳,并判断在预设时间内,心跳是否终止,若是,将追随者节点转变为候选者节点,并发起选举,即希望成为新的领导者节点,此时集群中的追随者节点会进行投票,若否,则说明领导者节点正在正常运作,当判断选票数量大于预设选票数量时,则将候选者节点转变为第二领导者节点,并租赁对应的秘书节点。
在本实施例当中,预设投票数量为集群中追随者节点数量的一半,具体的,第一领导者节点由于失效,将解雇第一领导者原先雇佣的所有秘书节点,同时,第一领导者节点转换为追随者节点,继续在集群中作为追随者节点进行工作,另外,若存在领导者节点没有可支配的秘书节点,那么,领导者节点会自动将日志复制给追随者节点。
具体的,秘书节点在做完日志复制操作后,会向领导者节点报告同意接收日志的追随者节点的数量,并且领导者节点会根据同意的追随者节点数量来决定是否提交该日志,如果提交,领导者节点会将该日志对应的操作结果反馈给客户端。需要说明的是,追随者节点和观察者节点通过感知领导者节点的心跳来保证它们可以安全地在各自的状态机上执行命令,在其它一些实施例当中,非状态节点还包括全球秘书节点,可以选择一个全球秘书节点来分担领导者节点发送心跳维持领导权的工作负载。
在本实施例当中,追随者节点可以选择便宜的本地竞价实例作为观察者节点,当追随者节点在收到写请求后,会将该请求转发给观察者节点,当追随者节点在收到读请求后,会把这个工作任务分配给观察者节点完成,如果没有可用的观察者节点,那么,追随者节点将自己处理。
其中,当观察者节点收到读请求,那么观察者节点会向领导者节点请求目标读索引号,当状态机执行到目标索引号处,观察者节点会向客户端反馈,但是,如果没有额外的措施,读索引号的操作将面临返回陈旧数据的风险,因为响应请求的领导者节点可能已被它不知道的新领导者节点取代,具体的,可以雇佣一个全球秘书节点,用于当第一领导者节点被第二领导者节点替换后,告知第一领导者节点已被取代。
综上,本发明上述实施例当中的弹性的分布式强一致性方法,该方法应用于一集群中,集群包括若干数据处理节点,数据处理节点包括状态节点和非状态节点,状态节点用于当接收到客服端发送的请求时,分配非状态节点运作,以缓解状态节点的工作负载,完成横向扩展,具体的,获取预设时间内的客服端发送的请求计数,并判断请求计数是否大于预设请求数量,若是,则根据请求计数,租用竞价实例,竞价实例作为非状态节点服务于集群,由于该方法中引入了两种不需要维持状态的节点,这两种状态的节点可以失败、可以不可靠,因为它们的失败不会影响整个系统的正确性,所以可以选择全球地理分布的廉价节点,从而在解决性能瓶颈的同时兼顾了成本。
实施例二
本发明第二实施例提供的一种弹性的分布式强一致性方法,所述方法具体包括步骤S11至步骤S13。
步骤S11,获取预设时间内的客服端发送的请求计数。
步骤S12,判断所述请求计数是否大于预设请求计数,若是,则执行步骤S13。
步骤S13,则根据所述请求计数,租用竞价实例,所述竞价实例作为所述非状态节点服务于所述集群,其中,所述状态节点用于当接收到客服端发送的写请求或读请求时,分配所述非状态节点运作,以缓解所述状态节点的工作负载。
需要说明的是,为了确定系统中需要租用的竞价实例的数量,首先,获取数据中心总数量、各数据中心的第一追随者节点数量以及单个秘书节点可以管理的第二追随者节点数量,并根据数据中心总数量、第一追随者节点数量以及第二追随者节点数量,计算出需要分担领导者节点负载的秘书节点数量,根据秘书节点数量和预设秘书节点数量,计算出目标秘书节点数量,随后获取当前写入率和写入率阈值,当判断当前写入率大于写入率阈值时,代表优先考虑秘书节点的数量。
具体的,获取可用预算和竞价实例单价,并根据可用预算和竞价实例单价,计算出第一可租用竞价实例数量,可以理解的,用可用预算除以竞价实例单价,即可得到第一可租用竞价实例数量,再根据第一可租用竞价实例数量和目标秘书节点数量,输出第一可租用竞价实例数量和目标秘书节点数量之间的第一最小数量,并将第一最小数量定义为新增秘书节点数量。
进一步的,根据可用预算、新增秘书节点数量以及竞价实例单价,计算得到第二剩余可用预算,可以理解的,将可用预算减去新增秘书节点数量与竞价实例单价的积,即可得到第二剩余可用预算,再根据第二剩余可用预算以及竞价实例单价,计算得到第二可租用竞价实例数量,可以理解的,将第二剩余可用预算除以竞价实例单价,即可得到第二可租用竞价实例数量,根据第二可租用竞价实例数量和数据中心总数量,输出第二可租用竞价实例数量和数据中心总数量之间的第二最小数量,并将第二最小数量定义为新增观察者节点数量,最后将新增秘书节点数量和新增观察者节点数量求和,即可获取新增竞价实例数量,当确定新增竞价实例数量后,再在竞价实例池中选择最划算的竞价实例。
实施例三
请参阅图2,为本发明实施例另一方面提供了一种弹性的分布式强一致性系统的结构示意图,应用于一集群中,所述集群包括若干数据处理节点,所述数据处理节点包括状态节点和非状态节点,其中,请求至少包括读请求和写请求,对应的请求计数至少包括读请求计数和写请求计数,所述状态节点包括领导者节点、候选者节点以及追随者节点,所述非状态节点至少包括秘书节点和观察者节点,所述领导者节点用于接收和处理客服端发送的所述写请求,所述秘书节点用于分担所述领导者节点的所述写请求,所述追随者节点用于接收和处理客服端发送的所述读请求,以及所述秘书节点发送的所述写请求,所述观察者节点用于分担所述追随者节点发送的所述写请求和所述读请求,所述非状态节点还包括全球秘书节点,所述全球秘书节点用于当所述第一领导者节点被所述第二领导者节点替换后,告知所述第一领导者节点已被取代,所述弹性的分布式强一致性系统300包括:
获取模块31,用于获取预设时间内的客服端发送的请求计数;
第一判断模块32,用于判断所述请求计数是否大于预设请求计数;
租用模块33,用于当判断所述请求计数大于预设请求计数时,则根据所述请求计数,租用竞价实例,所述竞价实例作为所述非状态节点服务于所述集群,其中,所述状态节点用于当接收到客服端发送的写请求或读请求时,分配所述非状态节点运作,以缓解所述状态节点的工作负载。
进一步的,所述弹性的分布式强一致性系统300还包括:
心跳判断单元,用于通过所述追随者节点,获取对应的第一领导者节点的心跳,并判断在预设时间内,所述心跳是否终止;
第一转变单元,用于当判断在预设时间内,所述心跳终止时,将所述追随者节点转变为所述候选者节点,并发起选举;
第一判断单元,用于获取选票数量,判断所述选票数量是否大于预设选票数量;
第二转变单元,用于当判断所述选票数量大于预设选票数量时,则将所述候选者节点转变为第二领导者节点,并租赁对应的所述秘书节点。
进一步的,所述第二转变单元包括:
解雇子单元,用于将所述第一领导者节点转变为所述追随者节点,并解雇所述第一领导者节点对应的所有所述秘书节点。
进一步的,所述弹性的分布式强一致性系统300还包括:
请求模块,用于根据所述读请求,所述观察者节点向所述领导者节点请求目标读索引号,所述目标读索引号用于当状态机执行到所述目标读索引号处,所述观察者节点会向所述客服端反馈。
进一步的,所述租用模块33包括:
第一获取单元,用于获取数据中心总数量、各数据中心的第一追随者节点数量以及单个秘书节点可以管理的第二追随者节点数量,并根据所述数据中心总数量、所述第一追随者节点数量以及所述第二追随者节点数量,计算出需要分担所述领导者节点负载的秘书节点数量;
第一计算单元,用于根据所述秘书节点数量和预设秘书节点数量,计算出目标秘书节点数量;
第二判断单元,用于根据所述写请求计数,计算出写入率,并判断所述写入率是否小于等于写入率阈值;
第三判断单元,用于当判断所述写入率小于等于写入率阈值时,则根据所述读请求计数,计算出读取率,并判断所述读取率是否大于预设读取率;
赋值单元,用于当判断所述读取率大于预设读取率时,则将所述数据中心总数量赋值给第一新增观察者节点数量,并获取可用预算和竞价实例单价;
第二计算单元,用于根据所述可用预算、所述竞价实例单价以及所述第一新增观察者节点数量,计算出目标新增观察者节点数量;
第二获取单元,用于花费所述可用预算租用所述目标新增观察者节点数量的观察者节点,并获取第一剩余可用预算;
第三计算单元,用于根据所述第一剩余可用预算、所述竞价实例单价以及所述目标秘书节点数量,确定目标新增秘书节点数量;
第四计算单元,用于根据所述目标新增秘书节点数量和所述目标新增观察者节点数量,计算出所述竞价实例的数量。
进一步的,所述租用模块33还包括:
第三获取单元,用于获取竞价实例信息,所述竞价实例信息至少包括CPU容量数据、可用内存数据、平均价格数据以及竞价撤销概率;
第五计算单元,用于根据所述竞价实例信息,计算竞价实例得分,所述竞价实例得分用于筛选出划算的竞价实例,其中,计算公式为:
Figure 551240DEST_PATH_IMAGE001
c表示为CPU容量,φ表示为可用内存,
Figure 797676DEST_PATH_IMAGE002
表示为平均价格,
Figure 920353DEST_PATH_IMAGE003
表示为竞价撤销概率,
Figure 83481DEST_PATH_IMAGE004
表示为所述CPU容量的权重系数,
Figure 938305DEST_PATH_IMAGE005
表示为所述可用内存的权重系数,
Figure 249200DEST_PATH_IMAGE006
表示为所述平均价格的权重系数。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。

Claims (7)

1.一种弹性的分布式强一致性方法,其特征在于,应用于一集群中,所述集群包括若干数据处理节点,所述数据处理节点包括状态节点和非状态节点,所述状态节点包括领导者节点、候选者节点以及追随者节点,所述非状态节点至少包括秘书节点和观察者节点,所述领导者节点用于接收和处理客服端发送的写请求,所述秘书节点用于分担所述领导者节点的所述写请求,所述追随者节点用于接收和处理客服端发送的读请求,以及所述秘书节点发送的所述写请求,所述观察者节点用于分担所述追随者节点发送的所述写请求和所述读请求,所述方法包括:
获取预设时间内的客服端发送的请求计数,所述请求计数至少包括读请求计数和写请求计数;
判断所述请求计数是否大于预设请求计数;
若是,则根据所述请求计数,租用竞价实例,所述竞价实例作为所述非状态节点服务于所述集群,其中,所述状态节点用于当接收到客服端发送的所述写请求或所述读请求时,分配所述非状态节点运作,以缓解所述状态节点的工作负载;
所述根据所述请求计数,租用竞价实例的步骤包括:获取数据中心总数量、各数据中心的第一追随者节点数量以及单个秘书节点可以管理的第二追随者节点数量,并根据所述数据中心总数量、所述第一追随者节点数量以及所述第二追随者节点数量,计算出需要分担所述领导者节点负载的秘书节点数量;
根据所述秘书节点数量和预设秘书节点数量,计算出目标秘书节点数量;
根据所述写请求计数,计算出写入率,并判断所述写入率是否小于等于写入率阈值;
若是,则根据所述读请求计数,计算出读取率,并判断所述读取率是否大于预设读取率;
若是,则将所述数据中心总数量赋值给第一新增观察者节点数量,并获取可用预算和竞价实例单价;
根据所述可用预算、所述竞价实例单价以及所述第一新增观察者节点数量,计算出目标新增观察者节点数量;
花费所述可用预算租用所述目标新增观察者节点数量的观察者节点,并获取第一剩余可用预算;
根据所述第一剩余可用预算、所述竞价实例单价以及所述目标秘书节点数量,确定目标新增秘书节点数量;
根据所述目标新增秘书节点数量和所述目标新增观察者节点数量,计算出所述竞价实例的数量。
2.根据权利要求1所述的弹性的分布式强一致性方法,其特征在于,所述根据所述请求计数,租用竞价实例的步骤之后包括:
通过所述追随者节点,获取对应的第一领导者节点的心跳,并判断在预设时间内,所述心跳是否终止;
若是,将所述追随者节点转变为所述候选者节点,并发起选举;
获取选票数量,判断所述选票数量是否大于预设选票数量;
若是,则将所述候选者节点转变为第二领导者节点,并租赁对应的所述秘书节点。
3.根据权利要求2所述的弹性的分布式强一致性方法,其特征在于,所述将所述候选者节点转变为第二领导者节点,并租赁对应的所述秘书节点的步骤之后包括:
将所述第一领导者节点转变为所述追随者节点,并解雇所述第一领导者节点对应的所有秘书节点。
4.根据权利要求3所述的弹性的分布式强一致性方法,其特征在于,所述根据所述请求计数,租用竞价实例的步骤之后还包括:
根据所述读请求,所述观察者节点向所述领导者节点请求目标读索引号,所述目标读索引号用于当状态机执行到所述目标读索引号处,所述观察者节点会向所述客服端反馈。
5.根据权利要求4所述的弹性的分布式强一致性方法,其特征在于,所述非状态节点还包括全球秘书节点,所述全球秘书节点用于当所述第一领导者节点被所述第二领导者节点替换后,告知所述第一领导者节点已被取代。
6.根据权利要求5所述的弹性的分布式强一致性方法,其特征在于,所述根据所述请求计数,租用竞价实例的步骤还包括:
获取竞价实例信息,所述竞价实例信息至少包括CPU容量数据、可用内存数据、平均价格数据以及竞价撤销概率;
根据所述竞价实例信息,计算竞价实例得分,所述竞价实例得分用于筛选出划算的竞价实例,其中,计算公式为:
Figure 289944DEST_PATH_IMAGE001
c表示为CPU容量,φ表示为可用内存,
Figure 697792DEST_PATH_IMAGE002
表示为平均价格,
Figure 989096DEST_PATH_IMAGE003
表示为竞价撤销概率,
Figure 600337DEST_PATH_IMAGE004
表示为所述CPU容量的权重系数,
Figure 64816DEST_PATH_IMAGE005
表示为所述可用内存的权重系数,
Figure 202536DEST_PATH_IMAGE006
表示为所述平均价格的权重系数。
7.一种弹性的分布式强一致性系统,其特征在于,应用于一集群中,所述集群包括若干数据处理节点,所述数据处理节点包括状态节点和非状态节点,所述状态节点包括领导者节点、候选者节点以及追随者节点,所述非状态节点至少包括秘书节点和观察者节点,所述领导者节点用于接收和处理客服端发送的写请求,所述秘书节点用于分担所述领导者节点的所述写请求,所述追随者节点用于接收和处理客服端发送的读请求,以及所述秘书节点发送的所述写请求,所述观察者节点用于分担所述追随者节点发送的所述写请求和所述读请求,所述系统包括:
获取模块,用于获取预设时间内的客服端发送的请求计数,所述请求计数至少包括读请求计数和写请求计数;
第一判断模块,用于判断所述请求计数是否大于预设请求计数;
租用模块,用于当判断所述请求计数大于预设请求计数时,则根据所述请求计数,租用竞价实例,所述竞价实例作为所述非状态节点服务于所述集群,其中,所述状态节点用于当接收到客服端发送的所述写请求或所述读请求时,分配所述非状态节点运作,以缓解所述状态节点的工作负载;
所述租用模块包括:
第一获取单元,用于获取数据中心总数量、各数据中心的第一追随者节点数量以及单个秘书节点可以管理的第二追随者节点数量,并根据所述数据中心总数量、所述第一追随者节点数量以及所述第二追随者节点数量,计算出需要分担所述领导者节点负载的秘书节点数量;
第一计算单元,用于根据所述秘书节点数量和预设秘书节点数量,计算出目标秘书节点数量;
第二判断单元,用于根据所述写请求计数,计算出写入率,并判断所述写入率是否小于等于写入率阈值;
第三判断单元,用于当判断所述写入率小于等于写入率阈值时,则根据所述读请求计数,计算出读取率,并判断所述读取率是否大于预设读取率;
赋值单元,用于当判断所述读取率大于预设读取率时,则将所述数据中心总数量赋值给第一新增观察者节点数量,并获取可用预算和竞价实例单价;
第二计算单元,用于根据所述可用预算、所述竞价实例单价以及所述第一新增观察者节点数量,计算出目标新增观察者节点数量;
第二获取单元,用于花费所述可用预算租用所述目标新增观察者节点数量的观察者节点,并获取第一剩余可用预算;
第三计算单元,用于根据所述第一剩余可用预算、所述竞价实例单价以及所述目标秘书节点数量,确定目标新增秘书节点数量;
第四计算单元,用于根据所述目标新增秘书节点数量和所述目标新增观察者节点数量,计算出所述竞价实例的数量。
CN202210761205.6A 2022-06-30 2022-06-30 一种弹性的分布式强一致性方法及系统 Active CN114816774B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210761205.6A CN114816774B (zh) 2022-06-30 2022-06-30 一种弹性的分布式强一致性方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210761205.6A CN114816774B (zh) 2022-06-30 2022-06-30 一种弹性的分布式强一致性方法及系统

Publications (2)

Publication Number Publication Date
CN114816774A CN114816774A (zh) 2022-07-29
CN114816774B true CN114816774B (zh) 2022-09-27

Family

ID=82523180

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210761205.6A Active CN114816774B (zh) 2022-06-30 2022-06-30 一种弹性的分布式强一致性方法及系统

Country Status (1)

Country Link
CN (1) CN114816774B (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2457140A4 (en) * 2009-07-20 2017-08-23 Caringo, Inc. Adaptive power conservation in storage clusters
US20120310860A1 (en) * 2011-06-06 2012-12-06 Alcatel-Lucent Cloud-Based Demand Response
US8676621B1 (en) * 2011-09-28 2014-03-18 Amazon Technologies, Inc. System and method for managing requests for pooled resources during non-contention
KR101171717B1 (ko) * 2011-12-28 2012-09-13 (주)네오위즈게임즈 온라인 게임의 아이템 경매장용 자동 프로그램 방지 방법 및 서버
CN111309483A (zh) * 2020-02-24 2020-06-19 广州虎牙科技有限公司 一种服务器集群的管理方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN114816774A (zh) 2022-07-29

Similar Documents

Publication Publication Date Title
US11516072B2 (en) Hybrid cluster recovery techniques
US9413604B2 (en) Instance host configuration
US7937437B2 (en) Method and apparatus for processing a request using proxy servers
EP2810164B1 (en) Managing partitions in a scalable environment
US8055735B2 (en) Method and system for forming a cluster of networked nodes
US8671134B2 (en) Method and system for data distribution in high performance computing cluster
US10496768B2 (en) Simulating a production environment using distributed computing technologies
EP2948865B1 (en) Instance host configuration
US8966025B2 (en) Instance configuration on remote platforms
US20080030764A1 (en) Server parallel aggregation
US20080077667A1 (en) Method for adaptive group scheduling using mobile agents in peer-to-peer grid computing environment
US9535754B1 (en) Dynamic provisioning of computing resources
CN112261135A (zh) 基于一致性协议的节点选举方法、系统、装置及设备
US6963828B1 (en) Metafarm sizer configuration optimization method for thin client sizing tool
CN110096336A (zh) 数据监控方法、装置、设备和介质
US10154091B1 (en) Deploying infrastructure units according to resource hosting constraints
JP5007239B2 (ja) 分散取引照合サービス
US11461156B2 (en) Block-storage service supporting multi-attach and health check failover mechanism
CN114816774B (zh) 一种弹性的分布式强一致性方法及系统
Al-Mistarihi et al. On fairness, optimizing replica selection in data grids
CN111506400A (zh) 计算资源分配系统、方法、装置和计算机设备
CN116974983A (zh) 数据处理方法、装置、计算机可读介质及电子设备
CN110022348B (zh) 用于动态备份会话的系统和方法
Junqueira et al. The virtue of dependent failures in multi-site systems
US7062426B1 (en) Method for calculating memory requirements for thin client sizing tool

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
GR01 Patent grant
GR01 Patent grant