envoyproxy / envoyproxy/envoy

mobile: performance improvements for significant number of virtual clusters

Open
#24,978 4 comments 0 reactions 0 assignees View on GitHub
enhancement mobile no stalebot
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.