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

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

3天内不再提示

分布式系统模式概述——Low-Water Mark

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

扫码添加小助手

加入工程师交流群

作者: Unmesh Joshi

译者: java达人

预写日志中的索引,表示可以丢弃日志的哪一部分。

问题

预写日志维护对持久性存储的每一次更新。随着时间的进展,它会无限制地增长。Segmented Log允许一次处理较小的文件,但是如果不检查,总磁盘存储量将无限制增长。

解决方案

有一种机制可以告诉日志记录机器可以安全地丢弃日志的哪一部分。该机制提供了最低的偏移量或low water mark,在此之前的日志可以丢弃。让任务在后台的单独线程中运行,该任务连续检查可以丢弃日志的哪一部分并删除磁盘上的文件。

this.logCleaner = newLogCleaner(config);this.logCleaner.startup();

日志清理器可以实现为定时任务

public void startup() { scheduleLogCleaning();}

private void scheduleLogCleaning() { singleThreadedExecutor.schedule(() -> { cleanLogs(); }, config.getCleanTaskIntervalMs(), TimeUnit.MILLISECONDS);}基于快照的Low-Water Mark

大多数共识实现(例如Zookeeper或etcd(在RAFT中定义))都实现了快照机制。在此实现,存储引擎需要定期快照。除快照外,它还存储成功应用的日志索引。参考“Write-Ahead Log”模式中的简单键值存储实现,可以采取以下快照:

public SnapShot takeSnapshot() { Long snapShotTakenAtLogIndex = wal.getLastLogEntryId(); return new SnapShot(serializeState(kv), snapShotTakenAtLogIndex);}

一旦快照成功保存在磁盘上,日志管理器将获得Low-Water Mark,以丢弃较旧的日志。

List<WALSegment> getSegmentsBefore(Long snapshotIndex) { List<WALSegment> markedForDeletion = new ArrayList<>(); List<WALSegment> sortedSavedSegments = wal.sortedSavedSegments; for (WALSegment sortedSavedSegment : sortedSavedSegments) { if (sortedSavedSegment.getLastLogEntryId() < snapshotIndex) { markedForDeletion.add(sortedSavedSegment); } } return markedForDeletion;}基于时间的Low-Water Mark

在某些系统中,不一定要使用日志来更新系统状态,可以在给定的时间窗口后丢弃日志,而不必等待任何其他子系统共享可以删除的最低日志索引。例如,在像Kafka这样的系统中,日志将保留7周;消息时间超过7周的所有日志段都将被丢弃。对于此实现,每个日志条目还包括创建时的时间戳。然后,日志清理器可以检查每个日志段的最后一个条目,并丢弃早于配置的时间窗口的日志段。

private List<WALSegment> getSegmentsPast(Long logMaxDurationMs) { long now = System.currentTimeMillis(); List<WALSegment> markedForDeletion = new ArrayList<>(); List<WALSegment> sortedSavedSegments = wal.sortedSavedSegments; for (WALSegment sortedSavedSegment : sortedSavedSegments) { if (timeElaspedSince(now, sortedSavedSegment.getLastLogEntryTimestamp()) > logMaxDurationMs) { markedForDeletion.add(sortedSavedSegment); } } return markedForDeletion;}
private long timeElaspedSince(long now, long lastLogEntryTimestamp) { return now - lastLogEntryTimestamp;}

例子

?所有共识算法(例如Zookeeper和RAFT)中的日志实现均实现基于快照的日志清理

?Kafka中的存储实现遵循基于时间的日志清理

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

    关注

    0

    文章

    150

    浏览量

    19817
  • Mark
    +关注

    关注

    0

    文章

    21

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

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

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

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

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

    Ceph分布式存储系统解析

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

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

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

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

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

    安科瑞Acrel-1000DP分布式光伏监控系统在嘉兴亨泰分布式光伏项目中的应用

    摘要 分布式光伏发电系统其核心特点是发电设备靠近用电负荷中心,通常安装在屋顶、建筑立面或闲置空地上,截至2025年,分布式光伏发电系统在全球和中国范围内取得了显著发展,成为能源转型和可
    的头像 发表于 04-10 13:17 627次阅读
    安科瑞Acrel-1000DP<b class='flag-5'>分布式</b>光伏监控<b class='flag-5'>系统</b>在嘉兴亨泰<b class='flag-5'>分布式</b>光伏项目中的应用

    使用VirtualLab Fusion中分布式计算的AR波导测试图像模拟

    总计算时间超过31小时。通过使用一个由8个多核PC组成的网络,提供35个客户端分布式计算,将模拟时间减少到1小时5分钟。基本模拟任务基本任务集合:FOV使用分布式计算的集合模拟概述模拟时间节省96%的计算时间!!!
    发表于 04-10 08:48

    分布式光伏发运维系统实际应用案例分享

    安科瑞刘鸿鹏 摘 要 分布式光伏发电系统其核心特点是发电设备靠近用电负荷中心,通常安装在屋顶、建筑立面或闲置空地上,截至2025年,分布式光伏发电系统在全球和中国范围内取得了显著发展,
    的头像 发表于 04-09 14:46 986次阅读
    <b class='flag-5'>分布式</b>光伏发运维<b class='flag-5'>系统</b>实际应用案例分享

    浅谈分布式光伏系统在工业企业的设计及应用

    主要对工业厂区屋顶分布式光伏发电系统的设计及应用进行研究,为工业厂区能源供应提供一种全新的解决思路和技术支持。介绍了工业厂区屋顶分布式光伏系统及其优势,分析了工业厂区屋顶
    的头像 发表于 03-21 14:24 722次阅读
    浅谈<b class='flag-5'>分布式</b>光伏<b class='flag-5'>系统</b>在工业企业的设计及应用

    安科瑞能量管理系统在江西某啤酒厂分布式光伏发电项目中的应用

    安科瑞徐赟杰18706165067 1.摘要 新型电力系统下,各省市分布式光伏装机逐年增高,由于分布式光伏的波动性,光伏在并入电网后给原有的配电网增加了很大的不稳定性,对电力系统的安全
    的头像 发表于 02-11 16:24 694次阅读
    安科瑞能量管理<b class='flag-5'>系统</b>在江西某啤酒厂<b class='flag-5'>分布式</b>光伏发电项目中的应用

    分布式云化数据库有哪些类型

    分布式云化数据库有哪些类型?分布式云化数据库主要类型包括:关系型分布式数据库、非关系型分布式数据库、新SQL分布式数据库、以列方式存储数据、
    的头像 发表于 01-15 09:43 863次阅读

    基于ptp的分布式系统设计

    。 PTP概述 PTP是一种网络时间同步协议,它允许网络中的设备同步它们的时钟。PTP基于IEEE 1588标准,旨在提供亚微秒级别的时间同步精度。PTP通过在网络中传播时间信息,并使用这些信息来校正本地时钟,从而实现精确的时间同步。 系统架构 基于PTP的
    的头像 发表于 12-29 10:09 961次阅读

    安科瑞Acrel-1000DP分布式光伏监控系统在8.3MWp分布式光伏发电中的应用

    安科瑞分布式光伏监控系统在上海汽车变速器有限公司 8.3MWp分布式光伏发电项目中的应用
    发表于 12-16 15:03 0次下载