Meta reduce las conexiones de ZippyDB 19 veces con su nuevo proxy ZGateway
El nuevo capítano de proxy sin estado maneja más de mil millones de operaciones por segundo y resuelve los problemas de malla de conexiones en su infraestructura.

Meta ha desplegado ZGateway, una capa de proxy sin estado para su store de clave-valor distribuido ZippyDB. El objetivo es resolver los cuellos de botella de conectividad y fiabilidad generados por más de un millón de hosts clientes. El sistema procesa más de 1.000 millones de operaciones por segundo, gestionando aproximadamente el 40% del tráfico total de ZippyDB. Según las estimaciones internas de la compañía, esta arquitectura reduce el número total de conexiones persistentes en un factor de 19.
De malla densa a capas regionales
En el modelo de acceso directo anterior, los clientes se conectaban directamente a los hosts de base de datos que servían los shards necesarios. Un solo cliente podía interactuar con decenas de miles de shards repartidos en cientos de miles de hosts, creando una malla de conexiones many-to-many extremadamente densa. Meta índicó que esto provocaba tormentas de conexiones, agotamiento de descriptores de archivo y condiciones de falta de memoria (out-of-memory).
ZGateway introduce una capa de proxy gestionada entre los clientes y los servidores de ZippyDB. Los clientes mantienen conexiones sticky con hosts de gateway regionales, descubiertos a través de ServiceRouter, la malla de servicios de escala hiperespacial de Meta. A su vez, los servidores de base de datos reciben conexiones solo de esta flota controlada de gateways. Esto permite que el gateway autentifique, autorice, aplique control de admisión por inquilino, resuelva shards y agrupe o combine peticiones antes de reenviarlas a las replicas de ZServer.
La implementación utiliza el cliente C++ existente de ZippyDB como motor de peticiones. El modelo de Meta estima que el número de conexiones por host disminuye entre un 97% y un 98%. Aunque añadir un salto de red suele aumentar la latencia, en este caso libera a los nodos de base de datos del sobrecoste de gestión de conexiones, mejorando la latencia global. En pruebas de sobrecarga controlada con más del 90% de CPU, solo seis de unos 1.350 buckets de inquilino descartaron tráfico, mientras que el resto procesaron el 99,9% de las peticiones sin rechazos.
Meta planea canalizar todo el tráfico de ZippyDB a través de ZGateway, explorando controles operados por agentes y una arquitectura multiproceso para un mayor aislamiento de fallos. Para quienes administran infraestructura distribuida, esto es un recordatorio de que un proxy bien diseñado no es solo un intermediario, sino una herramienta crítica para la observabilidad, el balanceo de carga y la protección ante picos de demanda en sistemas de escala masiva.


