Apache Cassandra 4.0 DBMS dispoñible

A Apache Software Foundation presentou o lanzamento do DBMS distribuído Apache Cassandra 4.0, que pertence á clase de sistemas noSQL e está deseñado para crear un almacenamento altamente escalable e fiable de enormes cantidades de datos almacenados en forma de matriz asociativa (hash). A versión Cassandra 4.0 considérase lista para a implementación de produción e xa foi probada nas infraestruturas de Amazon, Apple, DataStax, Instaclustr, iland e Netflix con clusters de máis de 1000 nodos. O código do proxecto está escrito en Java e distribúese baixo a licenza Apache 2.0.

O DBMS Cassandra foi desenvolvido orixinalmente por Facebook e en 2009 transferiuse baixo os auspicios da Fundación Apache. Desplegáronse solucións industriais baseadas en Cassandra para alimentar servizos de empresas como Apple, Adobe, CERN, Cisco, IBM, HP, Comcast, Disney, eBay, Huawei, Netflix, Sony, Rackspace, Reddit e Twitter. Por exemplo, a infraestrutura de almacenamento baseada en Apache Cassandra implantada por Apple ten máis de mil clusters, incluíndo 160 mil nodos e almacenan máis de 100 petabytes de datos. Huawei usa máis de 300 clústeres Apache Cassandra, que comprenden 30 mil nodos, e Netflix utiliza máis de 100 clústeres, cubrindo 10 mil nodos e procesando máis dun billón de solicitudes ao día.

O DBMS Cassandra combina un sistema hash Dynamo totalmente distribuído, que proporciona escalabilidade case lineal a medida que aumenta o volume de datos. Cassandra utiliza un modelo de almacenamento de datos baseado nunha familia de columnas (ColumnFamily), que se diferencia de sistemas como memcachedb, que almacenan datos só nunha cadea de clave/valor, pola capacidade de organizar o almacenamento de hash con varios niveis de aniñamento. Para simplificar a interacción coa base de datos, admítese a linguaxe de consulta estruturada CQL (Cassandra Query Language), que lembra a SQL, pero cunha funcionalidade reducida. As características inclúen soporte para espazos de nomes e familias de columnas e a creación de índices mediante a expresión "CREATE INDEX".

O DBMS permítelle crear almacenamento resistente a fallos: os datos colocados na base de datos replícanse automaticamente en varios nodos dunha rede distribuída, que poden abarcar distintos centros de datos. Cando un nodo falla, as súas funcións son recollidas sobre a marcha por outros nodos. Engadir novos nodos ao clúster e actualizar a versión de Cassandra realízase sobre a marcha, sen intervención manual adicional nin reconfigurar outros nodos. Os controladores con soporte CQL están preparados para Python, Java (JDBC/DBAPI2), Ruby, PHP, C++ e JavaScript (Node.js).

Principais novidades:

  • Mellora do rendemento e da escalabilidade. Mellorouse a eficiencia do intercambio de datos en formato SSTable (Táboa de cadeas ordenadas) entre nós. Optimizouse o protocolo de mensaxería Internode. A velocidade de transferencia de fluxos de datos entre nodos aumentou ata 5 veces (principalmente debido ao uso da técnica Zero Copy e á transferencia de SSTables enteiros), e o rendemento das operacións de lectura e escritura aumentou ata o 25%. Optimizouse o proceso de recuperación incremental. As latencias debido á pausa da recollida de lixo redúcense a uns milisegundos.
  • Engadido soporte para un rexistro de auditoría que lle permite rastrexar as operacións de autenticación de usuarios e todas as consultas CQL executadas.
  • Engadiuse a posibilidade de manter un rexistro de solicitudes binario completo, o que lle permite gardar todo o tráfico de solicitudes e respostas. Para a xestión, propóñense os comandos “nodetool enablefullquerylog|disablefullquerylog|resetfullquerylog” e ofrécese a utilidade fqltool para a análise do rexistro. Ofrécense comandos para converter o rexistro nunha forma lexible (Dump), comparar porcións de actividade (Comparar) e volver executar (Replay) para a análise reproducir as condicións inherentes á carga real.
  • Engadido soporte para táboas virtuais que non reflicten os datos almacenados en SSTables, senón a saída de información a través da API (métricas de rendemento, información de configuración, contidos da caché, información sobre clientes conectados, etc.).
  • Mellorouse a eficiencia do almacenamento de datos comprimidos, reducindo o consumo de espazo en disco e mellorando o rendemento de lectura.
  • Os datos relacionados co espazo de claves do sistema (sistema.*) colócanse agora no primeiro directorio de forma predeterminada en lugar de distribuírse en todos os directorios de datos, o que permite que o nodo siga operativo se falla un dos discos adicionais.
  • Engadiuse soporte experimental para a replicación transitoria e os quórums baratos. As réplicas temporais non almacenan todos os datos e usan a restauración incremental para ser coherentes coas réplicas completas. Os quórums lixeiros implementan a optimización de escritura na que non se realizan escrituras en réplicas temporais ata que estea dispoñible un conxunto suficiente de réplicas completas.
  • Engadido soporte experimental para Java 11.
  • Engadiuse unha opción experimental para comparar todas as árbores de Merkle. Por exemplo, activar a opción nun clúster de 3 nodos no que dúas réplicas son idénticas e unha está obsoleta producirá unha actualización da réplica obsoleta utilizando só unha operación de copia da réplica actual.
  • Engadíronse novas funcións currentTimestamp, currentDate, currentTime e currentTimeUUID.
  • Engadido soporte para operacións aritméticas en consultas CQL.
  • Ofrécese a capacidade de realizar operacións aritméticas entre datos cos tipos "marca de tempo"/"data" e "duración".
  • Engadiuse un modo para previsualizar os fluxos de datos necesarios para a recuperación (reparación de nodetool: vista previa) e a capacidade de comprobar a integridade dos datos que se restauran (reparación de nodetool: validación).
  • As consultas SELECT agora teñen a capacidade de procesar elementos Map e Set.
  • Engadido soporte para paralelizar a fase inicial de construción das vistas materializadas (cassandra.yaml:concurrent_materialized_view_builders).
  • O comando "nodetool cfstats" engadiu compatibilidade para ordenar por determinadas métricas e limitar o número de filas mostradas.
  • Ofrécense configuracións para limitar a conexión do usuario só a determinados centros de datos.
  • Engadida a capacidade de limitar a intensidade (límite de velocidade) das operacións de creación e borrado de instantáneas.
  • cqlsh e cqlshlib agora admiten Python 3 (Python 2.7 aínda é compatible).
  • O soporte para a plataforma Windows foi descontinuado. Para executar Cassandra en Windows, recoméndase utilizar entornos Linux creados a partir do subsistema WSL2 (Subsistema de Windows para Linux 2) ou sistemas de virtualización.



Fonte: opennet.ru

Engadir un comentario