diff options
author | James E. Blair <jim@acmegating.com> | 2023-02-23 15:41:51 -0800 |
---|---|---|
committer | James E. Blair <jim@acmegating.com> | 2023-02-23 15:47:09 -0800 |
commit | 451da2a505fed3384cac5391c3caab3edae2cb61 (patch) | |
tree | 60d7aa6c39ef3b1ad4b2a3b10d628fe1444d8861 /tests/unit/test_circular_dependencies.py | |
parent | 48ad958bb4e37e165b422daaaefb59d0ab708306 (diff) | |
download | zuul-451da2a505fed3384cac5391c3caab3edae2cb61.tar.gz |
Optimize layout generation with many job variants
Systems with very large numbers of job variants can suffer slow
performance due to inefficiencies in layout generation. This change
updates two locations to be more efficient:
1) When adding a job variant, we check to make sure that the variant
we are adding is from the same repo as all the previous variants.
Due to the transitive property of this check, we only need to compare
the new variant to one of the prior variants, not all of them.
2) When validating references on a job variant, we created 3 list
comprehensions with all of the variant's parents which matched certain
criteria. Since most variants match all three criteria, if we
short-circuit this check as soon as all three criteria have been
satisfied, we can complete the process much sooner.
Change-Id: Iaa9cd663581b3b888fb1ee95c0c25a3484d3e828
Diffstat (limited to 'tests/unit/test_circular_dependencies.py')
0 files changed, 0 insertions, 0 deletions