He usado CouchDB para algunas pequeñas aplicaciones internas, ha sido muy estable y no he tenido quejas serias. Aparte de eso, algunas quejas pequeñas:
1) Las bases de datos se pueden sincronizar, pero no los nodos. Es decir, si tiene cuatro servidores y veinte bases de datos, debe especificar cada servidor y cada base de datos para sincronizar. Una pequeña queja, pero prefiero menos administración a más.
2) Dado que las bases de datos solo se agregan, una base de datos con mucha actividad se vuelve realmente grande muy rápido. La compactación corrige esto, pero no es exactamente rápido, especialmente en grandes bases de datos (por ejemplo, 20 gigabytes). Programar compactos para los fines de semana resolvió esto, pero hacerlo probablemente sea una opción menos para las aplicaciones de alta disponibilidad.
3) Javascript es el idioma de vista de facto. Lo que no se publicita bien es que, dado que CouchDB está escrito en Erlang, también es compatible con las vistas de Erlang, que son más rápidas ya que son "nativas". Para aplicaciones que realizan muchas operaciones en vistas, Erlang probablemente tenga más sentido.
Dejando a un lado esas cuestiones menores, lo recomiendo de todo corazón.
Debo aclarar que compactar una base de datos no la hace no disponible, pero tiene un gran impacto en el rendimiento. De hecho, si las escrituras ocurren más rápido que el compacto, es posible que el compacto nunca termine. Ver: http://wiki.apache.org/couchdb/Compaction – lazyconfabulator
Gracias brillantes, por el consejo. Especialmente las vistas y sincronizaciones de ip en erlang ... – NoelAdy