2012-04-17 14 views
13

Mi equipo me ha pedido que elija entre Cassandra y SOLR para una respuesta más rápida @ frond end questions. Les dije que Cassandra es una cosa NOSQL db mientras que SOLR está indexando algo. Pero luego dicen que podemos empujar nuestro DB completo a SOLR (como usar SOLR como db) o simplemente podemos usar Cassandra con SOLR. Todo confundidoCassandra o SOLR? ¿Qué le da un mejor rendimiento a las consultas de lectura frond end?

La cantidad de datos que estamos tratando es como 1 mil millones repartidos en 4 tablas MySQL (recuperadas mediante combinaciones) y obtenemos solo consultas leídas del sitio web. No necesitamos BÚSQUEDA DE TEXTO COMPLETO

Creo que algo en lo que SOLR no se puede controlar fácilmente es su función de búsqueda de texto completo, pero no la necesitamos en nuestro caso.

¿Qué más tiene SOLR que Cassandra no puede proporcionar y qué tiene Cassandra que pueda reemplazar a SOLR en nuestro caso particular?

En otras palabras, ¿quién va a tener un mejor rendimiento? Cassandra sola? SOLR como un DB solo? ¿O ambos juntos? Y lo más importante, ¿por qué y por qué no?

Es muy importante para mí hacer una copia de seguridad de mi elección con un punto fuerte como si uno fuera mejor que el otro durante mi próxima reunión de equipo.

Y gracias de antemano.

EDIT:

  • solandra no no es una opción, ya que no es tan madura y no más mantuvo supongo
  • DataStax es una opción porque característica SOLR se proporciona en la única empresa Edición
+1

@ Xodarap ¿cómo es un gran problema? Puede tener garantías de consistencia fuertes si las necesita. Puedes elegir (por operación) cuántas réplicas esperar para obtener una respuesta de: http://www.datastax.com/docs/1.0/dml/data_consistency –

+0

@ Tyler: Facebook cambió a hbase [debido parcialmente a su simplicidad modelo de coherencia] (http://highscalability.com/blog/2010/11/16/facebooks-new-real-time-messaging-system-hbase-to-store-135.html) y sé que aumenta la coherencia para nosotros en Cassandra dio lugar a problemas de latencia. No tengo dudas de que esto se puede solucionar, pero vale la pena considerarlo. – Xodarap

Respuesta

4
  • Cassandra i es un almacén de datos NoSQL y fue diseñado para cuidar grandes cantidades de datos. Tera bytes y más. Definitivamente fue diseñado para funcionar.
  • Recuerde que los DB de NoSQL o los almacenes de datos tienen capacidades limitadas cuando se trata de consultas. No tendrán consultas JOIN. Como esto matará a un sistema. ¡Piénsalo!
  • Definitivamente podrá leer/escribir bastante rápido y se pueden consultar algunos de los datos.
  • Esquema flexible, puede insertar datos dispersos en él. Es decir, donde en DB generales empuja NULL para una entrada vacía, aquí no la empuja :) ¡No es necesario!
  • Sin búsqueda de texto completo.

Aquí es donde entra el gran pero en.

  • Una vez dicho lo anterior, SOLR en el otro extremo es TF-IDF completa del motor de búsqueda de texto. Aunque puedes usarlo para tu DB.
  • Esquema flexible. Solo marque los campos que no son obligatorios.
  • Solr lo ayudará a realizar token, analizar e indexar los datos rápidamente. Tendrá una excelente respuesta. Devuelve XML y puede analizar el XML para crear datos representables.
  • Las consultas de lectura son rápidas y me refiero a las realmente rápidas.Pero no tengo comparación entre Cassandra y SOLR para compartir.

Y al final, ya que quiere CASSANDRA y SOLR juntos. Confirmar SOLANDRA (former Lucandra)

+2

