-
Notifications
You must be signed in to change notification settings - Fork 26
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
useless MaxMemory #167
Comments
@goupdate what eviction policy have you set? With |
nothing. default.
Thats totally incorrect. "MAX memory" is parameter (by its name) to set barrier for library to set UPPER memory limit. So if your logic based only on evictions, then "MaxMemory" is not "MAX" memory limit usage as LRU and other libs do, it's something other. Without real MaxMemory limit we cant use this library. It should not skip storing data. NoEvictions - maybe in memory? |
@goupdate that's not incorrect. Read what @kelvinmwinuka wrote, and read it carefully. |
@goupdate I write LSM tree's what are you talking about max memory? You always set the memory you want to use(for runs to disk). In this has what Kelvin is saying is right. It's safe based on his systems logic. If you want another solution use log structured. |
@goupdate you mention redis and then leveldb. Their completely different mate. |
Don't take anything I'm saying the wrong way, I'm telling you this so you can learn. Have a good day. |
i know guys. But here i created default build-in server, set MaxMemory to 10240 and expect library never runs out of 10KB RAM just storing new values after filling up 10kb, to the drive, but it skips. It should not do so! |
If im wrong, ok, there are ways how to do this in redis (is this alias-clone or no?) or in sugardb or on other forks of redis. |
That's different. That's offloading to disk. I don't know if they have that option. Yes I agree this is more for cache though @goupdate. |
If you want memory and disk you're looking for an LSM tree. |
Are you looking for embedded storage with no redis capabilities? @kelvinmwinuka I think you should add the offloading if you have it, I'm not sure. Redis does have offloading I believe. This is different than log structured approaches though mind you both. |
sure, LSM tree. by description MaxMemory seems to be that, but it doesn't. I have tested this lib to add to my projects, but hopelessly should skip it, need build-in redis analog like LRU lib https://github.com/MasterDimmy/golang-lruexpire with offloading like LSM tree as you mensioned. |
True, yeah @kelvinmwinuka you might have to implement a write ahead log to turn those blocked writes somewhere temporarily. @goupdate true, yeah I'm not sure. I'm not the Redis guy, lsm guy. |
https://github.com/facebook/rocksdb LSM trees to fix redis lacks of this are going on, but i can't see build-in solutions for golang yet. |
maybe some usefull things from this? https://github.com/JyotinderSingh/goLSM it has what this needs. |
@goupdate @guycipher offloading to disk is not a planned feature anytime soon. |
config param MaxMemory is used to dump all data from memory when its exhausted, but it doesnt, just writes limit is reached and do nothing:
instead of this its usefull to make it memory-work-set, all other data should stored in file / snapshot / aof file and be searching in mem and there.
The text was updated successfully, but these errors were encountered: