-
Notifications
You must be signed in to change notification settings - Fork 590
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
perf: throughput of stateless query with no computation drops 20% over time #14815
Comments
Is it run against the nightly image? May related to this PR #14524 |
This one seems to be fine by looking at the recent two data points. the drop of throughput mostly happens a while ago |
Nexmark |
From the commit history of some spikes, I couldn't find any useful insights. 😟 It's also mysterious that after 0106 it's quite smooth. |
2024/02/04: |
may relate to https://github.com/risingwavelabs/risingwave/pull/13707/files#r1495536048 |
FYI: |
also, execute q0 with an old image As we can see from http://metabase.risingwave-cloud.xyz/question/36-nexmark-q0-blackhole-medium-1cn-affinity-avg-source-output-rows-per-second-rows-s-history-thtb-169?start_date=2023-08-28 the latest three execution of so we can conclude that the gap between the current nightly but the gap between |
a more detailed explanation We use a dedicated json parser for risingwave/src/connector/src/parser/mod.rs Lines 757 to 759 in beabcb2
It serves as a shortcut as it builds a json parser directly, which does not need to impl the access trait.risingwave/src/connector/src/parser/json_parser.rs Lines 112 to 144 in d616c1c
Other parsers, behave like the following risingwave/src/connector/src/parser/mod.rs Lines 775 to 779 in beabcb2
which requires concat a [&str] to find the right path to each field, leading to some serialization overheadrisingwave/src/connector/src/parser/unified/upsert.rs Lines 105 to 124 in beabcb2
after #13707, I deprecate the dedicated plain json parser and unified all format plain parts, resulting in the pref issue. |
I see. Agree that migrating from I am investigating the performance gap between risingwave/src/connector/src/parser/json_parser.rs Lines 127 to 128 in 6a14467
Thus, the only explanation is that |
Please check the micro-benchmark results in #16526 and slack threads (because SVG will be translated into PNG by Github automatically): In short, we compare the latest implementation of If there are no changes to |
Is it possible to refactor the code path into a chunk-based one? We have a delicate vectorized execution engine to amortize constant overhead but the source connector/parser is not part of it. |
Yes, subsequent investigation was handed over to @xxchan @BugenZhao. Any updates? |
Nexmark Q0 does 0 computation: https://github.com/risingwavelabs/kube-bench/blob/main/manifests/nexmark/nexmark-sinks.template.yaml#L14-L18
http://metabase.risingwave-cloud.xyz/question/36-nexmark-q0-blackhole-medium-1cn-affinity-avg-source-output-rows-per-second-rows-s-history-thtb-169?start_date=2023-08-28
Based on the CPU flame graph generated weekly, there seems to be significant refactoring in the source/parser:
https://buildkite.com/risingwavelabs/cpu-flamegraph-weekly-cron/builds?branch=main
The text was updated successfully, but these errors were encountered: