Mostly HarmlessState & fault tolerance

Savepoint

A savepoint is a snapshot you take on purpose: manual and self-contained, for upgrades, rescales and migrations.

Savepoint - a checkpoint taken on purpose: the savepoint Flink jobs trigger by hand before an upgrade, a rescale or a migration, rather than on a timer for crash recovery. Same photograph, different reason. A checkpoint answers "what if the machine dies"; a savepoint answers "what if I want to change the job and keep its state".

Mechanically it is a complete, self-contained snapshot of state and source offsets, written to durable storage on request, that a later job can start from. That is why it carries stricter compatibility rules than a crash checkpoint: the new job has to understand the old state's layout, or the handover fails. Flink treats the two as separate lifecycles, checkpoints owned by the runtime, savepoints owned by you.

Do you need it? The idea, yes. A snapshot you own, taken at a moment you chose, is how a stateful job survives planned change without losing a week of aggregates. In ubik the noun collapses back into checkpoint: a checkpoint is already one file you can copy and keep, --stop-after takes one deliberately and stops, and any later --resume picks it up, same query enforced. One word fewer to learn.

Sources

Related