database - requerimientos - ¿Alguien que use CouchDB?
couchdb vs mongodb (7)
Estoy usando couchdb en algunos escenarios, como una tienda de documentos para http://devk.it (en desarrollo) y en una escala mucho mayor como tienda de plantillas para un sistema distribuido de entrega de correo electrónico.
CouchDB es muy hábil para lo que hace, pero no pude hacer que funcionara a un nivel de concurrencia tan alto como hubiera esperado. También tenga en cuenta que el tamaño máximo del documento es bastante limitado en 1 MB debido al tamaño máximo de búfer de entrada codificado en mochiweb. Sin embargo, puede modificar un archivo de encabezado y volver a compilar para superar este límite.
He seguido el proyecto CouchDB con interés en los últimos años y veo que ahora es un proyecto de incubadora Apache. Antes de eso, el sitio web de CouchDB estaba lleno de no utilizar para las renuncias de tipo de código de producción , por lo que no había hecho más que vigilarlo. Me gustaría conocer sus experiencias si ha estado usando CouchDB ya sea para un proyecto en vivo o un piloto de tecnología.
Uso el CouchDB para alimentar una aplicación de Facebook (más de 35 mil usuarios activos mensuales). Durante un tiempo usé MySQL, pero después de trasladar el proyecto completo de Perl a Erlang, decidí buscar el oro y migrar todos los datos a CouchDB y usarlos en su lugar.
CouchDB ha sido una gran tienda de datos para trabajar. Creo que está en camino de convertirse en un jugador importante en servicios basados en web.
Por el momento estoy trabajando con CouchDB para una tesis de informática. Estoy escribiendo sobre mis progresos y opiniones en mi blog, http://metalelf0dev.blogspot.com . Creo que el proyecto está bien hecho, pero la documentación existente no está organizada como debería. Un tutorial rápido sobre la interfaz web de Futon podría ser realmente útil para los principiantes en mi humilde opinión :)
Estoy usando CouchDB para almacenar (y publicar) clasificaciones de artículos en mi blog. No es exactamente tráfico pesado, pero hasta ahora ha sido sólido.
También estoy planeando agregar comentarios alguna vez que probablemente también almacenaré en CouchDB.
Me resultó bastante fácil comenzar, en OSX puedes descargar CouchDBX para comenzar rápidamente. Utilizo un back-end de Sinatra con RestClient para interactuar con ''el sofá'' a través de verbos HTTP y demás .
Gran diversión.
Llegué a conocer a una de las personas (Jan) que trabaja en él hace un tiempo (como 6 meses) y he estado jugando con él desde entonces. Encontré que la comunidad en torno a CouchDB era a la vez muy eficiente y servicial, por lo que cada vez que encontraba un problema, lo resolvía en cuestión de minutos u horas como mínimo.
La otra semana iniciamos un proyecto que básicamente requiere que almacenemos datos de manera no relacional y, debido a la tienda de documentos orientada a CouchDB, lo seleccionamos como una de las tecnologías a utilizar. Así que esta es realmente la primera vez que lo ejecutaré en producción, pero todavía estoy bastante confiado al respecto. :)
Solo una actualización aquí (25-10-2009):
Nuestra primera instalación de CouchDB es de 20 GB, alberga 40 millones de registros. Ha estado funcionando en producción desde enero de 2009, y ha sido genial. La velocidad de lectura ( GET
) es sobresaliente y la usamos como una tienda para datos complejos, y luego solo es de extracción.
Nuestra segunda instalación de couchdb tiene dos bases de datos, una es de más de 160,000,000 documentos (210 GB) y crece entre 150,000-300,000 documentos por día. El otro es solo 35,000,000 de documentos (7 GB). Esta configuración tiene muchas más lecturas y escrituras, y las pruebas iniciales funcionan muy bien.
La creación de vistas en la base de datos de documentos de 160,000,000 tomó aproximadamente una semana, pero desde entonces nos hemos actualizado a una instancia más grande de Amazon EC2 y también nos estamos preparando para actualizar a CouchDB 0.10.x
(de 0.9.1
) ya que esta versión incluye mucho rendimiento mejoras en la construcción de vistas.
Después de 18 meses de prototipos, probando y esperando que CouchDb se prepare, trasladamos una aplicación interna a CouchDB en diciembre de 2008. Hasta ahora estoy muy contento con ese movimiento. Nos deshace de muchos objetos del sistema de archivos (archivos PDF y JPEG, ahora almacenados como archivos adjuntos en CouchDB). Esto nos permite deshacernos de NFS y simplificar el clúster / replicar nuestros servidores web de frontend.
Hasta qué punto CouchDB está listo para usted depende en gran medida de la cultura de su organización. Tenemos un equipo de desarrollo interno que mantiene varias aplicaciones internas de Erlang. Como CouchDB está escrito en Erlang y la base de código es bastante decente, nos sentimos seguros de que podríamos solucionar los problemas de tope de show en CouchDB en caso de necesidad, o al menos recuperar nuestros datos. También contratamos a uno de los principales equipos de CouchDB como consultor, por si acaso.
Pero CouchDB seguro no es 1.0 todavía. Hay bloqueos en los procesos de trabajo web todo el tiempo (si los usa mal). La replicación se rompe para nosotros y no obtenemos mensajes de error al respecto. La documentación aún es muy deficiente. Sin embargo, estoy seguro de que no se comerá nuestros datos y el desarrollo avanza a un ritmo razonable.
Para darle una idea acerca de nuestra aplicación: actualmente nuestra base de datos más grande es de aproximadamente 512,000 registros que toman 7,5 GB de espacio de disco.
Usé el couchdb dos veces en producción. Primero fue el proyecto de me gusta de wiki y creo que couchdb fue el candidato perfecto para ese rol. Guardar la versión de todos los documentos ayuda mucho. El segundo proyecto fue bastante cargado y la idea fue arrojar datos sociales primero, luego consultarlo con varios filtros. Parecía que las funciones estándar de consulta de CouchDB se ven un poco puras para nuestras necesidades. Pero agregamos a Lucene como un indexador de texto completo y después de eso hacemos muchas consultas durante la parte de Lucene. Y esa solución se ve lo suficientemente bien.