Skip to content
LakeBench
ProblemsCommunityPricing
Sign inStart practicing
Back
  1. Home
  2. Interview prep
  3. Metadata DB maintenance

Airflow & DAGs · Operating Airflow in Production

Metadata DB maintenance

Mediumairflow-68
metadata-dbdatabase-maintenanceairflow-db-cleanxcom

Question

Why does the Airflow metadata database grow, and how do you manage it?

Solution

The Airflow metadata database accumulates operational records over time, causing query latency, web UI timeouts, and scheduler dispatch delays unless regular database maintenance is performed.

Why the database accumulates bloat

Every workflow execution writes persistent records to the metadata database:

  • High-frequency DAGs: A DAG running every 5 minutes generates 288 DAG runs and thousands of task instances daily. In an enterprise deployment with 200 DAGs, millions of rows accumulate every month across task_instance, dag_run, task_fail, job, and log tables.
  • XCom payload bloat: If tasks return uncompressed dictionaries, file paths, or large strings, the xcom table expands rapidly, increasing PostgreSQL or MySQL table bloat and write-ahead log volumes.
  • Indexes become fragmented and query planners struggle to optimize scheduling loops, leading to UI loading spinners and scheduler starvation.

Routine pruning with airflow db clean

Airflow provides a built-in maintenance utility to archive and purge historical records:

# Deleting task instances and DAG runs older than 60 days
airflow db clean --clean-before-timestamp $(date -d "60 days ago" +%Y-%m-%d) --tables task_instance,dag_run,xcom,log --skip-archive

In production, teams deploy a dedicated system maintenance DAG that runs weekly to execute airflow db clean automatically, keeping table sizes bounded and query performance snappy.

Best practices for database stability

Follow these operational guidelines to keep the metadata database lean:

  • Never push large payloads into XCom. Store datasets in object storage and pass only small URI strings.
  • Always perform a full database snapshot before running database migrations (airflow db migrate) or performing Airflow version upgrades.
  • Run VACUUM ANALYZE (in PostgreSQL) or optimize tables (in MySQL) following large deletion batches to reclaim physical disk storage and update database query planner statistics.
PreviousNext