The most considerable production servers running with 4D accept more than a thousand simultaneous connections, and this number keeps growing. As a consequence, performance becomes an increasingly important focus of our teams. The QUIC protocol, used by the new version of the HTTP standard, has been specifically built to increase speed and reliability. As we are always looking for exciting technologies, we are working on replacing our low-level network protocol with the QUIC protocol.
For v20, you can switch to this network layer and check if it improves your performance. This is still in beta test, as we need your feedback before using it as our default network layer. As such, you will only be able to use it on beta versions of 4D.
QUIC, standing for Quick UDP Internet Connections, was initiated by Google a decade ago. It was officially standardized by the IETF in May 2021 and adopted as the protocol for HTTP/3 connections.
Over the ages, 4D has used a couple of different network layers. The first one, which we generally call “Legacy,” was using too much CPU when idle. The ServerNet layer solved this minor issue and brought features like the support for computer sleep mode, but it is still asking for a constant connection, which is not ideal on unstable networks. With both of these layers, we have hit the ceiling; there’s not much space for improvement.
Unlike previous layers working over TCP, QUIC uses the UDP protocol to carry its packets. It allows for faster recovery in case of packet loss, congestion, and various network issues. And our preliminary tests show that QUIC is keeping its promises: when the ping gets high, QUIC manages to be faster than our other network layers, and in case of packet loss, the speed gain is incredible. We have been positively surprised by the protocol’s overall stability and aim to make this network layer the most stable you’ve ever known.
During the beta test of v20, you can activate this layer via the Compatibility Page of the Structure Settings. Don’t forget that, as QUIC works on UDP, you need your routers and firewalls to accept UDP connections. A second important point is that both the application server and the database server will now listen on the same port (19813 by default), thanks to the way QUIC bundles all network communications on one socket instead of opening one socket per process like before. Also, QUIC communications are necessarily encrypted with TLS. Don’t hesitate to test it on your infrastructure. We will use your feedback to improve it.
In the meantime, if you have questions or comments, don’t hesitate to bring them to the 4D forums.