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

Evaluate replacing ristretto with theine-go #1979

Closed
jzelinskie opened this issue Jul 8, 2024 · 0 comments · Fixed by #1990
Closed

Evaluate replacing ristretto with theine-go #1979

jzelinskie opened this issue Jul 8, 2024 · 0 comments · Fixed by #1990
Labels
area/perf Affects performance or scalability kind/proposal Something fundamentally needs to change

Comments

@jzelinskie
Copy link
Member

Problem Statement

Ristretto is non-ideal for a bunch of reasons:

  • Ristretto is somewhat unmaintained; there are some ex-dgraph folks under the organization outcaste-io triaging but not actively developing.
  • Major users like Vitess have replaced it.
  • I've now seen both the theine and otto developers very much so struggle to reproduce ristretto's benchmarks leading me to believe our usage could also be misconfigured leading to significantly worse performance. This comment recently caught my attention
  • Ristretto doesn't support Go's generics
  • Ristretto doesn't implement all of the things that make Caffeine (the premier java tinylfu implementation) perform optimally

Solution Brainstorm

Support theine or otto using our cache interface and a hidden feature flag until we can confirm performance and deprecate ristretto

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/perf Affects performance or scalability kind/proposal Something fundamentally needs to change
Projects
None yet
1 participant