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

Story: implement cross-cutting caching strategy #1173

Closed
1 of 2 tasks
paullatzelsperger opened this issue Apr 19, 2022 · 2 comments
Closed
1 of 2 tasks

Story: implement cross-cutting caching strategy #1173

paullatzelsperger opened this issue Apr 19, 2022 · 2 comments
Assignees
Labels
core feature dpf Feature related to the Data Plane Framework enhancement New feature or request policy question Further information is requested story Overarching issue with linked sub-issues
Projects
Milestone

Comments

@paullatzelsperger
Copy link
Member

paullatzelsperger commented Apr 19, 2022

Feature Request

Various data backends we have ("*stores") should have a caching layer to reduce communication with the actual database and to speed up requests to the connector.

Which Areas Would Be Affected?

All data backends

Why Is the Feature Desired?

The main drivers for this feature request are:

  1. access time: keeping certain objects in - and accessing them from - memory will speed up request turnaround times greatly.
  2. implementation simplicity: things like filtering and sorting can be implemented in a generic and much easier way when operating on a memory-based collection as opposed to: a database table.

Solution Proposal

I propose devising a caching mechanism with interchangeable eviction strategies, that allow for adapting this to particular needs, and even delegate out to dedicated cache services such as Redis, which may come in handy in clustered environments.
Several implementations could come out-of-the-box:

  • write-through: every write hits the cache and the data backend, every read only hits the cache. only suitable for smaller collections
  • batch-write ("write back"): similar to write-through, only persists cache periodically.
  • ringbuffer: only a certain amount of elements is held in memory and "old" elements get evicted. Eviction could happen due to age or access frequency. Suitable for very large collections, e.g. the AssetIndex.
  • shared cache: delegation to e.g. a Redis service. Best for clustered deployments.

Type of Issue

Improvement Story

THIS IS NOT YET READY FOR DEVELOPMENT, NEEDS FURTHER DETAILS

Checklist

  • assigned appropriate label?
  • Do NOT select a milestone or an assignee!
@paullatzelsperger paullatzelsperger added enhancement New feature or request good first issue Good for newcomers labels Apr 19, 2022
@paullatzelsperger paullatzelsperger added this to the Milestone 4 milestone Apr 19, 2022
@paullatzelsperger paullatzelsperger removed the good first issue Good for newcomers label Apr 19, 2022
@paullatzelsperger paullatzelsperger self-assigned this Apr 19, 2022
@github-actions github-actions bot added this to Backlog in Connector Apr 19, 2022
@paullatzelsperger paullatzelsperger added core feature dpf Feature related to the Data Plane Framework story Overarching issue with linked sub-issues question Further information is requested policy labels Apr 19, 2022
@paullatzelsperger paullatzelsperger removed this from the Milestone 4 milestone May 16, 2022
@github-actions
Copy link

This issue is stale because it has been open for 28 days with no activity.

@github-actions github-actions bot added the stale Open for x days with no activity label Jun 14, 2022
@paullatzelsperger paullatzelsperger added this to the Milestone 6 milestone Jun 14, 2022
@paullatzelsperger paullatzelsperger removed the stale Open for x days with no activity label Jun 14, 2022
@juliapampus juliapampus modified the milestones: Milestone 6, Backlog Jul 18, 2022
@github-actions
Copy link

This issue is stale because it has been open for 28 days with no activity.

@github-actions github-actions bot added the stale Open for x days with no activity label Jun 24, 2023
@juliapampus juliapampus removed the stale Open for x days with no activity label Jun 26, 2023
@paullatzelsperger paullatzelsperger closed this as not planned Won't fix, can't repro, duplicate, stale Aug 2, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
core feature dpf Feature related to the Data Plane Framework enhancement New feature or request policy question Further information is requested story Overarching issue with linked sub-issues
Projects
No open projects
Connector
  
Open
Development

No branches or pull requests

2 participants