2010-07-27 45 views
9

Hemos desarrollado la solución PaaS para PHP. Como parte de eso, ofrecemos a los desarrolladores ver los archivos Apache error_log y access_log a través de nuestra API.¿Qué solución NoSQL es la mejor para almacenar Apache error_log y access_log? ¿Cassandra o MongoDB?

Actualmente escribimos los registros en archivos en el disco separados por implementación (vhost).

Dado que esto no se escala demasiado bien con una mayor cantidad de nodos y despliegues, aunque los archivos están en el sistema de archivos distribuido (GlusterFS), nos gustaría cambiar a algo mejor.

Especialmente por razones de facturación y estadísticas, preferimos no analizar los archivos de registro cada vez.

Como las colecciones copuladas de MongoDBs se ven increíbles para el registro, queríamos ir con eso. Pero resulta que no parecen funcionar con auto sharding, lo que nos arruina el punto, ya que esperamos mucho más escrituras que lecturas.

La otra opción fue Cassandra, que me gusta porque cada nodo tiene el mismo enfoque, pero no tienen algo así como colecciones con tope.

Resulta que ninguna de las dos soluciones ofrece una característica distinta que me ayude a tomar una decisión, o no la veo.

Entonces, ¿qué me gustaría saber si alguien ha utilizado uno de los dos sistemas para iniciar sesión anteriormente? ¿Cuáles son sus experiencias, puede darme algunos consejos? ¿O hay otras soluciones que se adapten mejor a nuestras necesidades?

Respuesta

5

Puede consultar este artículo en Cloudkick si está considerando usar Cassandra: 4 Months with Cassandra, a love story.

Están usando Cassandra para almacenar diferentes métricas para su sistema, que es algo similar al almacenamiento de archivos de registro.

EDIT:

Si aún no ha decidido qué usar, he aquí una gran solución usando MongoDB como backend:

Graylog2 es una implementación de syslog de código abierto que almacena su registros en MongoDB. Consiste en un servidor escrito en Java que acepta sus mensajes syslog a través de TCP o UDP y lo almacena en la base de datos. La segunda parte es una interfaz web de Ruby on Rails que le permite ver los mensajes de registro.

+0

Gracias por su respuesta. Lo leí y también http://blog.boxedice.com/2009/07/25/choosing-a-non-relational-database-why-we-migrated-from-mysql-to-mongodb/ que trata sobre un servidor solución de monitoreo que usa MongoDB y parece estar contento con ella. Pero pensé que aparte de eso, podría haber otras opiniones o soluciones. – pst

+0

El mejor consejo sería * jugar * con ambos y ver cuál funciona para usted. Ambos son muy fáciles de configurar y puedes ver por ti mismo lo que más te convenga. –

+0

Puede que también le interese esta pregunta: http://stackoverflow.com/questions/2892729/mongodb-vs-cassandra –

5

Resulta que ninguna de las dos soluciones ofrece una característica distintiva que me ayuda a tomar una decisión, o yo no lo ven.

Honestamente, estamos pasando por esta prueba en este momento con algunos datos de registro serios. (y por ahora, quiero decir, algunos de nosotros estuvimos despiertos hasta tarde ayer por la noche con estas pruebas).

Para mí, aquí están los dos rasgo distintivo: facilidad de uso ydemostrado escalar.

Facilidad de uso

  • MongoDB fue fácil. En un par de horas pasé de una computadora en blanco a una instancia activa de Mongo con datos importados de MySQL y algunos mapas reducidos.
  • En el mismo período de tiempo, el equipo Cassandra se sentó alrededor de volver a compilar los archivos Java tratando de configurar el Hadoop para ejecutar una implementación existente de Cassandra para que incluso pudieran ejecutar map-reduce.

probada Escala

  • MongoDB sharding todavía está en beta. Está programado para su lanzamiento en las próximas semanas. Eso es bastante apretado.
  • Cassandra sharding ha sido probado en algunos casos muy grandes.

Así que creo que la respuesta va a ser específica para sus gustos personales. Honestamente, creo que Cassandra puede ser un producto probado más estable &, pero también sé por experiencia que la curva de aprendizaje y configuración es mucho más pronunciada. Entonces podría valer la pena intentar un poco de ambos.

+0

Estoy de acuerdo con usted. MongoDB es realmente fácil de instalar, pero la fusión automática está en beta y no parece funcionar con colecciones limitadas, como dije antes. La fusión de Cassandara debería funcionar, ya que parece estar siendo utilizada por algunas grandes compañías. Pero la configuración es una pita y odio los archivos de configuración xml con una pasión. Pero ese es el gusto personal. Gracias por su contribución y le haremos saber cómo esto funciona para nosotros. Actualmente estamos probando MongoDB. Tenemos que probar uno tras otro porque no puedo dividirme en equipos. :) – pst

Cuestiones relacionadas