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
50% system perf regression in memtable reader #9502
Comments
I identified the issue. This patch fixes it:
I will submit it in a moment. The issue was, that one of the parameters was of type |
Functions `upper_bound` and `lower_bound` had signatures: ``` template<typename T, typename... Args> static rows_iter_type lower_bound(const T& t, Args... args); ``` This caused a dacay from `const schema&` to `schema` as one of the args, which in turn copied the schema in a fair number of the queries. Fix that by setting the parameter type to `Args&&`, which doesn't discard the reference. Fixes scylladb#9502
Perhaps we should make schema::schema(const schema&) private and expose it as schema::clone(). This ensures that there are no accidental copies. |
No vulnerable branches, not backporting. |
Functions `upper_bound` and `lower_bound` had signatures: ``` template<typename T, typename... Args> static rows_iter_type lower_bound(const T& t, Args... args); ``` This caused a dacay from `const schema&` to `schema` as one of the args, which in turn copied the schema in a fair number of the queries. Fix that by setting the parameter type to `Args&&`, which doesn't discard the reference. Fixes scylladb#9502 Closes scylladb#9507 (cherry picked from commit 9caf85f)
perf_simple_query --smp 1 shows a 50% performance drop after d8832b9. Maybe it's copying schema objects or something.
The text was updated successfully, but these errors were encountered: