Bird
Raised Fist0
Apache Airflowdevops~5 mins

Airflow architecture (scheduler, webserver, executor, metadata DB) - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Airflow architecture (scheduler, webserver, executor, metadata DB)
O(n)
Understanding Time Complexity

We want to understand how the work done by Airflow's main parts grows as the number of tasks increases.

How does Airflow handle more tasks without slowing down too much?

Scenario Under Consideration

Analyze the time complexity of the scheduler checking and scheduling tasks.


from airflow import DAG
from airflow.operators.python import PythonOperator
from datetime import datetime
from time import sleep

def task_function():
    pass

dag = DAG('example_dag', start_date=datetime(2024, 1, 1))

n = 10  # example number of tasks
for i in range(n):
    task = PythonOperator(
        task_id=f'task_{i}',
        python_callable=task_function,
        dag=dag
    )

# Scheduler loop (simplified)
while True:
    tasks_to_schedule = get_ready_tasks(dag)
    for task in tasks_to_schedule:
        schedule_task(task)
    sleep(5)
    

This code shows a DAG with n tasks and a scheduler loop that checks which tasks are ready and schedules them.

Identify Repeating Operations

Look at what repeats as the scheduler runs:

  • Primary operation: Loop over all tasks to find those ready to run.
  • How many times: Once per scheduler cycle, repeating continuously.
How Execution Grows With Input

As the number of tasks (n) grows, the scheduler checks more tasks each cycle.

Input Size (n)Approx. Operations
10Checks 10 tasks each cycle
100Checks 100 tasks each cycle
1000Checks 1000 tasks each cycle

Pattern observation: The work grows directly with the number of tasks. More tasks mean more checks.

Final Time Complexity

Time Complexity: O(n)

This means the scheduler's work grows linearly with the number of tasks it manages.

Common Mistake

[X] Wrong: "The scheduler only checks a few tasks, so its work stays the same no matter how many tasks exist."

[OK] Correct: The scheduler must check all tasks to find which are ready, so more tasks mean more work each cycle.

Interview Connect

Understanding how Airflow's scheduler scales helps you explain system behavior and design choices clearly in real projects.

Self-Check

"What if the scheduler used a priority queue to track ready tasks instead of checking all tasks each cycle? How would the time complexity change?"

Practice

(1/5)
1. Which Airflow component is responsible for deciding when and which tasks to run?
easy
A. Scheduler
B. Webserver
C. Executor
D. Metadata Database

Solution

  1. Step 1: Understand the role of the scheduler

    The scheduler checks the workflow definitions and decides the timing and order of task execution.
  2. Step 2: Differentiate from other components

    The executor runs tasks, the webserver shows status, and the metadata DB stores info. Only the scheduler plans tasks.
  3. Final Answer:

    Scheduler -> Option A
  4. Quick Check:

    Task planning = Scheduler [OK]
Hint: Scheduler plans tasks; executor runs them [OK]
Common Mistakes:
  • Confusing executor with scheduler
  • Thinking webserver runs tasks
  • Assuming metadata DB schedules tasks
2. Which of the following is the correct way to start the Airflow webserver using the CLI?
easy
A. airflow webserver -p
B. airflow webserver start
C. airflow start webserver
D. airflow webserver

Solution

  1. Step 1: Recall the Airflow CLI command for webserver

    The correct command to start the webserver is simply airflow webserver.
  2. Step 2: Analyze other options

    airflow webserver start adds an unnecessary 'start', airflow start webserver reverses the order, and airflow webserver -p adds a port flag which is valid but incomplete without specifying the port number explicitly.
  3. Final Answer:

    airflow webserver -> Option D
  4. Quick Check:

    Start webserver = airflow webserver [OK]
Hint: Use 'airflow webserver' to start the UI [OK]
Common Mistakes:
  • Adding extra words like 'start'
  • Reversing command order
  • Incorrect or incomplete flags
3. Given the following Airflow setup: The scheduler triggers a task, the executor runs it, and the metadata DB records the status. What will happen if the metadata DB is down?
medium
A. Tasks will run but status won't be saved
B. Scheduler will stop scheduling tasks
C. Webserver will crash immediately
D. Executor will ignore tasks

Solution

  1. Step 1: Understand metadata DB role

    The metadata DB stores task states and workflow info. If it is down, Airflow components cannot read or write task status.
  2. Step 2: Impact on scheduler and executor

    The scheduler depends on the metadata DB to know which tasks to schedule. Without DB access, it cannot schedule new tasks. The executor waits for tasks from the scheduler.
  3. Final Answer:

    Scheduler will stop scheduling tasks -> Option B
  4. Quick Check:

    Metadata DB down stops scheduler [OK]
Hint: Metadata DB failure stops scheduler [OK]
Common Mistakes:
  • Thinking tasks run without DB
  • Assuming webserver crashes immediately
  • Believing executor ignores tasks
4. You notice that tasks are not running even though the webserver shows them as scheduled. Which component should you check first to debug this issue?
medium
A. Executor
B. Scheduler
C. Metadata Database
D. Webserver

Solution

  1. Step 1: Analyze symptoms

    Tasks are marked scheduled in the webserver UI but are not running. This means scheduling is done but execution is not happening.
  2. Step 2: Identify responsible component

    The executor runs the tasks. If tasks are scheduled but not running, the executor might be stuck or misconfigured.
  3. Final Answer:

    Executor -> Option A
  4. Quick Check:

    Tasks not running? Check executor [OK]
Hint: Scheduled but not running? Check executor first [OK]
Common Mistakes:
  • Checking scheduler when scheduling works
  • Restarting webserver unnecessarily
  • Ignoring executor logs
5. In a distributed Airflow setup, which component must be shared and accessible by both the scheduler and executor to coordinate task execution properly?
hard
A. Webserver
B. Local task logs
C. Metadata Database
D. Scheduler's local cache

Solution

  1. Step 1: Understand distributed setup needs

    In distributed Airflow, multiple executors and schedulers may run on different machines.
  2. Step 2: Identify shared resource for coordination

    The metadata database stores task states and is the central point both scheduler and executor use to coordinate which tasks to run and their status.
  3. Step 3: Exclude other options

    The webserver is for UI only, local logs are not shared, and scheduler's local cache is not accessible by executors.
  4. Final Answer:

    Metadata Database -> Option C
  5. Quick Check:

    Shared coordination = Metadata DB [OK]
Hint: Metadata DB is central shared store in distributed Airflow [OK]
Common Mistakes:
  • Thinking webserver shares task state
  • Assuming local logs are shared
  • Believing scheduler cache syncs executors
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard