# Application Checkpointing
## 定義
アプリケーション checkpointing(application checkpointing)とは、実行中のアプリケーションの状態(メモリ、レジスタ、スタック、プログラムカウンタ、オープンリソースなど)を一定時点で保存し、後に同じ状態から実行を再開できるようにする技術である。耐障害性の確保、負荷分散、長時間実行ジョブの継続、およびVMマイグレーションの基盤として利用される。(Source: [[@2024__EdgeSys__Stateful VM Migration Among Heterogeneous WebAssembly Runtimes for Efficient Edge-cloud Collaborations]] §1, §3.1.1)
## 横断的知見
- (他ソースとの横断比較は今後蓄積する)
- プロセス全体のメモリを保存するのではなく、OSカーネルのdirty memory検出を利用して実際に書き込まれたページのみを保存することで、チェックポイントサイズと転送時間を削減できる。これは、帯域が限られたエッジ環境でのマイグレーションにおいて特に有効である。(Source: [[@2024__EdgeSys__Stateful VM Migration Among Heterogeneous WebAssembly Runtimes for Efficient Edge-cloud Collaborations]] §3.1.1, §4.1.1)
- **アプリケーション実行状態をホストランタイムから切り離す自己ホスト型ランタイムは、チェックポイント対象を最小限に絞り込める**: Mid4CC 2025 の Chiwawa は、自己ホスト型 Wasm ランタイムが作成する VM の内部状態(プログラムカウンタ、スタック、線形メモリ、変数)のみを C/R 対象とし、ホストランタイムの内部実装を含まない。これにより、wasmtime・WAMR・WasmEdge のいずれをホストとしても 1076 KB の一貫した小さなチェックポイントサイズを達成し、CRIU(プロセス全体 C/R)と比較して 1 〜 3 桁小さくなった。(Source: [[@2025__Mid4CC__Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint-Restore in Edge-Cloud Continuum]] §3.1, §5.3)
- **fast interpreter と standard interpreter の間では、checkpoint 対象を命令ポインタ・コントロールスタック・バリュースタックまで細分化して変換する必要がある**: APSys 2024 は、WasmEdge (standard interpreter) と WAMR・Wasm3 (fast interpreter) 間の C/R において、カスタムコード上の実行点を Wasm バイトコード上の相対アドレスに対応づけ、異なるメモリレイアウトのバリュースタックを型情報付きで変換する。これは、単純なメモリダンプでは実現できない、実行形式に密接に依存した checkpointing の一例である。(Source: [[@2024__APSys__A Checkpoint-Restore Mechanism with Interoperability Among Distinctive WebAssembly Interpreters]])
## 未解決の問い
- アプリケーションがOSカーネルや外部サービスに依存する場合(ソケット、ファイルディスクリプタ、認証トークン)、それらの状態をcheckpointに含めるか、マイグレーション後に再確立するかの境界をどう設計するか。
- 異種ランタイム間のcheckpointは、どの抽象レベルで状態を共通表現に変換すべきか。
- checkpointの一貫性(特に非同期I/Oやネットワーク通信進行中)をどう保証するか。
- checkpoint頻度と保存コストのトレードオフを、エッジ環境の帯域とレイテンシ制約下でどう最適化するか。
- fast interpreter と standard interpreter の間で、カスタムコード上の実行点を Wasm バイトコード上の実行点に正確に対応づける方法は一般化できるか。
## 関連
- ソース: [[@2024__EdgeSys__Stateful VM Migration Among Heterogeneous WebAssembly Runtimes for Efficient Edge-cloud Collaborations]] / [[@2025__Mid4CC__Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint-Restore in Edge-Cloud Continuum]]
- 概念: [[チェックポイント]] / [[VM Migration]] / [[WebAssembly]] / [[Edge Computing]] / [[Edge-cloud Collaboration]] / [[Self-Hosted WebAssembly Runtime]]
- エンティティ: [[WasmEdge]] / [[WAMR]]
- 関連 MOC: [[Software Engineering - MOC]] / [[System Engineering - MOC]]
## 出典
- [[@2024__EdgeSys__Stateful VM Migration Among Heterogeneous WebAssembly Runtimes for Efficient Edge-cloud Collaborations]](§1, §3.1.1, §4.1.1)
- [[@2025__Mid4CC__Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint-Restore in Edge-Cloud Continuum]](§3.1, §5.3)