Ho usato CouchDB per alcune piccole applicazioni interne: è stato molto stabile e non ho avuto lamentele serie. Mettendo da parte, alcuni piccoli difetti -
1) I database possono essere sincronizzati, ma non i nodi. Cioè, se hai quattro server e venti database, devi specificare ciascun server e ogni database da sincronizzare. Un piccolo inconveniente, ma preferisco meno gestione a più.
2) Poiché i database sono solo append, un database con un gruppo di attività diventa davvero molto veloce. La compattazione risolve questo problema, ma non è esattamente veloce, specialmente su database di grandi dimensioni (ad esempio 20 gigabyte). La pianificazione della compattazione per i fine settimana ha risolto questo problema, ma farlo è probabilmente meno un'opzione per le applicazioni ad alta disponibilità.
3) Javascript è la lingua di vista de facto. Ciò che non è ben pubblicizzato è che poiché CouchDB è scritto in Erlang, supporta anche le visualizzazioni di Erlang, che sono più veloci in quanto sono "native". Per le applicazioni che fanno molte operazioni nelle viste, probabilmente Erlang ha più senso.
Mettendo da parte questi problemi minori, lo raccomanderei di tutto cuore.
Devo chiarire che la compattazione di un database non lo rende non disponibile, ma influisce notevolmente sulle prestazioni. Infatti, se le scritture si verificano più velocemente rispetto alla compattezza, la compatta potrebbe non finire mai. Vedi: http://wiki.apache.org/couchdb/Compaction – lazyconfabulator
Grazie di cuore, per il consiglio. Soprattutto l'ip su viste e sincronizzazioni di erlang ... – NoelAdy