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
Question about distributed query exection in Thanos #405
Comments
@fpetkovski please correct me if I'm wrong. The approach that this repo takes is basically tailored to the situation where you have a natural sharding key (i.e. your leaf queriers are all distinguished by some region label) that you can shard aggregations with. That kinda corresponds to your images if you replace "partition=N" by "region=region_N". |
Let me try to summarize my understanding of the approach in Thanos. Please correct me if I'm wrong.
The difference between this approach and the POC approach is that in the sub query results are never fully materialized.
In Cortex, we're discussing about using this approach and I'm curious to understand if there are any trade offs. I'm also interested in learning what the Thanos community feels about this approach. |
The query planner embedded in query-frontend in Cortex would use the The output of the planner is I think these are the main differences between the approach in Thanos and the POC approach:
|
I recently did a proof of concept for distributed query execution using the Thanos promql-engine in Cortex. In my POC, I followed the methods outlined in https://howqueryengineswork.com/13-distributed-query.html.
How did the POC work?
I'll try to outline at a high level how the POC worked.
Series()
andNext()
on the child queriers and streams the series and the step vectors directly from the child queriersQuery plan
Original query:
count({__name__=~".+"})
Fragmented plan
Each of the fragments are denoted in a different color.
Comparing to the Thanos approach
The original proposal in Thanos for distributed query execution tackles this problem in a different way:
Questions
The text was updated successfully, but these errors were encountered: