emqx / eip

EMQX Improvement Proposals
21 stars 19 forks source link

feat: proposal for hybrid session takeover and resumption in emqx 5 #76

Closed emqplus closed 1 year ago

emqplus commented 1 year ago

fixes: https://github.com/emqx/eip/issues/59

zmstone commented 1 year ago

Great proposal.

Not sure if QUIC socket owner handover is supported as TCP/TLS socket, if not, we'll need to treat them differently. @qzhuyan ?

zmstone commented 1 year ago

Some discussion points, not necessarily to be added to the EPI, but important to note when developing and testing.

In the current implementation, if we only look at the takeover initialization phase, it consists of 2 steps

  1. Sends a nice step-down request to the old
  2. If step 1 timeout, force shutdown (by kill the old)

We'll need to consider the scenario of timeouts during local resume (socket handover) too. Some exception flows to cover: