sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Alguien ha trabajado con Aerospike? ¿Cómo se compara con MongoDB?

He usado Aerospike, MongoDB y Redis y he probado muchas otras bases de datos NoSQL. Diría que Aerospike es muy bueno en lo que hace, pero es diferente a MongoDB. Todo depende de para qué esté planeando usar una base de datos. Puedo darle un ejemplo de para qué estoy usando mis diferentes bases de datos. También puedo repasar las diferencias entre ellos y discutir los beneficios de Aerospike.

MongoDB

Estoy usando MongoDB como una alternativa de SQL. En mi base de datos MongoDB tengo muchos campos diferentes. A menudo, los campos cambian y al azar tendré que consultar varios campos. Es una base de datos muy desestructurada y MongoDB es increíble en eso. También he usado MongoDB como un almacén de clave-valor estándar. Funciona bien, pero MongoDB ha tenido un rendimiento subóptimo tanto en la escala de transacción como en la escala de tamaño de la base de datos. Es cierto que la base de datos podría haberse optimizado un poco mejor, pero me resulta muy difícil encontrar documentación sobre la configuración correcta de MongoDB en diferentes situaciones.

Redis

Redis es un almacén de clave-valor puro. El mayor problema de Redis es que está puramente en la memoria (utilizará el disco como copia de seguridad, pero no puede almacenar más información de la que tiene disponible en la memoria). Es extremadamente rápido para lo que se utiliza. Personalmente, lo uso para una base de datos transaccional pequeña:realizo funciones muy simples en las teclas, como contar cuántas veces sucedió un evento para un usuario determinado. También realizo búsquedas rápidas en la memoria que necesito asignar a diferentes valores. Redis es una gran herramienta para un pequeño conjunto de datos y es extremadamente rápido. La configuración también es muy fácil.

Aerospike

Yo personalmente uso Aerospike para reemplazar a Redis cuando llega el momento de escalar. Según tengo entendido, se puede usar para más. Al igual que Redis, Aerospike es una tienda de clave-valor. Creo que la edición de código abierto también admite índices secundarios que Redis no admite (no he usado índices secundarios en producción, pero he hecho pocas pruebas con ellos).

La mejor característica de Aerospike es su capacidad de escalar. El problema más grande que necesitaba resolver cuando buscaba Aerospike era escalar mi sistema para manejar grandes conjuntos de datos sin dejar de ser extremadamente rápido. El proyecto para el que uso Aerospike tiene requisitos de velocidad muy estrictos. Por lo general, hago de 3 a 4 búsquedas en la base de datos más otros procesamientos y necesito tener tiempos de transacción inferiores a 50 ms. Algunas búsquedas se realizan en conjuntos de datos de más de 300 GB. No pude encontrar una solución para almacenar estos datos y hacerlos accesibles en un tiempo razonable. Obviamente, Redis no funcionará a menos que tenga una máquina que tenga más de 300 GB de RAM. MongoDB comenzó a funcionar extremadamente mal con un tamaño muy inferior a 300 GB. Así que le di una oportunidad a Aerospike y pudo manejar todo muy bien. Lo mejor de Aerospike:a medida que mi conjunto de datos creció, no tuve que hacer mucho más que levantar una caja nueva cuando fue necesario. La velocidad se ha mantenido constante.

También encuentro muy buena la documentación de Aerospikes. No es demasiado difícil de configurar y es bastante fácil encontrar respuestas para cualquier problema que surja.

Conclusión

Entonces, ¿Aerospike es tan bueno como dicen? Personalmente, no he visto nada menos que lo que se ha afirmado. No he tenido que escalar a 1 millón de TPS, pero creo que con suficiente hardware sería posible. También creo que los números muestran una diferencia de velocidad entre Aerospike y MongoDB. Aerospike es una base de datos mucho más "configurada" y "planificada" que MongoDB. Debido a esto, Aerospike será mucho más rápido a escala que MongoDB. Solo tiene que preocuparse por un índice único (o en el caso de índices secundarios, unos pocos cientos) a diferencia de MongoDB, que puede cambiar dinámicamente. La pregunta que realmente necesita hacerse es qué está tratando de lograr con su base de datos. Luego busque qué base de datos se ajusta mejor a sus necesidades. Si necesita una base de datos de almacenamiento clave-valor rápida y escalable, diría que Aerospike es probablemente la mejor que existe.

Avíseme si tiene alguna pregunta específica o necesita que se aclare algo. Probablemente podría ayudarte.