Tengo la siguiente situación. Hay muchas consultas en la base de datos (comúnmente escribiendo comentarios, leyendo perfiles, etc.), y creo que habrá más lecturas que escrituras. Quiero tener una buena posibilidad de escalar db a varios servidores. Entonces, y me gusta nosql :) Como entiendo al leer blogs y respuestas para preguntas sobre StackOverflow (por ejemplo this one), la mejor opción en esta situación es usar Cassandra.Cassandra o MongoDB para una buena escala y gran cantidad de consultas
Entonces, la pregunta es: ¿Cassandra es más adecuada para mis propósitos? ¿Por qué?
Y la segunda pregunta será sobre las bibliotecas de cliente asíncronas para Tornado - ¿Conoces algunas implementaciones de esto? Como puede ver en la página wiki vinculada anteriormente, hay clientes asíncronos solo para mongodb y couchdb. Y este hecho también me detiene.
Tal vez ahora pueda usar MongoDB (porque es una biblioteca asíncrona y tal vez en la primera vez será más rápido que Cassandra en varios servidores pero sin asincrónico), y después de un tiempo convertir datos en mongo a cassandra. ¿Qué piensa usted al respecto?
AFAIK no hay adaptadas (asincrónicas) Cassandra libs que se ejecutan dentro de Tornados IOLoop. (ps leer la publicación de Bens sobre hilos: https://github.com/facebook/tornado/wiki/Threading-and-concurrency) – Schildmeijer
¡Gracias por un enlace! ¿Cómo crees que utilizar Cassandra sin sincronización será más rápido que MongoDB con el módulo asíncrono? O tal vez la diferencia será muy poco, y tendré tiempo para escribir mi propia implementación asincrónica. Tal vez simplemente pueda ejecutar un hilo especial para la interacción db, que se comunicará con el hilo de Tornado. – dizpers
Tornado admite twisted, lo que significa que puede usar la biblioteca asincrónica de torsión de teléfono para la compatibilidad con Async Cassandra. – koblas