Cost-based workload routing
How should queries be routed to engines, and which way should the router err?
Route the query to the cheapest engine that can serve it: small queries to a small warehouse or a single-node engine, large scans to the distributed one. This is admission control with a destination. It needs the same missing number (how big is this query?), with the same escape: route on cheap early features (estimated bytes, partition count, number of joins) rather than a true cost model. And bias the classifier toward the failure you can afford:
- Misrouting big work to a small engine fails loudly and late.
- Misrouting small work to a big engine merely overpays.
Bias toward the big engine, and the mistake becomes recoverable.
Route on cheap evidence, and bias the classifier toward the failure mode you can afford.