-
Notifications
You must be signed in to change notification settings - Fork 3.8k
add query metrics for vsf mode #18727
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
Conversation
changes: * added `canLoadSegments()` method to `SegmentManager` and `SegmentCacheManager` * added 'query/load/time' metric for 'wall time' spent waiting on all segments to load for a query * added 'query/load/time/avg' metric for average per segment load time for a query * added 'query/load/time/max' metric for max per segment load time for a query * added 'query/load/wait/avg' metric for average per segment wait time to begin loading for a query * added 'query/load/wait/max' metric for max per segment wait time to begin loading for a query * added 'query/load/count' metric for number of segments loaded on demand for a query * added 'query/load/bytes' metric for amount of data loaded on demand for a query
|
While we're at it, do you think we could add an explicit segment scan time metric? That is, the time it takes to fully load a segment from disk into memory (the
This would help a LOT with understanding various bottlenecks of the system (and help break that kitchen sink |
gianm
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we should change the name of the metric query/load/time. It sounds very "clean" but it's actually the least clean metric in terms of future interpretability. Currently it means something like the amount of time the query was blocked waiting for segments to load. But in the future, we should be chunking and pipelining loading and execution. This will make the meaning of query/load/time increasingly murky.
How about calling it query/load/batch/time? That way, it's up to the execution model to define what a "batch" means and the interpretation of what it means to spend time "loading a batch".
The rest of the metrics generally LGTM.
We discussed this a bit offline, but for the sake of visibility for everyone else, Also to clarify, |
Description
changes:
canLoadSegments()method toSegmentManagerandSegmentCacheManager