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

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

3天内不再提示

分布式系统模式—High-Water Mark

电子设计 来源:电子设计 作者:电子设计 2020-12-24 12:56 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

作者: Unmesh Joshi

译者: java达人

预写日志中的索引,显示最近一次成功的复制。

问题

服务器崩溃并重新启动后,可使用“Write-Ahead Log”模式恢复状态。但是,如果服务器发生故障,Write-Ahead Log不足以提供可用性。如果单个服务器发生故障,则客户端将无法运行,直到服务器重新启动。为了获得更多可用的系统,我们可以在多个服务器上复制日志。使用领导者和追随者模式,领导者会将其所有日志条目复制到追随者法定数。现在,如果领导者失败,则可以选举新的领导者,并且客户可以像以前一样继续使用集群。但是仍然有几处可能出问题:

? leader在将其日志发送给任何追随者之前可能会失败。? 领导者可能会在向一些追随者发送日志条目时失败,无法将其发送给大多数的追随者。

在这些错误场景中,一些追随者可能在其日志中丢失条目,而一些追随者可能拥有比其他追随者更多的条目。因此,对于每个follower来说,了解日志的哪一部分对客户端是安全可用的就变得很重要了。

解决方案

high-water mark是日志文件的一个索引,它记录已知已成功复制到追随者Quorum的最后一个日志条目。在复制过程中,领导者还会将high-water mark传递给追随者。集群中的所有服务器应该只向请求低于high-water mark更新的客户端传输数据。

这是操作顺序:

Figure 1: High-Water Mark

对于每个日志条目,leader将其附加到其本地预写日志中,然后将其发送给所有追随者。

