Dictionary

Checkpointing

Checkpointing slaat tussentoestand op, zodat een job, stream of algoritme na een fout kan hervatten zonder helemaal opnieuw te beginnen.

Wat is checkpointing?

Checkpointing betekent dat een systeem tussentoestand opslaat. Als een job faalt, kan ze verdergaan vanaf zo'n checkpoint in plaats van helemaal opnieuw te beginnen.

Je ziet checkpointing vaak bij streaming data, lange Spark-jobs en iteratieve algoritmes. Het systeem bewaart bijvoorbeeld welke events al verwerkt zijn, welke state bij een aggregatie hoort of hoe ver een berekening geraakt is.

Een checkpoint is dus het geheugen van een lopend proces.

Checkpointing in Spark

In Apache Spark kan checkpointing twee dingen doen. Bij streaming bewaart Spark metadata en state zodat een stream kan herstellen. Bij DataFrames kan een checkpoint de lineage afknippen: de lange keten van transformaties wordt vervangen door een opgeslagen tussenresultaat.

In PySpark ziet dat er bijvoorbeeld zo uit:

spark.sparkContext.setCheckpointDir("/mnt/checkpoints")
stable_df = transformed_df.checkpoint()

De checkpointlocatie moet betrouwbaar zijn. Een lokale tijdelijke map is geen goed herstelpunt als de machine verdwijnt.

Checkpointing versus cache

Cache bewaart data om hergebruik sneller te maken. Checkpointing bewaart toestand om herstel of kortere lineage mogelijk te maken.

Een cache mag verdwijnen. Dan rekent het systeem de data opnieuw uit. Een checkpoint gebruik je net omdat je een stabiel herstelpunt wil.

Wanneer gebruik je checkpointing?

  1. Stateful streaming. Je telt events per klant of houdt vensters bij doorheen de tijd.

  2. Lange pipelines. Een fout op het einde mag niet betekenen dat alles opnieuw moet.

  3. Iteratieve algoritmes. Lineage wordt anders lang en duur om te herstellen.

  4. Exactly-once verwerking. Checkpoints helpen bijhouden wat al verwerkt is.

Wat kost checkpointing?

Checkpointing vraagt opslag en tijd. Te vaak checkpointen maakt elke run trager. Te weinig checkpointen maakt herstel zwaar. Het juiste interval hangt af van de kost van opnieuw verwerken, de foutkans en de grootte van de state.

In streaming is de keuze ook operationeel: checkpoints moeten blijven bestaan zolang je de stream met dezelfde state wil hervatten.

Waar moet je op letten bij checkpointing

  • Gebruik betrouwbare opslag. Kies opslag die een worker- of nodefout overleeft.

  • Bewaar configuratie samen met de job. Een checkpoint hoort bij dezelfde query- en state-definitie.

  • Ruim oude checkpoints bewust op. Weggooien kan betekenen dat je opnieuw moet starten.

  • Verwar het niet met backup. Een checkpoint helpt een job herstellen, niet je volledige databron.

Laatst Bijgewerkt: July 9, 2026 Terug naar Woordenboek
Trefwoorden
checkpointing apache spark streaming data watermark datapijplijn data freshness dataops foutafhandeling