Aerospike es una base de datos NoSQL de alto rendimiento y en tiempo real. Diseñado para aplicaciones que no pueden experimentar ningún tiempo de inactividad y requieren un alto rendimiento de lectura y escritura. Aerospike está optimizado para ejecutarse en SSD NVMe capaces de almacenar de manera eficiente grandes conjuntos de datos (de gigabytes a petabytes). Aerospike también se puede implementar como una base de datos de caché completamente en memoria. Aerospike ofrece modelos de clave-valor, documentos JSON, datos gráficos y búsqueda vectorial. Aerospike es un sistema de gestión de bases de datos NoSQL distribuido de código abierto, comercializado por la empresa también llamada Aerospike.
Historia Aerospike se conoció inicialmente como Citrusleaf. En agosto de 2012, la empresa, que había proporcionado su base de datos desde 2010, cambió el nombre de la empresa y del software a Aerospike. El nombre "Aerospike" se deriva del motor aerospike, un tipo de tobera de cohete capaz de mantener su eficiencia de salida en un amplio rango de altitudes, y pretende referirse a la capacidad del software para escalar. En 2012, Aerospike adquirió AlchemyDB e integró las funciones de las dos bases de datos, incluyendo la incorporación de un sistema de gestión de datos relacionales. El 24 de junio de 2014, Aerospike se convirtió en código abierto bajo la licencia AGPL 3.0 para el servidor de base de datos Aerospike y la licencia Apache versión 2.0 para su kit de desarrollo de software cliente Aerospike.
Historial de versiones VersiónPrimera versiónFecha de lanzamientoÚltima versiónFecha de lanzamientoCaracterísticasRef 3.1.32 de enero de 20143.1.1425 de febrero de 2014 3.2.019 de marzo de 20143.2.912 de mayo de 2014 3.3.59 de junio de 20143.3.263 de diciembre de 2014 3.4.08 de diciembre de 20143.4.112 de enero de 2015 3.5.213 de febrero de 20153.5.1515 de julio de 2015 3.6.031 de agosto de 20153.6.410 de noviembre de 2015 3.7.010 de diciembre de 20153.7.5.131 de marzo de 2016 Geospatial queries Native List data type 3.8.115 de abril de 20163.8.417 de junio de 2016 Secondary Index on List, Map & Geospatial 3.9.011 de julio de 20163.9.1.12 de septiembre de 2016 Rapid Rebalance 3.10.0.321 de octubre de 20163.10.1.513 de enero de 2017 Durable Delete Support IPv6 3.11.05 de enero de 20173.11.1.115 de febrero de 2017 Transport Layer Security on client-server communications 3.12.015 de marzo de 20173.12.1.331 de julio de 2017 Predicate Filters 3.13.0.130 de mayo de 20173.13.0.1126 de abril de 2018 Clustering Layer refactoring Required "Jump" Release before 3.14 3.14.06 de junio de 20173.14.1.1026 de abril de 2018 Clustering Layer refactoring pt. 2 3.15.0.13 de octubre de 20173.15.1.43 de enero de 2018 Encryption at rest 3.16.0.121 de febrero de 20183.16.0.62 de marzo de 2018 4.0.0.17 de marzo de 20184.0.0.66 de septiembre de 2018 Strong consistency Model 4.1.0.110 de mayo de 20184.1.0.66 de septiembre de 2018 LDAP Support 4.2.0.231 de mayo de 20184.2.0.1010 de agosto de 2018 Increase maximum object size to 8MB 4.3.0.21 de agosto de 20184.3.1.1426 de abril de 2019 All Flash Namespaces 4.4.0.419 de noviembre de 20184.4.0.1526 de abril de 2019 Change notification Framework - connectors for Apache Kafka and JMS Rack aware reads 4.5.0.112 de diciembre de 20184.5.3.227 de julio de 2020 Support for Intel Persistent memory for Indexing Record level Data compression 4.6.0.29 de agosto de 20194.6.0.2118 de septiembre de 2020 Added bitwise BLOB operations Nested Collection Data Type API support 4.7.0.230 de septiembre de 20194.7.0.2625 de noviembre de 2020 ADQ Support 4.8.0.112 de diciembre de 20194.8.0.3129 de marzo de 2021 Support for client/server compression Support for Intel Persistent Memory for storing data 4.9.0.38 de abril de 20204.9.0.3625 de octubre de 2021 Added support for HyperLogLog (HLL) data types Improve Scans for non key value access Modify Eviction/Expiration (TTL) Default behavior Required "Jump" Release before 5.0 (LTS) 5.0.0.314 de mayo de 20205.0.0.3819 de julio de 2021 Refactor cross datacenter replication (XDR) Strong consistency multi site clustering 5.1.0.331 de julio de 20205.1.0.4220 de septiembre de 2021 Hashicorp Vault integration 5.2.021 de octubre de 20205.2.0.3730 de octubre de 2021 Redesigned predicate expressions 5.3.0.210 de diciembre de 20205.3.0.2730 de octubre de 2021 Added expression filtering for XDR Expanded Multi-Site Clustering 5.4.0.113 de enero de 20215.4.0.2230 de octubre de 2021 Added bin level convergence for active-active XDR scenarios 5.5.0.25 de febrero de 20215.5.0.2030 de octubre de 2021 5.6.0.310 de mayo de 20215.6.0.1430 de octubre de 2021 Aerospike Expressions Set Indexes Per-user quotas Boolean datatype 5.7.0.727 de septiembre de 20215.7.0.910 de diciembre de 2021 Improved memory footprint and garbage collection for secondary indices Support for PKI authentication 6.0.0.027 de abril de 20226.0.0.027 de abril de 2022 Storing, Indexing and Querying JSON Documents Partitioned Secondary Index Queries
Características La base de datos de Aerospike está modelada bajo la arquitectura de no compartición y escrita en C. Opera en tres capas: una capa de almacenamiento de datos, una capa de distribución autogestionada y una capa de cliente compatible con clústeres.
Aerospike utiliza una arquitectura de memoria híbrida: los índices de la base de datos se almacenan completamente en la memoria de acceso aleatorio principal, mientras que los datos se almacenan en un dispositivo persistente utilizando la capa de datos. La capa de datos almacena los datos en una unidad de estado sólido, NVMe o memoria persistente. La lectura de los datos se realiza mediante un acceso directo a la posición del registro en el disco usando un puntero directo desde el índice principal, y las escrituras de datos se optimizan mediante escrituras de bloques grandes para reducir la latencia. Esta arquitectura recupera todos los registros del dispositivo persistente y evita el uso de caché de datos. Aerospike también proporciona la capacidad de almacenar los datos completamente en RAM, actuando así como una base de datos en memoria. En ese caso, los datos se conservarían en SSD, NVMe, PMEM o medios rotacionales tradicionales.
Aerospike proporciona transacciones ACID de registro único. La capa de distribución es responsable de replicar los datos entre los nodos para garantizar la durabilidad y las propiedades de consistencia inmediata de la transacción. Esto permite que la base de datos permanezca operativa incluso cuando un nodo de servidor individual falla o se elimina manualmente del clúster. Desde la versión 4.0 (2018), la base de datos de Aerospike se puede configurar como Disponible y Tolerante a particiones (AP) o Consistente y Tolerante a particiones (CP) según el teorema CAP.
La capa de cliente consciente del clúster se utiliza para rastrear la configuración del clúster en la base de datos y administra las comunicaciones directas del cliente con todos los nodos del clúster. La agrupación se realiza mediante latidos y el algoritmo de protocolo de chismes basado en Paxos.
El software utiliza dos subprogramas cuyos nombres en código son Defragmenter y Evictor. El desfragmentador elimina los bloques de datos que se han eliminado y Evictor libera espacio en RAM eliminando referencias a registros caducados.
Referencias
Enlaces externos
Categoría:NoSQL Categoría:Sistemas de gestión de bases de datos libres