首页/新闻资讯/正文详情

Neon safekeeper任务

发布时间:2026/11/4 23:19:25 来源:云帆数科 栏目:资讯中心
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 驱逐等动作。

相关推荐

网页一改版爬虫就全崩?LLM自愈爬虫实战:选择器自动修复,运维量直降80%
网页一改版爬虫就全崩?LLM自愈爬虫实战:选择器自动修复,运维量直降80%

做工业数据采集这几年,最头疼的事永远不是反爬,是前端改版。 很多站点反爬没把你搞死,前端开发随手改个类名、调一下DOM层级、换个标签顺序,你写的CSS选择器、XPath就全失效了,数据抓空,告警炸群。小改还好… · 2026/11/4 18:05:01

“软件已死”?独立开发大佬退订几乎所有工作软件:要啥让AI造
“软件已死”?独立开发大佬退订几乎所有工作软件:要啥让AI造

卖软件的人先不买软件了 一个做软件开发生意的人,开始大规模退订软件,还喊出了一句狠话: 软件已死。 10月11日,知名独立开发者Pieter Levels(levelsio)发文称,自己已经退掉了几乎所有工作用的… · 2026/11/3 18:13:35

OpenStack 存储管理实操:卷类型 QoS、卷全生命周期与 NFS 第二后端
OpenStack 存储管理实操:卷类型 QoS、卷全生命周期与 NFS 第二后端

卷建好只是开始——挂载、扩容、打快照、传成镜像、拿去发实例,每一步都有前置条件;删卷删不掉更是三条依赖链叠出来的经典现场。这篇按卷的一生走完 Dashboard 与 CLI 两套操作:卷类型与 QoS → 创建挂载 → 快照/镜像/扩容 → 基于卷发实例… · 2026/11/3 18:17:04

PostgreSQL主从流复制+pgpool高可用实战指南
PostgreSQL主从流复制+pgpool高可用实战指南

简介:本资源是一份面向数据库运维工程师与PostgreSQL高可用架构实践者的完整技术方案文档,聚焦Postgres主从流复制与pgpool-II协同构建生产级高可用数据库集群。内容系统覆盖流复制原理(WAL日志实时同步、同步/异步模式对比)、pgp… · 2026/11/4 23:18:44

机器学习算法优化与硬件协同设计的效率革命
机器学习算法优化与硬件协同设计的效率革命

1. 机器学习效率革命的背后推手在波士顿查尔斯河畔的那栋标志性玻璃建筑里,一群穿着连帽衫的研究人员正用数学公式重新定义人工智能的边界。他们最近发表在NeurIPS上的论文显示,通过改进传统反向传播算法,模型训练时间缩短了40%——这相当于每… · 2026/11/4 23:18:44

Redis SCAN命令原理与华为云优化实践
Redis SCAN命令原理与华为云优化实践

1. Redis SCAN命令基础解析Redis的SCAN命令是遍历大量键值对时的高效解决方案,它通过游标式迭代避免了KEYS命令可能引发的服务阻塞问题。在华为云Redis环境中,这个命令的工作机制与开源版本保持兼容,但在底层实现上针对云环境做了优化。1.1 S… · 2026/11/4 23:17:38

MySQL字符集与校对规则实战解析
MySQL字符集与校对规则实战解析

1. MySQL字符集与校对规则深度解析最近在排查一个线上SQL报错时,遇到了Illegal mix of collations这个看似简单却隐藏着不少细节的问题。作为MySQL数据库中最基础却又最容易被忽视的配置项,字符集和校对规则的选择直接影响着数据存储、查询性能和多语言支… · 2026/11/4 23:17:38

OpenClaw自动化文档生成方案设计与实现
OpenClaw自动化文档生成方案设计与实现

1. 项目背景与核心价值 最近在维护OpenClaw这个开源项目时,遇到一个典型的版本管理痛点:每次发布新版本后,配套的指令文档都需要手动同步更新。这不仅增加了维护成本,还容易因人为疏忽导致文档与代码实际功能脱节。经过两周的迭代… · 2026/11/4 23:17:38

Crowbar/Diksam解释器源码拆解:词法语法、GC与构建排错
Crowbar/Diksam解释器源码拆解:词法语法、GC与构建排错

简介:围绕自制编程语言主题的PDF资料,面向希望从语法设计、编译器实现到运行环境完整走通一遍的开发者与高年级学生,尤其适合已具备C语言基础、想理解解释器与编译器构造流程的读者。压缩包内共1个PDF文件,约2.38MB,以… · 2026/11/4 23:17:38

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

AI辅助技术栈评估:提升研发决策效率60%
AI辅助技术栈评估:提升研发决策效率60%

1. 项目背景与核心价值技术决策一直是研发团队面临的重大挑战。随着技术生态的快速演进,技术栈的选择、维护和迭代变得愈发复杂。我们团队在过去两年里,先后经历了三次重大技术栈迁移,每次都需要投入大量人力进行技术评估和风险分析。直到去年… · 2026/11/4 0:00:17

从生成Token到直接决策:Jev如何重塑AI Agent工程实践
从生成Token到直接决策:Jev如何重塑AI Agent工程实践

1. 从"生成文字"到"拍板决策":Jev 到底在解决什么问题大多数人第一次接触大模型,脑子里建立的模型是"输入问题、输出文字"。你问它今天天气怎么样,它给你一段描述;你让它写个周报,它给你… · 2026/11/4 0:00:17

32G统一内存跑大模型:内存账、TPS实测与端云分流
32G统一内存跑大模型:内存账、TPS实测与端云分流

想在一台 32G 统一内存的小主机上把大模型跑成"日常可用",这件事我前后折腾了小半年。标题里说的这台 Mac mini M6,是我们这次讨论的目标平台,具体到手规格以实物为准;但下面这套推算方法和实测思路,对任何统… · 2026/11/4 0:00:17

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码