QUIC resuelve el cuello de botella de conexiones TCP en Postgres

Fuentes: QUIC Breaks the TCP Connection Bottleneck in Postgres

El protocolo QUIC (UDP) permite superar las limitaciones físicas del transporte TCP en arquitecturas de bases de datos distribuidas, como Postgres. Un experimento técnico que modificó PgCat para soportar QUIC demostró que, bajo carga, el sistema QUIC alcanzó 9.718 consultas por segundo con una latencia media de 246 ms, mientras que la configuración TCP tradicional colapsó con más de 40.000 consultas en cola y una latencia de 7.088 ms.

El problema radica en la asimetría de latencia: en entornos distribuidos, la ida y vuelta de red entre el cliente y el pooler puede ser de 30 ms, mientras que la latencia interna al servidor es inferior a 2 ms. En TCP, cada conexión ocupa un socket y un descriptor de archivo, lo que limita el throughput del cliente a aproximadamente 333 consultas por segundo debido a la necesidad de mantener conexiones activas durante el tiempo de red. Esto provoca que las consultas adicionales se acumulen en memoria, generando latencias artificiales que no reflejan el rendimiento real del motor de base de datos.

QUIC resuelve esto mediante el multiplexado nativo de flujos independientes sobre un solo enlace UDP. Al no requerir la creación de nuevos sockets ni handshakes para cada flujo, se eliminan los cuellos de botella de head-of-line y se reduce drásticamente la sobrecarga de memoria y de sistema operativo. Esto permite a los clientes mantener un número pequeño de conexiones QUIC pero ejecutar cientos de flujos concurrentes, optimizando el uso de la infraestructura de red sin sacrificar el rendimiento de la base de datos.