Killed My Own Process 300 Times to Prove ChronoVault Doesn't Lie About Durability
说明与用途
ChronoVault v2 通过多次强制终止写入进程,证明了崩溃安全性,加入了包隔离机制,修复了 Windows 多进程问题,并与 diskcache 进行基准测试,确保了可靠的跨平台性能。
问题
Ensuring crash‑safety of a content‑addressable snapshot engine without relying on external libraries or assumptions about OS behavior.
结果
ChronoVault v2 proved crash‑safety through 300 real SIGKILL injections, introduced pack‑quarantine to prevent corrupt reads, and fixed cross‑platform bugs, achieving 279 passing tests and green CI on Linux and Windows.
工作流
- 1. Implement snapshot, CAS, index, and recovery modules with atomic rename + fsync.
- 2. Add pack‑quarantine to isolate corrupt/truncated packs before indexing.
- 3. Write recover‑check that injects real SIGKILL into writer subprocesses at random points.
- 4. Run recover‑check 300 times, verifying all three invariants (intact snapshots, no partial reads, immediate usability).
- 5. Benchmark against diskcache, documenting write throughput and on‑disk size trade‑offs.
- 6. Identify and fix Windows multiprocessing bugs (KeyboardInterrupt mis‑reporting, WinError 32, join‑before‑drain deadlock).
- 7. Document lineage edge cases and limitations in path‑history index.
- 8. Publish judge_mode.py to re‑derive all claims automatically.
- 9. Run CI across Python 3.10–3.14 on Ubuntu and Windows, ensuring green builds.
- 10. Submit to hackathon with full documentation and source repo.
证据
recover‑check is tested against a real SIGKILL, not a simulated one: a writer subprocess runs a snapshot, gets hard‑killed at a randomized point mid‑write, and the vault is reopened cold — no manual repair step allowed.
Every other number in this post makes ChronoVault look good. This one doesn’t.
Three places, all invisible until I tested on real Windows hardware instead of assuming POSIX behavior generalizes.
- 记录日期: 2026-09-07T07:52:40.995Z