leader (class ReplicationModule...)
private Long appendAndReplicate(byte[] data) { Long lastLogEntryIndex = appendToLocalLog(data); logger.info("Replicating log entries from index " + lastLogEntryIndex); replicateOnFollowers(lastLogEntryIndex); return lastLogEntryIndex; }
private void replicateOnFollowers(Long entryAtIndex) { for (final FollowerHandler follower : followers) { replicateOn(follower, entryAtIndex); //send replication requests to followers } }

追随者处理复制请求并将日志条目附加到它们的本地日志中。在成功附加日志条目之后,它们将拥有的最新日志条目索引响应到leader。该响应还包括服务器的当前Generation Clock。

follower (class ReplicationModule...)
private ReplicationResponse handleReplicationRequest(ReplicationRequest replicationRequest) { List

Leader在收到响应时跟踪在每个服务器上复制的日志索引。

class ReplicationModule…
recordReplicationConfirmedFor(response.getServerId(), response.getReplicatedLogIndex()); long logIndexAtQuorum = computeHighwaterMark(logIndexesAtAllServers(), config.numberOfServers()); if (logIndexAtQuorum > replicationState.getHighWaterMark()) { var previousHighWaterMark = replicationState.getHighWaterMark(); applyLogAt(previousHighWaterMark, logIndexAtQuorum); replicationState.setHighWaterMark(logIndexAtQuorum); }

通过查看所有追随者的日志索引和领导者本身的日志,并获取大多数服务器上可用的索引,可以计算出High-Water Mark。

class ReplicationModule…
Long computeHighwaterMark(List

领导者将high-water mark作为常规心跳的一部分或作为单独的请求向追随者传播。追随者随后相应地设定了他们的high-water mark。

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

    关注

    14

    文章

    10362

    浏览量

    91760
  • 分布式系统
    +关注

    关注

    0

    文章

    157

    浏览量

    19924
  • Mark
    +关注

    关注

    0

    文章

    21

    浏览量

    8815
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    分布式迭代求解策略:分布式混合电推进系统飞发一体化设计与能量管理协同优化方法

    随着全球航空业对绿色环保要求的不断提高,分布式混合电推进系统作为传统航空动力向全电飞行器过渡的关键技术,展现出巨大的发展潜力。本文围绕半涡电分布式推进系统的动态实时建模与控制方法展开
    的头像 发表于 03-27 08:54 198次阅读
    <b class='flag-5'>分布式</b>迭代求解策略:<b class='flag-5'>分布式</b>混合电推进<b class='flag-5'>系统</b>飞发一体化设计与能量管理协同优化方法

    分布式能源管理物联网解决方案

    分布式能源系统(如光伏电站、储能电站等)具有设备多样、分布较广、数据量大等特点,传统人工抄表或本地监控模式存在数据滞后、管理低效、优化困难等问题。物通博联(WideIOT)结合边缘计算
    的头像 发表于 01-21 11:39 468次阅读
    <b class='flag-5'>分布式</b>能源管理物联网解决方案

    零碳园区自主供能模式分布式光伏系统

    在零碳园区自主供能体系中,分布式光伏系统是 “就近发电、就近消纳” 的核心载体,其类型选择需适配园区屋顶、空地、水域等不同空间资源,匹配生产、办公、生活等多元用能场景。不同分布式光伏系统
    的头像 发表于 12-20 10:21 470次阅读
    零碳园区自主供能<b class='flag-5'>模式</b>的<b class='flag-5'>分布式</b>光伏<b class='flag-5'>系统</b>

    如何解决分布式光伏计量难题?

    %。同时,可提升发电效率、降低发电成本的新型技术逐步落地,推动光伏系统向更高效、更紧凑的方向发展,进而对电表在精度、数据更新速度及适配性方面也提出了更高要求。 分布式光伏遇计量难题 分布式光伏常用 “自己发的电自己用,用不完的卖
    的头像 发表于 11-07 14:55 422次阅读
    如何解决<b class='flag-5'>分布式</b>光伏计量难题?

    分布式智能展厅控制系统:打造AI互动展示新模式

    近日,某江西某历史博物馆成功应用讯维全新分布式智能展厅控制系统,为数字展厅的音视频交互和环境控制带来了革新。讯维全新分布式智能展厅控制系统通过采用先进的
    的头像 发表于 09-24 16:23 895次阅读
    <b class='flag-5'>分布式</b>智能展厅控制<b class='flag-5'>系统</b>:打造AI互动展示新<b class='flag-5'>模式</b>!

    【节能学院】Acrel-1000DP分布式光伏监控系统在奉贤平高食品 4.4MW 分布式光伏中应用

    摘要:在“双碳”和新型电力系统建设背景下,分布式光伏接入比例不断提高,对配电网电压、调度运行及调峰等环节造成强烈冲击。本文设计包含平台层、设备层二层架构体系的分布式光伏管控平台,以及小容量工商业
    的头像 发表于 08-23 08:04 3665次阅读
    【节能学院】Acrel-1000DP<b class='flag-5'>分布式</b>光伏监控<b class='flag-5'>系统</b>在奉贤平高食品 4.4MW <b class='flag-5'>分布式</b>光伏中应用

    分布式光伏发电监测系统技术方案

    分布式光伏发电监测系统技术方案 柏峰【BF-GFQX】一、系统目标 :分布式光伏发电监测系统旨在通过智能化的监测手段,实现对
    的头像 发表于 08-22 10:51 3472次阅读
    <b class='flag-5'>分布式</b>光伏发电监测<b class='flag-5'>系统</b>技术方案

    园区分布式光伏发电监控系统

    简婷 安科瑞电气股份有限公司 上海嘉定  201801 技术支持18701998775 园区部署分布式光伏发电监控系统,是实现光伏项目高效运营、风险可控、收益大的核心保障,其必要性体现在以下多个维度
    的头像 发表于 07-31 15:49 1231次阅读
    园区<b class='flag-5'>分布式</b>光伏发电监控<b class='flag-5'>系统</b>

    分布式光伏总出问题?安科瑞分布式光伏监控系统来“救场”

    一、分布式光伏的痛点大揭秘 在 “双碳” 目标的大力推动下,分布式光伏作为绿色能源领域的重要力量,正以前所未有的速度蓬勃发展,越来越多的企业和家庭选择安装分布式光伏系统。然而,随着
    的头像 发表于 07-16 16:50 951次阅读
    <b class='flag-5'>分布式</b>光伏总出问题?安科瑞<b class='flag-5'>分布式</b>光伏监控<b class='flag-5'>系统</b>来“救场”

    Ceph分布式存储系统解析

    在当今数据爆炸的时代,企业对存储系统的需求日益增长,传统的集中式存储已经无法满足大规模数据处理的要求。分布式存储系统应运而生,而Ceph作为开源分布式存储
    的头像 发表于 07-14 11:15 1225次阅读

    分布式光伏发电监控系统

    对高、低压并网分布式光伏电站的升压系统、光伏逆变器等设备进行全面监控,采集微机保护装置、自动控制设备、电能质量监测装置、光伏逆变器、一体化电源等设备数据,并提供有功功率控制(AGC)、电压无功综合
    的头像 发表于 06-25 13:41 1148次阅读
    <b class='flag-5'>分布式</b>光伏发电监控<b class='flag-5'>系统</b>

    双电机分布式驱动汽车高速稳定性机电耦合控制

    摘要:为了利用所设计的双电机防滑差速驱动系统来提高分布式驱动汽车的动力学性能,在前期同轴耦合驱动控制理论研究的基础上,开展该车的高速稳定性机电耦合控制研究。建立并验证包含所设计驱动系统在内的
    发表于 06-18 16:37

    分布式光伏监测难?并网型分布式光伏系统光伏功率预测方案

    一、分布式光伏发电系统   安科瑞 邹玉丽   分布式光伏发电系统的基本设备包括光伏电池组件、光伏方阵支架、直流汇流箱、直流配电柜、并网逆变器、交流配电柜等设备,另外还有供电
    的头像 发表于 05-20 10:17 1453次阅读
    <b class='flag-5'>分布式</b>光伏监测难?并网型<b class='flag-5'>分布式</b>光伏<b class='flag-5'>系统</b>光伏功率预测方案

    多通道电源管理芯片在分布式能源系统中的优化策略

    摘要: 随着分布式能源系统的广泛应用,对电源管理芯片的性能要求日益提升。本文深入探讨了多通道电源管理芯片在分布式能源系统中的优化策略,以国科安芯的ASP4644芯片为例,从电气特性、工
    的头像 发表于 05-16 15:22 1090次阅读

    分布式光伏电力问题层出不穷?安科瑞分布式光伏运维系统来“救场”

    一、分布式光伏电力运维,痛点大揭秘​ ​ 分布式光伏作为实现绿色能源转型的关键一环,近年来在我国得到了迅猛发展。国家能源局数据显示,截至 2023 年底,中国分布式光伏电站累计并网容量约为 2.5
    的头像 发表于 05-07 17:14 1097次阅读
    <b class='flag-5'>分布式</b>光伏电力问题层出不穷?安科瑞<b class='flag-5'>分布式</b>光伏运维<b class='flag-5'>系统</b>来“救场”