0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何在整体系统性能和系统连续性之间取得平衡

电子设计 来源:电子设计 作者:电子设计 2020-12-24 18:29 次阅读

作者: Unmesh Joshi

译者: java达人

通过要求法定多数做出每个决策,以避免两组服务器独自决策。

问题

在分布式系统中,每当服务器执行操作时,都需要确保在发生崩溃的情况下,客户端可以使用这些操作的结果。这可以通过将结果复制到集群中的其他服务器来实现。但是,这引出了一个问题:需要多少其他服务器确认复制,原服务器的更新才会被认可。如果原始服务器等待太多复制,则它将响应缓慢-活跃性减少。但是,如果没有足够的复制,则更新可能会丢失-失去安全性。在整体系统性能和系统连续性之间取得平衡是至关重要的。

解决方案

当集群中的大多数节点已确认更新时,集群同意已收到更新。我们称这个数字为quorum法定数。因此,如果我们有五个节点的集群,则需要quorum 3。(对于n个节点的集群,quorum 为n / 2 +1。)quorum 表明可以容忍多少个故障-即集群的大小减去quorum。五个节点的集群可以容忍其中两个故障。通常,如果我们要容忍“f”个故障,则需要一个2f +1的集群大小

考虑以下两个需要quorum的示例:

? 更新服务器集群中的数据。High-Water Mark用于确保只有保证在大多数服务器上可用的数据才对客户端可见。? 领导者选举。在“领导者和追随者”模式中,仅当领导者从大多数服务器中获得选票时才被选择。

确定集群中的服务器数量

仅当大多数服务器都已启动并正在运行时,集群才能运行。在进行数据复制的系统中,需要考虑两件事:

?写操作的吞吐量。每次将数据写入集群时,都需要将其复制到多个服务器。每个附加的服务器都会增加一些开销,以完成此写操作。数据写入的等待时间与构成quorum的服务器数量成正比。正如我们将在下面看到的,将集群中的服务器数量加倍会使吞吐量降低到原始集群值的一半。

? 需要容忍的故障数量。允许的服务器故障数取决于集群的大小。但是,仅将一台服务器添加到现有集群并不总是能提供更多的容错能力:将一台服务器添加到三台服务器集群并不能提高容错能力。

考虑到这两个因素,大多数实际的基于quorum的系统的集群大小为3或5。一个由五台服务器组成的集群可承受两台服务器故障,并且每秒可处理数千个请求的数据写入吞吐量。

这是一个根据可容忍的故障数以及对吞吐量的大致影响来选择服务器数量的示例。吞吐量列显示近似的相对吞吐量,以突出显示吞吐量如何随服务器数量而降低。实际数量因系统而异。

例如,读者可以参考Raft Thesis和Zookeeper原创论文中发布的实际吞吐量数据。

例子

? Zab,Raft,Paxos等所有共识实现都是基于quorum的。? 即使在未使用共识的系统中,quorum也可用于确保在出现故障或网络分区时至少一台服务器可以使用最新更新。例如,在像Cassandra这样的数据库中,可以将数据库更新配置为仅在大多数服务器成功更新了记录之后才返回成功。

审核编辑:符乾江
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 服务器
    +关注

    关注

    12

    文章

    8988

    浏览量

    85131
  • 电力电子
    +关注

    关注

    29

    文章

    552

    浏览量

    48830
  • 分布式系统
    +关注

    关注

    0

    文章

    146

    浏览量

    19199
收藏 人收藏

    评论

    相关推荐

    一次搞懂IT配电系统对工业用地重要!工业绝缘检测设备的重要地位!

    18721098782 王盼盼 工业配电系统选用IT系统主要基于其独特的高可靠和安全特点,特别是在对供电连续性和安全性要求极高的场所。以
    的头像 发表于 11-04 10:21 109次阅读
    一次<b class='flag-5'>性</b>搞懂IT配电<b class='flag-5'>系统</b>对工业用地重要<b class='flag-5'>性</b>!工业绝缘检测设备的重要地位!

    AMD Vitis统一软件平台2024.1全新发布

    通过新版本,系统架构师和开发者可以进一步优化设计开发流程,同时提升整体系统性能
    的头像 发表于 09-18 09:34 315次阅读

    降压斩波电路电流连续性的概念和影响因素

    引言 降压斩波电路是一种高效、稳定、可调的DC-DC转换器,广泛应用于电源管理、电池充电、LED照明等领域。在降压斩波电路的设计和分析过程中,电流连续性是一个非常重要的指标。电流连续性不仅关系到电路
    的头像 发表于 08-14 16:05 616次阅读

    稳态误差反映了系统的什么性能

    稳态误差是控制系统中一个重要的性能指标,它反映了系统在达到稳态时,输出与期望值之间的差异。在控制系统的设计和分析中,稳态误差的分析和计算对于
    的头像 发表于 07-29 10:52 821次阅读

    Jtti:如何在服务器扩展时避免单点故障?有哪些常见的高可用策略?

    服务器扩展是组织应对不断增长的业务需求和数据负载的重要手段。然而,随之而来的却是更大规模的风险,存在单点故障可能导致整个系统的宕机,严重影响业务连续性和用户体验。 避免单点故障的策略 冗余备份 在
    的头像 发表于 07-18 16:02 208次阅读

    三菱PLC扫描周期对控制系统性能的影响

    同样具有不可忽视的作用。本文将从扫描周期的定义、影响因素、对控制系统性能的具体影响以及优化方法等方面进行详细阐述,以期为读者提供深入的理解和认识。
    的头像 发表于 06-18 10:02 1179次阅读

    PCIe配置优化:提升系统性能的关键步骤

    任何 PCI 设备都加载了某些属性。其中一些属性对性能至关重要。设备的 PCIe 属性是通过系统和设备能力之间的协商来设置的。
    的头像 发表于 04-09 09:46 1270次阅读
    PCIe配置优化:提升<b class='flag-5'>系统性能</b>的关键步骤

    TRIZ如何在机器人电机控制设计中提高系统性能

    作为机器人的核心部件之一,电机控制系统性能直接决定了机器人的运动性能、响应速度以及工作效率。因此,提升机器人电机控制设计的系统性能一直是工程师们追求的目标。近年来,TRIZ(发明问题
    的头像 发表于 03-11 15:41 371次阅读

    连续性测试仪电路图分享

    连续性测试仪是一种电子设备,用于测试电路的连续性。它通过检测电路中的电阻或电导来评估电路的连续性和完整
    的头像 发表于 02-12 15:24 671次阅读
    <b class='flag-5'>连续性</b>测试仪电路图分享

    Flyover电缆系统性能分析

    Samtec的Flyover电缆系统旨在将信号从印刷电路板上取下,以改善信号完整、提高设计灵活性并优化散热性能
    的头像 发表于 01-17 10:23 427次阅读
    Flyover电缆<b class='flag-5'>系统性能</b>分析

    请问如何在Linux下取得NUC980 CPU频率?

    何在Linux下取得NUC980 CPU频率?
    发表于 01-17 07:01

    如何使用万用表进行电阻测量和连续性测试

    如何使用万用表进行电阻测量和连续性测试  万用表是一种广泛使用的电子测量仪器,具有多种功能,包括电阻测量和连续性测试。在本文中,我们将详细介绍如何使用万用表进行这两项测量,并提供一些注意事项
    的头像 发表于 12-15 10:45 1378次阅读

    连续性测试仪电路原理图

    在建立任何电气连接之前,连续性测试仪是电气测试设备的重要组成部分。它用于确定在两点之间创建电气通道或形成电路的可行。在连接仪器之前,确保待测电路完全断电至关重要。
    的头像 发表于 12-13 17:35 710次阅读
    <b class='flag-5'>连续性</b>测试仪电路原理图

    连续电压晶振系列

    如果设计师寻求在其系统中将常见时钟振荡器适配不同的供电电压方案,可选择 Abracon 的连续电压振荡器系列。这些简单封装石英晶体振荡器(SPXO)和温补晶体振荡器(TCXO) 旨在支持需要降低整体系统
    发表于 12-07 09:30

    噪声如何影响高速信号链的总动态系统性能

    电子发烧友网站提供《噪声如何影响高速信号链的总动态系统性能.pdf》资料免费下载
    发表于 11-27 11:59 1次下载
    噪声如何影响高速信号链的总动态<b class='flag-5'>系统性能</b>