-
Notifications
You must be signed in to change notification settings - Fork 158
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
Client Side Caching with Otter #490
Comments
@rueian provide an option to use https://github.com/phuslu/lru? meaning for cache write intensive workload, better to use phuslu, for read intensive, better to use otter |
@ouvaa Do you have insights on why phuslu is better at write? |
Hi @ouvaa, rueidis is read intensive but writes should be prioritized. |
@rueian Do you have a work in progress branch with otter we can test with? |
Hi @sshankar, sorry for my late reply. Unfortunately, my progress on this is currently paused. I haven't finished adding What makes you interested in otter? |
Otter is a high performance lockless cache which uses proactive ttl and s3-fifo eviction policies.
Lockless is an important property that redis server-assisted client-side caching needs because the invalidation messages from redis should be applied as fast as possible. Applying invalidation messages should be the first priority if possible.
But in the current implementation, the pipelining goroutine handing invalidation messages competes with other reader goroutines to acquire the LRU lock. This will delay the invalidations and further block the pipeline. Using otter can solve this.
The text was updated successfully, but these errors were encountered: