openSUSE / salt

openSUSE and SUSE patches and backports for SaltStack
Apache License 2.0
22 stars 52 forks source link

Speed up salt.matcher.confirm_top by using __context__ #647

Closed vzhestkov closed 5 months ago

vzhestkov commented 5 months ago

What does this PR do?

Backport of https://github.com/saltstack/salt/pull/66494

In case of having complex top.sls with a list of different matchers based on grains/pillars etc. it could be possible that salt will reload matchers again and again for all of the possible matches in top.sls, this fix is intended to speed up the pillar renderer by reusing he matchers loaded once and stored in the __context__.

What issues does this PR fix or reference?

Tracks: https://github.com/SUSE/spacewalk/issues/23526

Previous Behavior

If there is a list of different matches in top.sls for pillar it could take much time to render pillar data on _pillar calls from the minions.

New Behavior

Each next call for rendering the pillar will reuse the matchers from the __context__ so it will significantly speed up the calls.

Merge requirements satisfied?

[NOTICE] Bug fixes or features added to Salt require tests.

Commits signed with GPG?

Yes/No

Please review Salt's Contributing Guide for best practices.

See GitHub's page on GPG signing for more information about signing commits with GPG.