Improve caching of current domain #17916
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Overview
The current domain is read dozens, sometimes hundreds of times per request, so it needs to have solid caching. This consolidates 4 different ways it was being cached (or in the case of api3, not cached) into one central spot.
Before
Current domain cached during bootstrap but never flushed in the event of changes.
Several other methods of reading the domain were used that bypassed that cache or used some other cache.
After
All centralized to one cache, which is automatically flushed by hook whenever updates are made (which is rare but important to respond to, and essential for unit tests)