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
JSON.ARRAPPEND: cpu bound #295
Comments
@mhaberler can you share more details about the data, the specific arguments used on JSON.ARRAPPEND and version of RedisJSON? |
will try to reproduce in an example |
here it is: https://github.com/mhaberler/rejson-perf it does 100 arrappends/s on a json object let it run for a few minutes and watch the CPU usage of the redis server - it will eventually max out a core similar results on MacOS and Debian buster good luck! actually I'd be interested to learn how you tackle such a problem. My first thought would be profiling the redis-server, but I am fuzzy how that would work with a rust module |
any progress on this issue? That'd be a release stopper bug in my book |
Hi there @mhaberler, sorry for the delay on this ( Was focusing on RedisConf related work and completely missed this one -- mea culpa :) ). |
thanks for the update - really hope this gets fixed or I need to look for an alternative |
@mhaberler confirmed that this is a very good use-case to profile further. Initial analysis steps
|
TODOs that will provide right away @mhaberler: |
boy, did I pick the right command :-) |
@gkorland @rafie this is indeed a regression ( comparing master v1.0.7 Results ( Use the following RDB:
master version results ( Use the following RDB:
PS: to properly detect the on-cpu hotspots I've changed the build rule to:
Used HW: Hardware platform: A physical HPE ProLiant DL380 Gen10 Server, with one Intel(R) Xeon(R) Gold 6230 CPU @ 2.10GHz, Maximum memory capacity of 3 TB, disabling CPU Frequency Scaling and with all configurable BIOS and CPU system settings set to performance. |
@mhaberler while we sort the current master version regression can you proceed with version 1.0.7 ? This regression should not be visible there. WDYT? |
@mhaberler notice that #324 deeply improves the performance of the operation. |
will have a look |
I'm using JSON.ARRAPPEND to append GeoJSON features as they are received to a GeoJSON LineString coordinates array and corresponding properties
array length are < 5000
redis-server becomes CPU-bound in this method (all top 10 ops reported by SLOWLOG get are JSON.ARRAPPEND)
any suggestions?
The text was updated successfully, but these errors were encountered: