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

!!! FEATURE: Introduce flushByTags to taggable cache backends #2717

Closed
Sebobo opened this issue Mar 2, 2022 · 0 comments · Fixed by #2718
Closed

!!! FEATURE: Introduce flushByTags to taggable cache backends #2717

Sebobo opened this issue Mar 2, 2022 · 0 comments · Fixed by #2718
Assignees
Labels

Comments

@Sebobo
Copy link
Member

Sebobo commented Mar 2, 2022

Description

Currently only flushByTag is supported. This is highly inefficient for large amount of tags to be flushed.
By introducing flushByTags each cache backend can have an optimised implementation on how to flush them with the least amount of calls to the underlying storage (Redis, PDO, files, etc.).

This change does not optimise anything yet and only internally calls flushByTag in a loop, as any improvements will be done in separate PRs for the individual cache backends.

@Sebobo Sebobo added the P: Cache label Mar 2, 2022
@Sebobo Sebobo self-assigned this Mar 2, 2022
Sebobo added a commit to Sebobo/flow-development-collection that referenced this issue Mar 2, 2022
This change introduces the `flushByTags` method to taggable cache backends. This allows each backend to be further optimised in the future to find the best way to flush multiple tags from its storage.

Resolves: neos#2717
Sebobo added a commit to Sebobo/flow-development-collection that referenced this issue Mar 2, 2022
With this change the `flushByTags` is optimised to run
in batches. The maximum batch size can and should be
configured based on the used data source.

This change relies on the interface changes in neos#2717
Repository owner moved this from In Progress to Done in @Sebobo's cache backend flushing optimisation project Mar 18, 2022
Sebobo added a commit to Sebobo/flow-development-collection that referenced this issue Mar 18, 2022
With this change the `flushByTags` is optimised to run
in batches. The maximum batch size can and should be
configured based on the used data source.

This change relies on the interface changes in neos#2717
Sebobo added a commit to Sebobo/flow-development-collection that referenced this issue Mar 18, 2022
With this change the `flushByTags` is optimised by only reading the list of cache files once for all entries to be flushed instead of reading it for each entry.

This change relies on the interface changes in neos#2717
Sebobo added a commit to Sebobo/flow-development-collection that referenced this issue Mar 21, 2022
With this change the `flushByTags` is optimised by only reading the list of cache files once for all entries to be flushed instead of reading it for each entry.

This change relies on the interface changes in neos#2717
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Development

Successfully merging a pull request may close this issue.

1 participant