envoyproxy/envoy

Combine SDS streams to the same server

Open

#10,793 建立於 2020年4月15日

在 GitHub 查看
 (9 留言) (0 反應) (0 負責人)C++ (5,373 fork)batch import
area/xdsenhancementhelp wanted

倉庫指標

Star
 (27,997 star)
PR 合併指標
 (平均合併 8天) (30 天內合併 378 個 PR)

描述

Title: Combine SDS streams to the same server

Description: When Envoy requires multiple SDS resources from the same SDS server, it currently creates a separate stream for each one, rather than creating a single stream and requesting all resources on that stream. It should instead do the latter, since this avoids a lot of per-stream overhead.

A few notes:

  • This problem does not occur if SDS comes from ADS. It is only a problem when not using ADS for SDS.
  • If the SDS server is a GoogleGrpc service, Envoy actually creates not just a separate stream but also a separate gRPC channel for each resource. However, gRPC internally shares connections between channels, so this doesn't actually result in multiple connections, just multiple streams.
  • This is basically the same problem reported in #2943, but that issue is for EDS and this one is for SDS. Ideally, we should have the same solution to both problems by solving this generically for any xDS API.

CC @htuch

貢獻者指南