Neon safekeeper任务

发布时间:2026/10/31 22:26:14

Neon safekeeper任务 safekeeper 的运行时与任务架构safekeeper 使用 5 个独立的 Tokio Runtime通过LazyRuntime静态变量定义每个 runtime 运行在独立的 OS 线程池上从而把 WAL 服务、HTTP 管理接口、Broker 通信、备份导出和后台维护任务彼此隔离避免某一类任务阻塞影响其他关键路径。Runtime 名称线程数用途WAL_SERVICE_RUNTIME默认CPU 核心数WAL 服务主循环接收 compute / pageserver 连接HTTP_RUNTIME默认CPU 核心数HTTP / HTTPS 管理 API 服务BROKER_RUNTIME2 个固定线程与 storage_broker 通信WAL_BACKUP_RUNTIME默认CPU 核心数WAL 备份 / 导出到远程存储BACKGROUND_RUNTIME1 个线程Hadron 后台任务磁盘监控、指标采集主任务树Tasks1. WAL Service 任务wal_service.rstask_main监听 TCP 端口accept 客户端连接后通过tokio::spawn处理每个连接。每个连接生成一个 connection handler task后台异步任务执行 Postgres 协议握手并处理命令START_WAL_PUSH/START_REPLICATION。对应handler.rs中的SafekeeperPostgresHandler。2. HTTP / HTTPS 服务任务http/mod.rstask_main_http/task_main_https通过 Hyper 提供 HTTP 管理 API。路由定义在http/routes.rs处理 timeline 创建 / 删除、metrics 等请求。3. Broker 任务broker.rstask_main协调整个 broker 通信包含三个子任务循环push_loop每秒向 broker 推送所有活跃 timeline 的状态信息。pull_loop从 broker 订阅并拉取其他 safekeeper 的状态更新。discover_loop处理 discovery 请求safekeeper 节点发现。task_stats监控 broker 连接健康超过 10s 无更新则告警。子任务失败会自动重启通过JoinHandletokio::select!轮询。4. Timeline Manager 任务timeline_manager.rs每条 timeline 一个main_taskManager由GlobalTimelines::init()加载时启动。管理该 timeline 的所有后台子任务recovery_taskpeer 恢复recovery.rs。backup_task全量 WAL 备份wal_backup.rs。partial_backup_task部分段备份上传wal_backup_partial.rs。wal_removal_taskWAL 段清理回收。每 300ms 检查一次 timeline 状态决定是否需要驱逐offload。5. 全局后台任务bin/safekeeper.rsTimeline map housekeeping每 24 小时清理已删除 timeline 的 tombstone。Global disk usage watcherHadron定期扫描磁盘使用率触发熔断。Metrics collectionHadron定期强制刷新 Prometheus 指标。工作配合流程flowchart TD Main[Main (current_thread) start_safekeeper()] -- WAL[WAL_SERVICE_RUNTIME task_main accept loop / spawn conn handler] Main -- HTTP[HTTP_RUNTIME task_main_http / task_main_https serve()] Main -- BROKER[BROKER_RUNTIME task_main push_loop / pull_loop / discover_loop / task_stats] Main -- BG[BACKGROUND_RUNTIME housekeeping / disk_watcher / metrics_collect] WAL -- TM[每条 timeline 独立 Manager recovery / backup / partial_backup / wal_removal] BROKER -- TM核心数据流Compute → WAL PushCompute 通过START_WAL_PUSH建立长连接推送 WAL 数据由receive_wal.rs处理并持久化到wal_storage.rs。Pageserver → ReplicationPageserver 通过START_REPLICATION消费已提交的 WAL由send_wal.rs发送。Broker 协调所有 safekeeper 通过 broker 交换 topology 信息实现 peer 发现和恢复。Manager 决策每条 timeline 的 manager 根据commit_lsn、remote_consistent_lsn等决定 WAL 清理、备份上传、offload 驱逐等动作。
延伸阅读

更多相关文章

2026/10/31 22:21:13

一个顶级的Python自动化库:Playwright,让浏览器听从你的指挥!

关于2024年软件测试的面试刷题, 有这款小程序可以永久刷题, 它能帮你快速找到工作, 可以说是刷题APP里的顶级水平!这篇文章发布在CSDN博客上, 标题是《软件测试面试题刷题小程序》, 阅读量已经达到了3千次, 得到了86次点赞和13次收藏。你是不是还不知道有这么一款专…

2026/10/31 23:21:21

C语言PTA理论考高频考点与易错点知识地图

简介:面向准备C语言程序设计考试与PTA理论测评的初学者及任课教师,这份文档围绕理论考场景整理了判断题、选择题及对应答案,可用于考前速查、课堂练习与错题复盘,帮助读者快速定位基础语法中的易混点。压缩包内共1个docx文件&…

2026/10/31 23:21:21

智能化开发工具链:CodeBuddy与GLM-4.7的实践指南

1. 智能化开发工作流的核心价值在当今快节奏的软件开发环境中,开发者面临着日益复杂的工具链和不断增长的生产力要求。CodeBuddy IDE、GLM-4.7和Spec-Kit的组合为这一挑战提供了创新解决方案。这套工具链的核心价值在于将AI能力深度集成到开发流程的每个环节&#x…

2026/10/31 23:21:21

OpenRig:用tmux+YAML构建高可靠AI多智能体编排系统

1. 项目概述:当AI智能体不再“单打独斗”,而开始“组队干活”你有没有试过让一个AI Agent去查天气、订会议室、再把会议纪要发到钉钉——结果它卡在“找不到钉钉API文档第3页的token字段”上,然后默默退出?这不是模型能力不行&…

2026/10/31 23:21:21

HTML语义化入门:从标题标签到文档大纲构建

1. 这不是“背标签”的笔记&#xff0c;而是前端工程师的文本语义训练手册 你打开任何一份正规项目的HTML源码&#xff0c;几乎不会看到连续五个 <div> 嵌套着三个 <span> 再包一层 <div class"wrapper"> 的写法——但初学者的练习页面里&a…

2026/10/31 23:21:21

从函数调用到安全沙箱:智能体执行层的工程实践与踩坑指南

1. 先把“执行”这一层想透&#xff1a;智能体凭什么能动手 1.1 从 Function Calling 到 Tool Use&#xff1a;一次调用的完整生命周期 真正把 LLM 从“对话机器人”变成“智能体”的分水岭&#xff0c;不是模型能写多长的作文&#xff0c;而是它能不能在对话之外真正做点事。…

2026/10/31 23:16:21

AI+python-pptx:打造免费可二开的自动化PPT生成系统

折腾这套自动化PPT生成系统&#xff0c;起因特别现实——我手上积压了太多对外分享的PPT需求&#xff0c;内容大同小异&#xff0c;但每回都要从空白模板开始排版&#xff0c;一弄就是半天。后来我把整个流程拆开看&#xff1a;内容生成交给模型&#xff0c;版式渲染交给程序&a…

2026/10/30 20:55:10

全国计算机二级C语言真题PDF高效刷题指南

简介&#xff1a;这份PDF是全国计算机二级C语言考试的试题与答案解析&#xff0c;专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/30 20:55:10

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介&#xff1a;一份以实战为导向的Python爬虫入门资源&#xff0c;面向具备基本编程基础、希望快速掌握网络数据抓取的初学者&#xff0c;可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档&#xff0c;完整演示从网页中提取 标题…

2026/10/31 22:14:20

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介&#xff1a;这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档&#xff0c;压缩包大小七十八KB&#xff0c;内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开&#xff1a;先构造一个极点位于单位圆内…

2026/10/31 0:02:41

猫狗目标检测数据集:VOC/COCO/YOLO三格式一体化实战包

简介&#xff1a;本资源是一套面向计算机视觉初学者与YOLO目标检测实践者的猫狗图像数据集及配套开发工具包&#xff0c;专为快速上手目标检测模型训练而设计。资源包含1000张真实场景高清猫狗图片&#xff0c;标注质量高&#xff0c;同时提供VOC&#xff08;XML&#xff09;、…

2026/10/31 0:02:41

HDU2017多校标程复现:算法竞赛工程化真题沙盒

简介&#xff1a;本资源为2017年HDU多校联合训练第一场官方配套资料&#xff0c;面向ACM程序设计竞赛备赛学生、算法爱好者及高校编程集训队成员&#xff0c;旨在提供权威解题参考与完整测试验证环境。压缩包共40个文件&#xff0c;含15份C标程&#xff08;覆盖全部赛题&#x…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