Skip to content

R3 检查点后连续尾段恢复 ​

开发前合同 ​

用户批准继续开发。默认恢复行为不变;显式 --include-tail 允许扫描检查点后连续完整记录。必须先独立校验检查点前缀,再逐行接纳尾段;序号连续、逐Adapter时钟不倒退、完整换行、Envelope结构合法;外置blob offset连续、length合法、范围完整、逐块hash匹配。首个异常停止,保留此前合法尾段;不得跳过异常后继续拼接。

恢复仅接受已停止写入的源。尾段没有历史检查点可信哈希,语法和内部hash一致不是来源真实性证明,状态partial、identity unresolved,明确区分checkpointEventCount与recoveredTailEventCount。只写新目录,原会话不改;新manifest重算完整恢复文件hash并独立validate,不复用旧指标缓存。

资源:单线程逐行扫描,O(前缀+尾段字节数),复制1MiB块;新增尾段单行上限16MiB(超过则停止并记录原因,不丢弃原文件)。blob逐块复制与hash有界,不一次读取整个blob。校验器仍驻留已恢复事件,整体内存尚非有界。单进程基准120秒;自动周期checkpoint/实时首响应、1GB/长会话和E4仍开放。匹配测试含完整/半行/缺口/坏hash/截断blob/时钟倒退和默认兼容;20轮同负载前缀/尾段恢复资源对照,明确输入规模不同,不宣称无成本。

实施与E2验证 ​

新增recover-checkpoint --include-tail;默认前缀恢复不变。尾段单行16MiB上限、连续序号/Adapter时钟校验、blob连续范围与逐块哈希,首个错误停止。成功恢复重新hash并独立校验;recovery.json显式记载checkpointEventCount、recoveredTailEventCount与停止原因,tailHasCheckpointAttestation=false。尾段时长不伪造,recoveryDurationIncludesTail=false。

Python267/267(1.684秒),完整/半行/缺口/倒退/错误hash/截断blob/布尔序号与原源不变性回归通过。恢复仍partial、identity unresolved,不升级指标质量。

资源对照 ​

单输入实际300MiB,checkpoint在200MiB;20轮/模式、独立进程、交替AB/BA。前缀组恢复20事件/200MiB,尾段组恢复30事件/300MiB;不同处理量不计算优化收益。

模式中位msP95ms最大msCPU中位msRSS峰值bytes
prefix790.470894.7971039.004764.279236994560
tail1973.7382160.6842192.1811931.701553709568

基准包含复制、hash、独立校验及写出恢复目录;OS缓存和主机并行工作可能影响,OS block计数不替代物理I/O峰值。恢复校验依然驻留全量事件,不宣称有界RSS;输出源代码SHA256随证据冻结。未新增实时线程/定时器,周期默认集成尚未执行。

40轮匿名证据。本批不作完整停止≤2秒、设备E4或1GB/60分钟结论。

下一步与整体进度 ​

R3显式离线恢复继续推进,R0~R6整体partial。下一步周期checkpoint调度与真实事件循环资源/首响应测试,再处理持久化引擎状态和满盘重启。目录发布不是整场原子事务;发布中崩溃可留下不完整新目录,原目录不变,应另选新目的地重新恢复。完整签名/公证/GPL与真机门禁仍开放。

最终源码复测与内存修正 ​

首轮发现前缀对象与完整校验对象同时驻留;第二次验证前释放前缀引用。最终源码再次40轮,tail中位1896.293ms、P952014.769ms、max2038.628ms,CPU中位1848.234ms、RSS峰值340013056字节;较首轮553709568字节下降约38.6%。prefix中位779.878ms、P95894.023ms、max1004.913ms,RSS236867584字节。

最终40轮证据。前后非同时随机代码A/B、存在缓存与主机负载差异,内存变化与对象生命周期修正一致,不外推全源稳态。最终最差仍超过2秒;离线恢复不等于点击停止,但也不以此宣布2秒合同达标。Python最终267/267(1.639秒)。

Build42 内部包(E2) ​

Swift111/111、64项站点合同与构建通过(有bundle体积警告)。Build42 x86_64 ZIP独立解包内容一致、严格codesign通过、包内probe ready。包内recover-checkpoint --include-tail实际恢复1条前缀+1条尾段,partial/unresolved和无历史凭证标记正确。

ZIP110335263字节,SHA-256 a6dc3376bb32e98fe15a8ba6f6b72e203242968d16b454a2e971ed9f35d41c1b。包证据。ad-hoc、Gatekeeper/staple未通过,未安装Applications、未真机。正式签名公证/GPL门禁开放。

Perfowl · Performance Observer