Alibaba abriu o código para PolarDB, un DBMS distribuído baseado en PostgreSQL.

Alibaba, unha das maiores empresas de TI chinesas, abriu o código fonte do DBMS distribuído PolarDB, baseado en PostgreSQL. PolarDB amplía as capacidades de PostgreSQL con ferramentas de almacenamento de datos distribuídos con integridade e compatibilidade con transaccións ACID no contexto de toda a base de datos global distribuída en diferentes nodos do clúster. PolarDB tamén admite o procesamento de consultas SQL distribuída, tolerancia a fallos e almacenamento de datos redundante para recuperar información despois de que fallen un ou máis nodos. Se precisas ampliar o teu almacenamento, simplemente podes engadir novos nodos ao clúster. O código está aberto baixo a licenza Apache 2.0.

PolarDB consta de dous compoñentes: extensións e un conxunto de parches para PostgreSQL. Os parches amplían as capacidades do núcleo de PostgreSQL e as extensións inclúen compoñentes implementados por separado de PostgreSQL, como un mecanismo de xestión de transaccións distribuídas, servizos globais, un procesador de consultas SQL distribuído, metadatos adicionais, ferramentas para xestionar o clúster, implementar un clúster e simplificar. a migración dos sistemas existentes a el.

Os parches engaden ao núcleo de PostgreSQL unha versión distribuída do mecanismo para controlar o acceso paralelo aos datos mediante multiversión (MVCC, control de concorrencia multiversión) para diferentes niveis de illamento. A maior parte da funcionalidade de PolarDB está incluída nas extensións, o que reduce a dependencia de PostgreSQL e simplifica a actualización e implementación de solucións baseadas en PolarDB (simplifica a transición a novas versións de PostgreSQL e mantendo a total compatibilidade con PostgreSQL). Para xestionar o clúster, utilízase o kit de ferramentas pgxc_ctl, baseado nunha utilidade similar de PostgreSQL-XC e PostgreSQL-XL.

Hai tres compoñentes básicos nun clúster: nodos de base de datos (DN), xestor de clúster (CM) e servizo de xestión de transaccións (TM). Ademais, pódese usar un equilibrador de carga proxy. Cada compoñente é un proceso separado e pódese executar nun servidor diferente. Os nodos de bases de datos serven consultas SQL dos clientes e, ao mesmo tempo, actúan como coordinadores da execución de consultas distribuídas coa participación doutros nodos de bases de datos. O xestor de clúster supervisa o estado de cada nodo de base de datos, almacena a configuración do clúster e ofrece ferramentas para xestionar, facer copias de seguranza, equilibrar a carga, actualizar, iniciar e deter os nodos. O servizo de xestión de transaccións é responsable de manter a integridade xeral en todo o clúster.

Alibaba abriu o código para PolarDB, un DBMS distribuído baseado en PostgreSQL.

PolarDB baséase na arquitectura de computación distribuída Shared-nothing, segundo a cal os datos se distribúen cando se almacenan en distintos nodos, sen utilizar un almacenamento común para todos os nodos, e cada nodo é responsable da parte dos datos asociados a el e realiza consultas relacionadas. aos datos. Cada táboa divídese en partes (sharding) usando hash baseado na chave primaria. Se a solicitude abarca datos localizados en diferentes nós, actívase un mecanismo de execución de transaccións distribuídas e un coordinador de transaccións para garantir a atomicidade, a coherencia, o illamento e a fiabilidade (ACID).

Para garantir a tolerancia a fallos, cada segmento replícase en polo menos tres nodos. Para aforrar recursos, os datos completos inclúen só dúas réplicas, e unha está limitada a almacenar o rexistro de reescritura (WAL). Un dos dous nodos con réplicas completas elíxese como líder e participa no procesamento de solicitudes. O segundo nodo actúa como un recambio para o segmento de datos en cuestión, e o terceiro participa na selección do nodo principal e pode utilizarse para restaurar a información en caso de falla de dous nodos con réplicas completas. A replicación de datos entre os nodos do clúster organízase mediante o algoritmo Paxos, que garante unha definición coherente de consenso nunha rede con nodos potencialmente pouco fiables.

Nótase que está previsto que a funcionalidade completa do DBMS PolarDB se revele en tres versións: Na primeira versión publicaranse ferramentas para a replicación, a alta dispoñibilidade e a xestión de clústeres. A segunda versión contará cun sistema de execución de transaccións distribuídas que admite a execución de ACID entre nodos e SQL distribuído. A terceira versión incluirá un complemento para PostgreSQL e ferramentas para a distribución flexible de datos entre nós, incluíndo a colocación adaptativa de segmentos para lograr un rendemento óptimo e a capacidade de expandir o clúster engadindo novos nodos.

Fonte: opennet.ru

Engadir un comentario