PayPal abriu o código JunoDB DBMS

PayPal abriu o código fonte do DBMS JunoDB tolerante a fallos, que manipula os datos nun formato clave-valor. O sistema foi deseñado inicialmente cunha alta seguridade, escalabilidade horizontal, tolerancia a fallos e a capacidade de manexar centos de miles de conexións simultáneas tendo en conta latencias previsibles. En PayPal, case todos os servizos, desde os inicios de sesión dos usuarios ata o procesamento de transaccións financeiras, están vinculados a JunoDB. O código do proxecto está escrito en Go (unha biblioteca cliente Java) e distribúese baixo a licenza Apache 2.0. O desenvolvemento posterior aceptará correccións, melloras e cambios da comunidade.

A arquitectura de JunoDB baséase no uso dun equilibrador de carga que acepta solicitudes de aplicacións cliente e distribúeas entre servidores proxy que acceden simultaneamente a un grupo de servidores de almacenamento cando se executa a solicitude. Cada servidor proxy establece conexións con todos os servidores de almacenamento á vez e reenvía as solicitudes a un grupo de servidores de almacenamento en función do índice de partición, que se almacena na configuración do sistema de almacenamento distribuído etcd.

PayPal abriu o código JunoDB DBMS

Os datos están particionados e ligados a nodos de almacenamento mediante hash, o que reduce o movemento de datos a medida que os nodos do clúster crecen ou diminuír. Para garantir a tolerancia a fallos, cada dato replícase en varios nodos de almacenamento, o que lle permite gardar información cando fallan os servidores individuais. Admítese a creación de almacenamentos distribuídos xeograficamente, nos que se sitúan grupos de nodos en distintos centros de datos.

PayPal abriu o código JunoDB DBMS

Nos nodos de almacenamento de datos, localízanse na memoria RAM ou no almacenamento local baseado na biblioteca RocksDB. Cando se almacenan de forma permanente, os datos almacénanse en forma cifrada (a clave de cifrado pode ser determinada polo cliente ou definida a nivel de proxy).

PayPal abriu o código JunoDB DBMS

Para acceder á base de datos desde aplicacións, ofrécese unha biblioteca cliente que proporciona unha API para aplicacións en Java, Go e C++. A parte do cliente simplifícase na medida do posible e a lóxica complexa e as configuracións transfírense ao lado do DBMS sempre que sexa posible. A interacción entre o cliente e o equilibrador ou proxy realízase a través dunha canle de comunicación cifrada. Para xestionar e enviar solicitudes, pode usar a interface de liña de comandos, que replica todas as capacidades da API do cliente.

O sistema está deseñado para procesar solicitudes con baixas latencias previsibles, por exemplo, un clúster de tres nodos de almacenamento e un proxy, formado a partir de ambientes n1-highmem-32 (32 CPU Intel Xeon a 2.30 GHz, 214 G de RAM e 450 G de almacenamento baseado en SSD) , foi capaz de proporcionar atrasos fixos que non superan os 2.5 ms no 95% dos casos e os 16 ms no 99% ao procesar 200 mil conexións TLS simultáneas e un fluxo de 15 mil solicitudes por segundo (con 3000 conexións simultáneas e un fluxo de 80 mil peticións). por segundo, os atrasos non superaron os 6 ms no 95 % dos casos e os 15 ms no 99 %. En PayPal, os servizos baseados en JunoDB atenden uns 350 millóns de solicitudes ao día.

PayPal abriu o código JunoDB DBMS


Fonte: opennet.ru

Engadir un comentario