Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[AIRFLOW-5870] Allow -1 for infinite pool size #6520

Merged

Conversation

saguziel
Copy link
Contributor

@saguziel saguziel commented Nov 8, 2019

Make sure you have checked all steps below.

Jira

  • My PR addresses the following Airflow Jira issues and references them in the PR title. For example, "[AIRFLOW-XXX] My Airflow PR"
    • https://issues.apache.org/jira/browse/AIRFLOW-5870
    • In case you are fixing a typo in the documentation you can prepend your commit with [AIRFLOW-XXX], code changes always need a Jira issue.
    • In case you are proposing a fundamental code change, you need to create an Airflow Improvement Proposal (AIP).
    • In case you are adding a dependency, check if the license complies with the ASF 3rd Party License Policy.

Description

Adds the ability to create pools with size=-1, allowing infinite task usage, and allowing the used_slots to return without a db query.

To contextualize this change, we saw spiky DB queries since this has to query all RUNNING task instances, and each task instance that starts running needs to run this query, leading to an n^2 problem.

  • Here are some details about my PR, including screenshots of any UI changes:

Tests

  • My PR adds the following unit tests OR does not need testing for this extremely good reason: add test_infinite_slots

Commits

  • My commits all reference Jira issues in their subject lines, and I have squashed multiple commits if they address the same issue. In addition, my commits follow the guidelines from "How to write a good git commit message":
    1. Subject is separated from body by a blank line
    2. Subject is limited to 50 characters (not including Jira issue reference)
    3. Subject does not end with a period
    4. Subject uses the imperative mood ("add", not "adding")
    5. Body wraps at 72 characters
    6. Body explains "what" and "why", not "how"

Documentation

  • In case of new functionality, my PR adds documentation that describes how to use it.
    • All the public functions and the classes in the PR contain docstrings that explain what it does
    • If you implement backwards incompatible changes, please leave a note in the Updating.md so we can assign it to a appropriate release

@saguziel saguziel force-pushed the aguziel-2019-11-airflow-infinite-pool-apache branch 2 times, most recently from 147abe7 to da70f58 Compare November 8, 2019 01:48
Copy link
Member

@KevinYang21 KevinYang21 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🙏

@saguziel saguziel force-pushed the aguziel-2019-11-airflow-infinite-pool-apache branch 3 times, most recently from 0e330a9 to 2b774c7 Compare November 8, 2019 20:56
@codecov-io
Copy link

codecov-io commented Nov 8, 2019

Codecov Report

Merging #6520 into master will decrease coverage by 0.31%.
The diff coverage is 100%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #6520      +/-   ##
==========================================
- Coverage   84.08%   83.76%   -0.32%     
==========================================
  Files         635      635              
  Lines       36849    36851       +2     
==========================================
- Hits        30983    30867     -116     
- Misses       5866     5984     +118
Impacted Files Coverage Δ
airflow/models/pool.py 97.36% <100%> (+0.14%) ⬆️
airflow/kubernetes/volume_mount.py 44.44% <0%> (-55.56%) ⬇️
airflow/kubernetes/volume.py 52.94% <0%> (-47.06%) ⬇️
airflow/kubernetes/pod_launcher.py 45.25% <0%> (-46.72%) ⬇️
airflow/kubernetes/kube_client.py 33.33% <0%> (-41.67%) ⬇️
...rflow/contrib/operators/kubernetes_pod_operator.py 70.14% <0%> (-28.36%) ⬇️
airflow/jobs/local_task_job.py 85% <0%> (-5%) ⬇️
airflow/models/taskinstance.py 93.28% <0%> (-0.51%) ⬇️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 813cd43...5ceb0ff. Read the comment docs.

@saguziel saguziel force-pushed the aguziel-2019-11-airflow-infinite-pool-apache branch from 2b774c7 to 5ceb0ff Compare November 8, 2019 22:29
Copy link
Member

@potiuk potiuk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Really nice optimisation. I will also cherry-pick it to 1.10.*. However I will update the description so that it's clear it also optimises DB access.

@potiuk potiuk merged commit 4a12041 into apache:master Nov 10, 2019
potiuk pushed a commit that referenced this pull request Nov 11, 2019
potiuk pushed a commit that referenced this pull request Nov 12, 2019
eladkal pushed a commit to eladkal/airflow that referenced this pull request Dec 2, 2019
kaxil pushed a commit that referenced this pull request Dec 12, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants