外观
R3 Raw 检查点与显式前缀恢复
实施前合同
用户批准继续R3。新增显式checkpoint API与recover CLI,周期调度默认不接入实时路径。指标公式、scope、单位和质量词表不变。
检查点在同一Raw writer锁内:同步Raw与blob、复制当前序号/字节边界/累计哈希与计数、原子发布独立checkpoint。后续事件不改变前次凭证。空会话拒绝检查点。检查点不证明设备无丢失。
恢复输入为停止写入的本地会话;仅复制检查点声明的Raw/blob前缀到新目录,拒绝已有目标、路径逃逸与符号链接。复制同时哈希,再独立Raw回放/逐块校验,匹配最后序号与事件数后才发布新目录;失败清理本次临时目录,原会话不改。检查点后尾段不猜测、不自动补齐,标partial并记录排除字节数;身份不继承为verified。恢复结果还需显式finalize生成报告。
资源:检查点O(1)状态和小manifest,新增两次数据fsync,文件级原子发布,不宣称目录持久化或物理断电耐久。恢复O(前缀字节数+事件数),复制buffer1MiB,校验仍沿用全量事件驻留,无新增并发/轮询。单回放基准120秒上限,不把OS阻塞fsync说成有界设备停止。等输入至少20轮对照开关检查点耗时、CPU、RSS及逻辑I/O;自动周期集成须另过首响应与稳态吞吐门禁。
边界:完整checkpoint协议、引擎状态快照、checkpoint后尾段恢复、满盘持续采集恢复及E4仍开放;本批仅恢复已验证前缀,不丢弃原始损坏证据。
实施与测试(E2)
新增 RawSessionRecorder.checkpoint 与 recover-checkpoint CLI。恢复先复制并验证临时副本,再独占创建新目标目录;manifest最后发布。目录发布不是单次原子操作,进程若在搬运阶段崩溃可能留下不完整目标;该目标不会被覆盖,应保留并另选新目录重试。没有checkpoint的历史会话本批不自动恢复。
全量Python264/264(1.811秒)。覆盖真实子进程os._exit无清理退出、同步失败保留旧checkpoint、前缀损坏、截断、符号链接、已有/嵌套目标、空checkpoint以及重复恢复到新目录的一致性。无物理断电E4结论。
效率与限制
合成但实际分配的300MiB输入,单进程依次写30块10MiB,checkpoint模式每10块显式同步一次。20轮/模式,AB/BA交替、独立进程,单轮120秒超时。baseline/checkpoint写入中位654.950/663.782ms(+1.35%),CPU中位632.918/638.003ms(+0.80%),峰值RSS35414016/35545088字节;P95769.766/820.015ms,max963.400/992.691ms。总逻辑payload相同,额外小manifest写入不等于物理I/O峰值;OS缓存与主机其他工作可能影响。
本次不是持续全源、首点延迟或设备停止测试,周期默认集成继续开放。恢复校验仍驻留全量事件,未满足有界恢复内存目标。没有放宽既有R0~R6性能合同。
40轮匿名证据。检查点只是Raw前缀凭证,不包含指标引擎checkpoint;恢复后需要显式finalize离线重建,不复用崩溃时指标文件。
使用与后续
内部CLI:recover-checkpoint SOURCE NEW_DESTINATION;源必须已停止写入,目标必须不存在;恢复成功后用finalize NEW_DESTINATION生成报告。恢复状态partial、identity unresolved,尾段排除字节数记录在recovery.json,不声称数据完整或目标身份已重新确认。
下一批:测量真实事件循环延迟后接入有界周期策略;实现checkpoint后完整记录尾段的严格恢复,再验证引擎恢复一致性、满盘、断连与1GB/60分钟场景。整体R3/R0~R6仍partial,签名公证与E4门禁保持开放。
最终包验证(E2)
最终Python264/264(1.619秒)、Swift111/111通过。站点64项合同/链接构建通过,保留bundle体积警告。Build41 x86_64 ZIP独立解包内容一致,严格codesign通过,包内probe ready;独立包CLI实际恢复1条检查点事件并排除尾段,status partial、identity unresolved。
ZIP110331360字节,SHA-256 ed72240547f1ab8adadf58f1a5f364223c6357f7236247c6999cf759a6e6d630。包证据。仅ad-hoc,Gatekeeper和staple未通过,未安装至Applications或执行真机。Developer ID、公证与GPL门禁仍开放。
300MiB恢复20轮最大1326.064ms,单次检查点最大8.997ms;只代表本机本次离线模型,未外推为周期采集时延预算。