area/httpdesign proposalhelp wanted
仓库指标
- Star
- (27,997 star)
- PR 合并指标
- (平均合并 8天) (30 天内合并 378 个 PR)
描述
The existing Envoy RouteConfiguration must be evaluated linearly and contains match criteria with hard to predict execution time (regular expressions). For scale-up Envoy instances where very large route configurations for a host may be present (let's say O(1m)) or multi-tenant Envoy instances, this becomes problematic.
There are many ways this could be solved:
- Envoy could optimize based on presented configuration, for example a trie could be recovered from repeated patterns or a specific match order. This is challenging if the existing linear semantics are to be preserved and involves Envoy complexity.
- We could have variants of regular expressions, e.g. prefix/suffix/glob or RE2 that are cheaper and more predictable to evaluate.
- We could have a parallel
RouteConfigurationwith trie-like semantics, where evaluation order is designed for efficiency.
Some combination of (2) and (3) seems likely to yield a clean solution IMHO, but I'm keen to hear from others.
@jmarantz @mattklein123 @dmitri-d @yanavlasov