Hi all,

Ian proposed a radical new plaintext CID algorithm for for quic-lb. I
already merged it into the draft alongside the current one, to make things
clearer. See Section 4.2 of the draft
<https://quicwg.org/load-balancers/draft-ietf-quic-load-balancers.html#name-ecmp-cid-algorithm>.
I suspect this may not be the final result, but this is another one of
those value judgments I'd like input on.

*TL;DR*: instead of assigning individual server IDs as a configuration
step, load balancers assign them ad hoc and remember those assignments.
Servers can observe their assignments from the CIDs they receive.

*Tradeoffs*: The existing PCID design has precisely zero per-connection
state at the load balancer. This design requires the load balancer to have
a potentially very large table of SIDs mapped to servers. On the other
hand, Ian's proposal completely eliminates the process of configuring the
load balancer with a server ID mapping, and configuring each server
separately with its SID.

As a practical matter, Ian's proposal is also an easier transition path for
Google's load balancers, and presumably others as well. Their
implementation experience suggests that the memory load is manageable.

As Ian’s design has per-connection state, it is less robust to the load
balancer rebooting or handing off to a standby device.

*So we have three options*:
1) Stick with PCID and ditch this.
2) Replace PCID with this proposal.
3) Have two standard unencrypted algorithms to capture the tradeoff -- I
would prefer not to complicate things in this way unless there is real
disagreement about how to resolve the tradeoffs.

Thoughts?

Thanks,
Martin

Reply via email to