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

Implement cache #4427

Closed
dragonchaser opened this issue Aug 22, 2022 · 6 comments
Closed

Implement cache #4427

dragonchaser opened this issue Aug 22, 2022 · 6 comments
Assignees
Labels
Priority:p2-high Escalation, on top of current planning, release blocker

Comments

@dragonchaser
Copy link
Member

We need a cache that replaces our current in-memory approach that is causing issues (see: #4251) and has been disabled for now (see: cs3org/reva#3167).
We should introduce a go-micro store interface to be able to swap out the cache implementation as necessary (e.g. nats, go-micro...)

@micbar
Copy link
Contributor

micbar commented Aug 22, 2022

@jvillafanez started this already in #4337

@michl19
Copy link
Contributor

michl19 commented Aug 22, 2022

This ticket concerns Reva. #4337 is about oCIS

@michl19 michl19 added this to the 2.0.0 General Availability milestone Aug 22, 2022
@micbar micbar added GA-Blocker Priority:p2-high Escalation, on top of current planning, release blocker labels Sep 14, 2022
@butonic
Copy link
Member

butonic commented Sep 20, 2022

cache-store-invalidation drawio

  • Datagateway needs to invalidate cache after successful PUT / upload
  • InitiateFileUpload dous not need to invalidate cache

@jvillafanez
Copy link
Member

Datagateway needs to invalidate cache after successful PUT / upload

What if the datagateway sends a notification to the gateway so it's the gateway the one invalidating the cache? This way, the gateway keeps the ownership of the cache and no other services need to access nor modify that cache.

The alternative could be to implement a StatCache component to own the cache, so both the gateway and datagateway services can use it in the same way the role manager is being used now. The risk in this case is that the StatCache component must be backed up by the same cache.

The first approach seems to be better. Even if the gateway uses an isolated in-memory cache the cache would still work because it will be the gateway the one invalidating the cache

@butonic
Copy link
Member

butonic commented Sep 21, 2022

Currently Reva has no event bus. only ocis has. Which is why I went with the StatCache (and other) shared implementations: cs3org/reva#3250

@butonic
Copy link
Member

butonic commented Sep 26, 2022

#4627 got merged

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Priority:p2-high Escalation, on top of current planning, release blocker
Projects
Archived in project
Development

No branches or pull requests

5 participants