Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Status

Page properties


StateDraft
Discussion Thread
JIRA
Created

Created


Motivation

Launching of tasks is quite expensive. We launch 2 airflow managers (LocalTaskJob and — raw task) and 6 processes (<user shell> → "bash -c" → "python"). We can just rely on executing "airflow" directly as the unix kernel's program loader is responsible for doing this. When exec() is called, it asks the kernel to load the program from the file at its argument. It will then check the first 16 bits of the file to see what executable format it has. If it finds that these bits are #! it will use the rest of the first line of the file to find which program it should launch, and it provides the name of the file it was trying to launch (the script) as the last argument to the interpreter program

...