PayPal ha abierto el código de la base de datos JunoDB

La empresa PayPal ha abierto el código fuente de la base de datos resiliente JunoDB, que manipula datos en formato clave-valor. El sistema fue diseñado inicialmente con una fuerte énfasis en la seguridad, la escalabilidad horizontal, la resiliencia y la capacidad de manejar cientos de miles de conexiones simultáneas con retrasos predecibles. En PayPal, prácticamente todos los servicios, desde el inicio de sesión de usuarios hasta el procesamiento de transacciones financieras, dependen de JunoDB. El código del proyecto está escrito en el lenguaje Go (la biblioteca del cliente está en Java) y se distribuye bajo la licencia Apache 2.0. Se aceptarán correcciones, mejoras y cambios por parte de la comunidad en el desarrollo futuro.

La arquitectura de JunoDB se basa en el uso de un equilibrador de carga que recibe solicitudes de aplicaciones cliente y las distribuye entre los servidores proxy, que a su vez acceden a un grupo servidores de almacenamiento al ejecutar la solicitud. Cada servidor proxy establece conexiones simultáneamente con todos los servidores servidores de almacenamiento y redirige las solicitudes al grupo de servidores de almacenamiento basándose en el índice de particionamiento, que se almacena en un sistema de almacenamiento distribuido de configuración etcd.

PayPal ha abierto el código de la base de datos JunoDB

Los datos se particionan y se asignan a nodos de almacenamiento mediante hash, lo que permite reducir la movilidad de los datos al aumentar o disminuir los nodos en el clúster. Para garantizar la resiliencia, cada porción de datos se replica en varios nodos de almacenamiento, lo que permite conservar la información en caso de fallos de servidores individuales. Se admite la creación de almacenes geográficamente distribuidos, donde los grupos de nodos están ubicados en diferentes centros de datos.

PayPal ha abierto el código de la base de datos JunoDB

En los nodos de almacenamiento, los datos se colocan en memoria o en almacenamiento local utilizando la biblioteca RocksDB. Para el almacenamiento permanente, los datos se almacenan de manera encriptada (la clave de cifrado puede ser definida tanto por el cliente como configurarse a nivel de proxy).

PayPal ha abierto el código de la base de datos JunoDB

Para acceder a la base de datos desde aplicaciones, se proporciona una biblioteca cliente que ofrece una API para aplicaciones en los lenguajes Java, Go y C++. La parte del cliente se simplifica al máximo, y la lógica compleja y las configuraciones se trasladan, en la medida de lo posible, al lado del SGBD. La interacción entre el cliente y el equilibrador de carga o proxy se realiza a través de un canal de comunicación cifrado. Para gestionar y enviar solicitudes, se puede utilizar la interfaz de línea de comandos, que reproduce todas las capacidades de la API del cliente.

El sistema está diseñado para manejar solicitudes con retrasos predecibles y bajos, por ejemplo, un clúster de tres nodos de almacenamiento y un proxy, formado por entornos n1-highmem-32 (32 CPU Intel Xeon 2.30GHz, 214G de RAM y 450G de almacenamiento basado en SSD), pudo ofrecer retrasos fijos que no superan los 2.5 ms en el 95% de los casos y 16 ms en el 99% al procesar 200 mil conexiones TLS simultáneas y un flujo de 15 mil solicitudes por segundo (con 3000 conexiones simultáneas y un flujo de 80 mil solicitudes por segundo, los retrasos no superaron los 6 ms en el 95% de los casos y 15 ms en el 99%). En PayPal, los servicios basados en JunoDB manejan alrededor de 350 mil millones de solicitudes al día.

PayPal ha abierto el código de la base de datos JunoDB


Fuente: opennet.ru
Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster