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.[1]
Aerospike database | |||
---|---|---|---|
![]() | |||
Información general | |||
Tipo de programa | software privativo | ||
Desarrollador | Aerospike | ||
Lanzamiento inicial | 2012 | ||
Licencia |
| ||
Información técnica | |||
Programado en | C | ||
Versiones | |||
Última versión estable | 8.0.0.525 de febrero de 2025 | ||
Enlaces | |||
Sitio web oficial
Repositorio de código
| |||
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.[2] 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.[3] 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.[4] 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.[5][6][7]
Versión | Primera versión | Fecha de lanzamiento | Última versión | Fecha de lanzamiento | Características | Ref |
---|---|---|---|---|---|---|
3.1 | 3.1.3 | 2 de enero de 2014 | 3.1.14 | 25 de febrero de 2014 |
[8] | |
3.2 | 3.2.0 | 19 de marzo de 2014 | 3.2.9 | 12 de mayo de 2014 |
[8] | |
3.3 | 3.3.5 | 9 de junio de 2014 | 3.3.26 | 3 de diciembre de 2014 |
[8] | |
3.4 | 3.4.0 | 8 de diciembre de 2014 | 3.4.1 | 12 de enero de 2015 |
[8] | |
3.5 | 3.5.2 | 13 de febrero de 2015 | 3.5.15 | 15 de julio de 2015 |
[8] | |
3.6 | 3.6.0 | 31 de agosto de 2015 | 3.6.4 | 10 de noviembre de 2015 |
[8] | |
3.7 | 3.7.0 | 10 de diciembre 2015 | 3.7.5.1 | 31 de marzo de 2016 |
|
|
3.8 | 3.8.1 | 15 de abril de 2016 | 3.8.4 | 17 de junio de 2016 |
|
|
3.9 | 3.9.0 | 11 de julio de 2016 | 3.9.1.1 | 2 de septiembre de 2016 |
|
|
3.10 | 3.10.0.3 | 21 de octubre de 2016 | 3.10.1.5 | 13 de enero de 2017 |
|
|
3.11 | 3.11.0 | 5 de enero de 2017 | 3.11.1.1 | 15 de febrero de 2017 |
|
|
3.12 | 3.12.0 | 15 de marzo de 2017 | 3.12.1.3 | 31 de julio de 2017 |
|
|
3.13 | 3.13.0.1 | 30 de mayo de 2017 | 3.13.0.11 | 26 de abril de 2018 |
|
|
3.14 | 3.14.0 | 6 de junio de 2017 | 3.14.1.10 | 26 de abril de 2018 |
|
|
3.15 | 3.15.0.1 | 3 de octubre de 2017 | 3.15.1.4 | 3 de enero de 2018 |
[8] | |
3.16 | 3.16.0.1 | 21 de febrero de 2018 | 3.16.0.6 | 2 de marzo de 2018 |
[8] | |
4.0 | 4.0.0.1 | 7 de marzo de 2018 | 4.0.0.6 | 6 de septiembre de 2018 |
|
|
4.1 | 4.1.0.1 | 10 de mayo de 2018 | 4.1.0.6 | 6 de septiembre de 2018 |
|
|
4.2 | 4.2.0.2 | 31 de mayo de 2018 | 4.2.0.10 | 10 de agosto de 2018 |
|
|
4.3 | 4.3.0.2 | 1 de agosto de 2018 | 4.3.1.14 | 26 de abril de 2019 |
|
|
4.4 | 4.4.0.4 | 19 de noviembre de 2018 | 4.4.0.15 | 26 de abril de 2019 |
|
|
4.5 | 4.5.0.1 | 12 de diciembre de 2018 | 4.5.3.22 | 7 de julio de 2020 |
|
|
4.6 | 4.6.0.2 | 9 de agosto de 2019 | 4.6.0.21 | 18 de septiembre de 2020 |
|
[17] |
4.7 | 4.7.0.2 | 30 de septiembre de 2019 | 4.7.0.26 | 25 de noviembre de 2020 |
|
|
4.8 | 4.8.0.1 | 12 de diciembre de 2019 | 4.8.0.31 | 29 de marzo de 2021 |
|
|
4.9 | 4.9.0.3 | 8 de abril de 2020 | 4.9.0.36 | 25 de octubre de 2021 | ||
5.0 | 5.0.0.3 | 14 de mayo de 2020 | 5.0.0.38 | 19 de julio de 2021 |
|
|
5.1 | 5.1.0.3 | 31 de julio de 2020 | 5.1.0.42 | 20 de septiembre de 2021 |
|
|
5.2 | 5.2.02 | 1 de octubre de 2020 | 5.2.0.37 | 30 de octubre de 2021 |
|
|
5.3 | 5.3.0.2 | 10 de diciembre de 2020 | 5.3.0.27 | 30 de octubre de 2021 |
|
|
5.4 | 5.4.0.1 | 13 de enero de 2021 | 5.4.0.22 | 30 de octubre de 2021 |
|
|
5.5 | 5.5.0.2 | 5 de febrero de 2021 | 5.5.0.20 | 30 de octubre de 2021 |
[17] | |
5.6 | 5.6.0.3 | 10 de mayo de 2021 | 5.6.0.14 | 30 de octubre de 2021 |
|
|
5.7 | 5.7.0.7 | 27 de septiembre de 2021 | 5.7.0.9 | 10 de diciembre de 2021 |
|
|
6.0 | 6.0.0.0 | 27 de abril de 2022 | 6.0.0.0 | 27 de abril de 2022 |
|
|
Leyenda: Versión antigua Versión antigua, con soporte técnico Última versión |
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.[34]
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.[35] 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.[34] 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.[2]
Aerospike proporciona transacciones ACID de registro único.[36] 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.[34] 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.[37][38]
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.[34] La agrupación se realiza mediante latidos y el algoritmo de protocolo de chismes basado en Paxos.[39]
El software utiliza dos subprogramas cuyos nombres en código son Defragmenter y Evictor.[34][40] El desfragmentador elimina los bloques de datos que se han eliminado y Evictor libera espacio en RAM eliminando referencias a registros caducados.[34][41]