On Wed, Jul 24, 2024 at 03:48:15PM +0200, Christopher Faulet wrote: > As announced, the SPOE was finally refactored. This new SPOE will be shipped > with the 3.1-dev4. It is a full rewrite of the engine, based on a dedicated > SPOP multiplexer. It means a "spop" proxy mode, used for SPOE backends, was > added. It is now the default mode for backends used by SPOE engines. "mode > spop" can be explicitly specified, but otherwise, the mode is detected > during post-parsing. So, these backends cannot be mixed for a raw TCP usage. > > Thanks to this refactoring, SPOP connections are now properly reused, > similarly to HTTP connections. So, it is now possible to properly balance > connections when several servers are configured. The management of IDLE > connections used on HTTP backends is used for SPOP connections. It is a huge > improvement compared to what was performed by hand with the pool of SPOE > applets.
In addition to these, what's important to understand is that previously, connections were load-balanced between agents while now it's messages. Thus the control is much finer. For example "balance leastconn" can make some sense for always sending a request to the least loaded agent; "balance hash var(ptxn.XXX)" can make sense as well to perform some affinity and improve context reuse on the backend, and so on. It's never easy to enumerate all possibilities offered by switching from per-connection processing to per-request processing, but it's basically the same as we gained long ago by switching from forwarding SSL as raw TCP connections and later decoding SSL to process each individual request! That's why I second Christopher regarding this quest for testers. It's possible some will feel that something tiny is missing to achieve a great step forward in their use cases, it'd better be expressed early ;-) Willy