database - example - nosql mongodb
Base de datos de tienda de documentos consistente al final similar a cassandra (1)
Estoy buscando un almacén de datos de código abierto que se pueda escalar con la misma facilidad que Cassandra, pero los datos se pueden consultar a través de documentos como MongoDB.
¿Hay actualmente alguna base de datos que haga esto?
En este sitio web http://nosql-database.org puede encontrar una lista de muchas bases de datos NoSQL clasificadas por tipos de almacén de datos, debe verificar las tiendas de documentos allí.
No estoy nombrando ninguna base de datos específica para evitar una respuesta sesgada / basada en opinión, pero si está interesado en un almacén de datos que sea tan escalable como Cassandra, es probable que desee verificar los que utilizan master-master / multi-master / la arquitectura masterless (lo que se llame, la idea es lo mismo), donde tanto las escrituras como las lecturas se pueden dividir entre todos los nodos del clúster.
Sé que Cassandra está optimizada para escribir en lugar de leer, pero sin más detalles en la pregunta no se puede refinar la respuesta con más información.
Actualizar:
Descargo de responsabilidad : no he usado CouchDB en absoluto, y tampoco he probado su rendimiento.
Desde que detectó CouchDB agregaré lo que encontré en la documentación oficial, en la base de datos distribuida y la sección de replicación .
CouchDB es un sistema de base de datos distribuida basada en pares. Permite a los usuarios y servidores acceder y actualizar los mismos datos compartidos mientras están desconectados. Esos cambios pueden luego replicarse bidireccionalmente más tarde.
Los modelos de almacenamiento, visualización y seguridad de documentos CouchDB están diseñados para trabajar juntos y hacer que la replicación bidireccional sea eficiente y confiable. Tanto los documentos como los diseños pueden replicarse, permitiendo que las aplicaciones completas de bases de datos (incluyendo diseño de aplicaciones, lógica y datos) se repliquen en computadoras portátiles para su uso fuera de línea o se repliquen en servidores en oficinas remotas donde las conexiones lentas o no confiables dificultan compartir datos.
El proceso de replicación es incremental. En el nivel de la base de datos, la replicación solo examina los documentos actualizados desde la última replicación. Luego, para cada documento actualizado, solo los campos y blobs que han cambiado se replican en la red. Si la replicación falla en algún paso, debido a problemas de red o bloqueo, por ejemplo, la próxima replicación se reinicia en el mismo documento donde se dejó.
Se pueden crear y mantener réplicas parciales. La replicación se puede filtrar mediante una función de JavaScript, de modo que solo se repliquen documentos particulares o aquellos que cumplan con criterios específicos. Esto puede permitir a los usuarios tomar subconjuntos de una gran aplicación de base de datos compartida fuera de línea para su propio uso, manteniendo una interacción normal con la aplicación y ese subconjunto de datos.
Lo cual parece bastante escalable para mí, ya que parece que puedes agregar nuevos nodos al clúster y luego todos los datos se replican.
También las réplicas parciales parecen una opción interesante para los grandes conjuntos de datos, que configuraría muy cuidadosamente para evitar situaciones en las que una consulta dada a la base de datos no arroje resultados válidos, por ejemplo, en el caso de una partición de red y tener solo acceso a un conjunto parcial.