Having said that, DF also has a novel caching algorithm that should provide better hit rate with less memory consumption.
Having said that, DF also has a novel caching algorithm that should provide better hit rate with less memory consumption.
Get/set operations look like they don't need it.
This is our initial release and we just did not have resources to showcase everything under different scenarios. Having said that, if you open an issue with a suggestion of a benchmark that you would like to see I will try to run soon...
Anyway, I wrote lots of unit tests to cover those atomicity issues. You can also write a custom python/nodejs/golang/... scripts that simultenusly write and read from the same multiple keys in such way that some invariant is preserved. For example, "mset x {i}, y {i}" for random `i` and in parallel do "mget x y" and to check that the response returns same values. You can also test this for other families using transactions like "MULTI; lpush x ${foo}; lpush y ${foo}; EXEC" .. and then similarly test that x and y have exactly the same lists.
I wonder if there could be a tool that instruments in the same way that afl does to try to detect races or inconsistent states.