J'ai suivi le CouchDB Nous avons suivi le projet avec intérêt au cours des deux dernières années, et nous constatons qu'il est maintenant un projet de l'incubateur Apache. Avant cela, le site web de CouchDB était rempli de ne pas utiliser pour le code de production Je n'ai donc fait que garder un œil dessus. J'aimerais connaître votre expérience si vous avez utilisé CouchDB dans le cadre d'un projet réel ou d'un pilote technologique.
Réponses
Trop de publicités?Après 18 mois de prototypes, de tests et d'attente de la mise en place de CouchDb, nous avons a déplacé une application interne sur CouchDB en décembre 2008. Jusqu'à présent, je suis très satisfait de ce changement. Elle nous débarrasse d'un grand nombre d'objets du système de fichiers (les PDF et les JPEG, désormais stockés en tant que pièces jointes dans CouchDB). Cela nous permet de nous débarrasser de NFS et de mettre en grappe/répliquer plus facilement nos serveurs web frontaux.
La mesure dans laquelle CouchDB est prêt pour vous dépend en grande partie de la culture de votre organisation. Nous avons une équipe de développement interne qui maintient plusieurs applications Erlang internes. Etant donné que CouchDB est écrit en Erlang et que la base de code est d'une qualité tout à fait décente, nous étions confiants dans notre capacité à résoudre les problèmes de CouchDB en cas de besoin - ou au moins à récupérer nos données. Nous avons également engagé l'un des membres de l'équipe centrale de CouchDB en tant que consultant, juste au cas où.
Mais CouchDB n'est certainement pas encore la version 1.0. Les processus Web worker se bloquent en permanence (si vous les utilisez mal). La réplication s'arrête pour nous et nous ne recevons pas de messages d'erreur à ce sujet. La documentation est encore très insuffisante. Pourtant, je suis convaincu qu'il ne mangera pas nos données et le développement avance à un rythme raisonnable.
Pour vous donner une idée de notre application : actuellement, notre plus grande base de données compte environ 512 000 enregistrements et occupe 7,5 Go d'espace disque.
J'utilise le CouchDB pour alimenter une application Facebook (plus de 35 000 utilisateurs actifs par mois). Pendant un certain temps, j'ai utilisé MySQL, mais après avoir porté l'ensemble du projet de Perl à Erlang, j'ai décidé de migrer toutes les données vers CouchDB et de les utiliser à la place.
CouchDB a été un excellent magasin de données avec lequel travailler. Je pense qu'il est en passe de devenir un acteur majeur des services basés sur le web.
J'ai fait la connaissance d'une des personnes (Jan) travaillant sur ce projet il y a un certain temps (environ 6 mois) et je joue avec depuis. J'ai trouvé que la communauté autour de CouchDB était à la fois très bien informée et très serviable, de sorte que chaque fois que je rencontrais un problème, il était résolu en quelques minutes ou quelques heures au moins.
L'autre semaine, nous avons donné le coup d'envoi d'un projet qui nécessite de stocker des données de manière non relationnelle et, en raison du stockage orienté document de CouchDB, nous l'avons choisi comme l'une des technologies à utiliser. C'est donc la première fois que je vais l'utiliser en production, mais je suis assez confiant :)
Juste une mise à jour ici (2009-10-25) :
Notre première installation de CouchDB fait 20 Go et héberge 40 millions d'enregistrements. Elle fonctionne en production depuis janvier 2009, et c'est une réussite. Lire ( GET
) la vitesse est exceptionnelle et nous l'utilisons comme magasin pour des données complexes, et ensuite c'est juste le tirage.
Notre deuxième installation de couchdb a deux bases de données, l'une est de 160 000 000+ documents (210 GB), et croît entre 150 000-300 000 documents par jour. L'autre est uniquement 35 000 000 de documents (7 Go). Cette configuration comporte beaucoup plus de lectures et d'écritures et les premiers tests sont très performants.
La construction de la vue sur la base de données de 160 000 000 de documents a pris environ une semaine, mais depuis lors, nous sommes passés à une instance Amazon EC2 plus grande et nous nous préparons également à passer à CouchDB. 0.10.x
(de 0.9.1
) car cette version comprend de nombreuses améliorations des performances dans la construction des vues.
J'utilise couchdb dans quelques scénarios, comme un magasin de documents pour http://devk.it (en cours de développement) et, à une échelle beaucoup plus grande, comme magasin de modèles pour un système de distribution de courrier électronique.
CouchDB est très intelligent pour ce qu'il fait, mais je n'ai pas réussi à le faire fonctionner à un niveau de concurrence aussi élevé que je l'aurais souhaité. Notez également que la taille maximale du document est assez limitée à 1MB en raison de la taille maximale du tampon d'entrée codée en dur dans mochiweb. Vous pouvez cependant modifier un fichier d'en-tête et recompiler pour contourner cette limite.
J'utilise CouchDB pour stocker (et servir) les évaluations d'articles sur mon blog. Il n'y a pas vraiment de trafic intense, mais le système est solide comme un roc jusqu'à présent.
Je prévois également d'ajouter des commentaires à un moment donné, que je stockerai très probablement dans CouchDB.
Je l'ai trouvé assez facile à utiliser, sous OSX vous pouvez juste télécharger CouchDBX pour commencer rapidement. J'utilise un Sinatra backend avec RestClient pour interagir avec le canapé par le biais de verbes HTTP et autres.
Très amusant.