Solr [permite] (http://wiki.apache.org/solr/SchemaXml#Dynamic_fields) para un esquema flexible. – Xodarap

+1

@Wajih: De acuerdo, Cassandra puede encargarse de una gran cantidad de datos, pero luego SOLR también puede hacer eso, se escala bien, supongo. Por favor, corríjame si estoy equivocado. Además, JOIN es algo que ni SOLR ni Cassandra pueden proporcionar. El esquema flexible es provisto por ambos. SOLR realizó esta búsqueda de texto completo de alto rendimiento, pero luego no la necesitamos en nuestra situación particular. Tampoco necesitamos una operación de escritura. Entonces, ahora usted dice que las lecturas de Cassandra son bastante rápidas, pero luego dice que SOLR es rápido de nuevo, por lo que la pregunta es: ¿qué lo hace mejor que otros en nuestro caso? :( – codersofthedark

+0

He reescrito la pregunta para una mejor claridad de la situación. :) – codersofthedark

4

También puede echar un vistazo a Datastax
Hay Comunidad y Enterprise Edition, aunque creo que Solr no está incluido en la edición de la comunidad :(

Solandra no se está desarrollando activamente más, la autor se trasladó a DataStax y continuó su trabajo allí.

mi humilde opinión lo es para Cloudera Hadoop, que es DataStax de Cassandra.

+1

oh sí ... se olvidó de DataStax. Debería haberlo mencionado :) –

+0

@mbonaci: es realmente importante como para entender por qué tenemos que usar ambos y Trus Datastax/Solandra? Quiero decir, ¿qué hay en Cassandra que SOLR no puede proporcionar y viceversa? No necesitamos búsqueda de texto completo. ¿Entonces no puedo reemplazar al otro? – codersofthedark

+0

He reescrito la pregunta para una mejor claridad de la situación. :) – codersofthedark

6

Si usted no necesita las capacidades de búsqueda de texto completo de Solr, hay muy litt la razón para elegirla en lugar de Cassandra, en mi opinión.

(Revelación:. Trabajo para DataStax)

Operacionalmente, el manejo de un clúster Cassandra será mucho más sencillo debido a la arquitectura basada en Dynamo. Sharding Solr puede ser bastante doloroso, que es una de las principales razones por las que en DataStax creamos búsquedas en DSE; es algo que un grupo quiere evitar. No estoy intentando venderte en DSE, solo señalo el lado negativo de Solr.

Por ejemplo, cuando desea cambiar el número de fragmentos con Solr, debe crear y generar un índice completamente nuevo. Debe preocuparse por el punto muerto con un clúster de Solr. Hay varias otras limitaciones: http://wiki.apache.org/solr/DistributedSearch

No ha dicho mucho sobre qué tipo de consultas necesita para poder admitir. Agregar esa información te daría mejores respuestas.

+0

(Actualmente las consultas son solo consultas leídas y se obtienen usando join en la tabla 4 de MySQL. Déjame saber si quieres saber algo más sobre la naturaleza de las consultas) Por lo tanto, de tu aporte puedo concluir que si nuestro índice está en un solo sistema y no necesitamos capacidades de búsqueda de texto completo, entonces SOLR y Cassandra van a funcionar con la misma probabilidad, pero si el índice es distributivo, entonces ¿sería mejor usar Cassandra? ¿O incluso en una sola máquina, Cassandra tendrá un mejor rendimiento? Si es sí/no, ¿por qué? – codersofthedark

+0

@dragosrsupercool la naturaleza de las consultas definitivamente sería útil; cuantos más detalles, mejor. –

1

Las funciones de indexación de Solrs superarían a Cassandra en las lecturas. Indexará consultas populares, por lo que las más frecuentes serán más rápidas. Fue construido para lecturas, cassandra está construido para almacenar. Pero como ya se dijo, Cassandra escalará increíblemente si es necesario. ¿Por qué no referencia de un solo nodo, cadenas de texto aleatorias de 1 mill, promedio de consultas de 1mill? Cualquiera de ellos realizará mysql y mucho menos mysql join questions. PS solr pronto apoyará se une Creo que solr 4 .....

+0

La marca de banco suena bien. – codersofthedark

Cuestiones relacionadas