チェックポイントとは?
ちぇっくぽいんと
チェックポイントとは、システムやプログラムの特定時点における状態を保存する仕組みで、障害発生時の復旧や処理の再開を可能にする重要な技術です。
チェックポイント(Checkpoint)は、コンピュータシステムやソフトウェアが、ある時点における処理状態・データ状態を永続的なストレージに記録する操作またはその仕組みを指します。障害や中断が発生した際に、チェックポイントまでの状態に戻って処理を再開(リカバリー)できるため、データの安全性と処理の継続性を確保する上で重要な役割を果たします。
チェックポイントはさまざまな分野で活用されています。
- データベース:トランザクションログと組み合わせてデータの整合性を保ち、クラッシュ後の復旧時間を短縮する(WALと連携したPostgreSQLのチェックポイント等)
- 機械学習・AI:長時間の学習(トレーニング)途中のモデルパラメータを保存し、中断後も途中から学習を再開できるようにする
- ゲーム:進行状態を保存するセーブポイントとして機能する
- 分散処理:HadoopやSparkなどで処理途中の状態を保存し、一部ノード障害時でも全体を再実行しなくてよくする
データベースのチェックポイントでは、メモリ上のダーティページ(未書き込みデータ)をディスクに書き出し、どこまで確実にディスクに反映されたかを記録します。これにより、障害後のロールフォワード(再適用)の範囲を限定でき、復旧時間を大幅に短縮することができます。
チェックポイントの頻度は、書き込みオーバーヘッドと復旧時間のバランスで設計する必要があります。頻度が高いほど復旧は速くなりますが、I/Oコストが増加します。
使い方・例文
深層学習のモデル訓練中に数エポックごとにチェックポイントを保存しておくと、途中でクラッシュしても最後のチェックポイントから学習を再開でき、長時間の計算を無駄にせずに済みます。
この用語をシェア
最終更新: