Apache Cassandra 4.0 llega con mejoras de velocidad, nuevas características y mas
Hace pocos dias la Apache Software Foundation dio a conocer el lanzamiento de la nueva versión de Apache Cassandra 4.0 el cual es un sistema de administración de bases de datos distribuido que pertenece a la clase de sistemas noSQL y está diseñado para crear almacenamientos altamente escalables y confiables de grandes cantidades de datos almacenados en forma de una matriz asociativa.
Esta nueva versión de Apache Cassandra 4.0 se considera una versión estable por lo cual puede ser utilizada para implementaciones de producción y ya se ha probado en infraestructuras de Amazon, Apple, DataStax, Instaclustr, iland y Netflix con clústeres de más de 1000 nodos.
Principales novedades de Apache Cassandra 4.0
Esta nueva versión de Apache Cassandra 4.0 representa cerca de 1,000 correcciones de errores, mejoras y nuevas características de las cuales se destacan las siguientes:
- Mayor velocidad y escalabilidad: transmite datos hasta 5 veces más rápido durante las operaciones de escalado y un rendimiento hasta un 25% más rápido en lecturas y escrituras, lo que brinda una arquitectura más elástica, particularmente en implementaciones en la nube y Kubernetes.
- Consistencia mejorada: mantiene las réplicas de datos sincronizadas para optimizar la reparación incremental para una operación y consistencia más rápida y eficiente entre las réplicas de datos.
- Seguridad y observabilidad mejoradas: el registro de auditoría rastrea el acceso y la actividad de los usuarios con un impacto mínimo en el rendimiento de la carga de trabajo. La nueva captura y reproducción permite el análisis de las cargas de trabajo de producción para ayudar a garantizar el cumplimiento normativo y de seguridad con SOX, PCI, GDPR u otros requisitos.
- Nuevos ajustes de configuración: las métricas del sistema expuestas y los ajustes de configuración brindan flexibilidad a los operadores para garantizar que tengan fácil acceso a los datos que optimizan las implementaciones.
- Latencia minimizada: los tiempos de pausa del recolector de basura se reducen a unos pocos milisegundos sin degradación de la latencia a medida que aumenta el tamaño del montón.
- Mejor compresión: la eficiencia de compresión mejorada alivia la tensión innecesaria en el espacio del disco y mejora el rendimiento de lectura.
Además de ello, tambien se destaca que se agregó soporte de registro de auditoría para rastrear las operaciones de autenticación de usuarios y todas las consultas CQL ejecutadas, asi como tambien la capacidad de mantener un registro binario completo de solicitudes, lo que permite guardar todo el tráfico de solicitudes y respuestas.
Asi mismo, tambien se destaca la opción experimental para comparar todos los árboles Merkle (Merkle Tree). Por ejemplo, habilitar la opción en un clúster con 3 nodos, en el que dos réplicas son iguales y una está desactualizada, resultará en la actualización de la réplica desactualizada usando solo una operación de copia de la réplica actual.
Tambien, se agregó soporte para tablas virtuales que no reflejan datos almacenados en SSTables, sino información mostrada a través de la API (métricas de rendimiento, información de configuración, contenido de caché, información sobre clientes conectados, etc.).
Se ha mejorado la eficiencia del almacenamiento comprimido para reducir el consumo de espacio en disco y mejorar el rendimiento de lectura.
Por otra parte se destaca que se añadió soporte experimental para la replicación transitoria y Cheap Quorums. Las réplicas temporales no almacenan todos los datos y utilizan la recuperación incremental para ser coherentes con las réplicas completas. Los Quorums ligeros son optimizaciones de escritura que no escriben en réplicas temporales hasta que esté disponible un conjunto suficiente de réplicas completas.
En cuanto a los datos relacionados con el espacio de la clave del sistema (system.*), estos ahora se encuentran en el primer directorio de forma predeterminada en lugar de distribuirse entre todos los directorios de datos, lo que permite que el nodo permanezca operativo en caso de una falla de uno de los discos adicionales.
De los demás cambios que se destacan:
- Se agregó soporte experimental para Java 11.
- Se agregó soporte para operaciones aritméticas en consultas CQL.
- El comando «nodetool cfstats» agregó soporte para ordenar por ciertas métricas y limitar el número de líneas mostradas.
- La configuración se proporciona para restringir las conexiones de los usuarios a centros de datos específicos únicamente.
- Se agregó la capacidad de limitar la intensidad (límite de frecuencia) de las operaciones para crear y borrar instantáneas.
- El soporte de Python 3 se implementa en cqlsh y cqlshlib (el soporte de Python 2.7 aún se conserva).
Finalmente, si estás interesado en conocer más al respecto de esta nueva versión, puedes consultar los detalles en el siguiente enlace.