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

Eviction do it mvcc style #5414

Closed
jonathandelanders opened this issue Oct 3, 2018 · 6 comments
Closed

Eviction do it mvcc style #5414

jonathandelanders opened this issue Oct 3, 2018 · 6 comments

Comments

@jonathandelanders
Copy link

jonathandelanders commented Oct 3, 2018

I would just like to say that this is one bad ass piece of software. Keep up the good work.

So as a feature request... it would be better for us if your LRU instead of removing the key actually just made it invisible similar to how postgres treats old rows. I'm not talking about versioning or anything just don't delete it but hide it from the results. And provide a "VACUUM" style command like postgres to clean up the expired keys. oh also, having an option to persist and replicate the LRU via RDB would be amazing as well. In other words the slave would inherit the LRU of the master which it received the RDB from. I understand some users wouldn't want it so making it an option would be cool.

I know thats a tall order but for my use case this would be an amazing feature. The inspiration comes from the fact that there is internal latency caused by the eviction itself slowing reads overall on the shard. Thank you.

@itamarhaber
Copy link
Member

itamarhaber commented Oct 3, 2018

Hello @jonathandelanders

Just making sure that you are aware of the "new" (v4+) lazy/async features, including expiry's (lazyfree-lazy-expire configuration directive, defaults to no) - is that in use by the system/shard that is your muse?

Side thought/question: is lazyfree-to-be-freed memory reported somehow (aside from overall usage)?
EDIT: yes, INFO has the lazyfree_pending_objects metric.

@jonathandelanders
Copy link
Author

wow that is exactly what I need i should have researched it first. I found the option in redis.conf but very little documentation. Where can i learn more about the option? Also I have been delaying my redis 4.x upgrade due to stability issues in the change log for quite some time. My 3.x cluster is very stable so i have not needed to upgrade.

@itamarhaber
Copy link
Member

wow that is exactly what I need i should have researched it first.

I get that with most of my "original" good ideas :P

I found the option in redis.conf but very little documentation. Where can i learn more about the option?

I find the .conf file actually quite verbose in terms of documentation - it is usually my first stop, before going to the docs (and diving into the code laterz perhaps :P).

Reviewing the docs, I can see several shortcomings with how laziness is documented - I've opened a new issue for that just now (redis/redis-doc#991), so please feel free to contribute.

Some more info on lazy free:

@jonathandelanders
Copy link
Author

I agree also the redis.conf is quite verbose on everything. This is the first time i have noticed missing documentation. Anyways I admit i should have probably checked the changelog before posting. This is a good feature for certain use cases of redis.

@trevor211
Copy link
Collaborator

It seems that this issue can be closed. @itamarhaber @jonathandelanders

@itamarhaber
Copy link
Member

Thanks @trevor211 - closing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants