envoyproxy/envoy

perf: consider allowing upstream connections to be shared by workers

Open

#8,702 opened on Oct 21, 2019

View on GitHub
 (11 comments) (0 reactions) (0 assignees)C++ (5,373 forks)batch import
area/httparea/perfdesign proposalhelp wanted

Repository metrics

Stars
 (27,997 stars)
PR merge metrics
 (Avg merge 8d) (378 merged PRs in 30d)

Description

The full silo model works out well in many cases, but in some cases (especially low memory) it may be better to allow a connection pool to be shared across the workers. This would cut down on the number of connections used, have greater connection pool hit rate, etc. at the expense of increased synchronization when the workers need to access the connection pool.

I think this could be implemented somewhat cleanly by allowing for a connection pool implementation that is shared across workers and uses its own processing thread.

This has already come up in discussion with @HenryYYang WRT to redis and I think @antoniovicente had also brought this up.

I'm opening this issue up for discussion as well as potentially a full design proposal if there is interest.

Contributor guide