Meta presentó ZGateway, una capa de proxies sin estado situada entre las aplicaciones y ZippyDB, su base de datos distribuida de clave y valor. Antes, más de un millón de máquinas cliente podían conectarse directamente a numerosos fragmentos de la base de datos. Esa malla de conexiones consumía descriptores de archivo y memoria, y favorecía tormentas de conexiones durante cambios de tráfico.

Con ZGateway, los clientes mantienen conexiones regionales con una flota controlada de proxies, y los servidores de ZippyDB reciben tráfico de esa flota. Según el modelo de Meta, el número total de conexiones persistentes cae unas 19 veces y las conexiones por servidor se reducen entre un 97 % y un 98 %. La capa ya procesa más de mil millones de operaciones por segundo y alrededor del 40 % del tráfico de ZippyDB. Estas cifras describen su despliegue y estimaciones internas, no una garantía para otras arquitecturas.

El proxy también reúne autenticación, control de admisión por cliente, balanceo, caché y agrupación de solicitudes. Al ver peticiones de múltiples procesos, puede combinar trabajo que cada biblioteca cliente no podría coordinar por separado. Introduce un salto de red adicional, pero Meta busca compensarlo al descargar a los servidores de la gestión de conexiones. Una prueba de sobrecarga mostró que podía rechazar tráfico de pocos grupos de clientes y mantener el servicio para los demás. Meta prevé ampliar gradualmente ZGateway al resto de ZippyDB, con opciones de reversión si aparecen problemas.

Glosario

ZippyDB
Base de datos distribuida de clave y valor usada internamente por Meta para almacenar distintos tipos de información.
Proxy
Servicio intermediario que recibe las peticiones de los clientes y las reenvía al servidor de destino.
Caché
Copia temporal de datos consultados con frecuencia que puede evitar nuevas peticiones a la base de datos.
Control de admisión
Reglas que limitan o rechazan peticiones cuando la carga amenaza la capacidad de un servicio.