mobile: performance improvements for significant number of virtual clusters
- Dominant language
- C++
- Stars
- 28.9k
- Forks
- 5.6k
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 428
Description
*Title*: *Implement performance improvements that would allow Envoy Mobile to run multiple hundreds of virtual clusters without performance impact to the app launch*
*Description*:
Adding hundreds of virtual clusters to Envoy Mobile results in negative performance impact to the application launch time (the negative performance impact was observer after adding 700-900 virtual clusters). An application may want to add a lot of virtual clusters if it's interested in tracking stats for multiple routes/endpoints. An application launch time is an important metric from the perspective of any mobile app.
There are multiple contributing factors in here:
1. JSON/YAML parsing being expensive https://github.com/envoyproxy/envoy/issues/24976
2. Regex matching in EM's config: https://github.com/envoyproxy/envoy/blob/fb48a7d2d41e6237640d73d5ec39d103feb8e73e/mobile/library/common/config/config.cc#L507-L508. It was discussed in https://github.com/envoyproxy/envoy/pull/24733.
3. Some further optimization that are being discussed/prototyped in https://github.com/envoyproxy/envoy/pull/24521
Contributor guide
Assessment
This issue has not been assessed yet.