You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Running TPC-H locally, I see >3% of on-CPU time spent in comet::execution::metrics::utils::update_comet_metric. This function appears to be called whenever native execution wakes up in the polling loop, typically to produce a batch. Starting from the root of the plan, the preorder traversal behavior is:
For every metric in the node:
JNI call to allocate a string for the metric's name
JNI call to update the metric using the string as the key
For every child in the node:
JNI call to fetch child metric node
Recursively call update_comet_metric
Describe the potential solution
There are a few things to explore:
Does reducing the granularity of metrics updates affect the correctness of these metrics? If not, we could update metrics less frequently.
What is the problem the feature request solves?
Running TPC-H locally, I see >3% of on-CPU time spent in
comet::execution::metrics::utils::update_comet_metric
. This function appears to be called whenever native execution wakes up in the polling loop, typically to produce a batch. Starting from the root of the plan, the preorder traversal behavior is:update_comet_metric
Describe the potential solution
There are a few things to explore:
Can we eliminate the overhead of repeatedly allocating strings via JNI for every metric?Addressed in perf: Cache jstrings during metrics collection #1029.Additional context
No response
The text was updated successfully, but these errors were encountered: