MongoDB ou CouchDB-apte à la production? [fermé]

je me demandais si quelqu'un pouvait me dire si MongoDB ou CouchDB sont prêts pour un production environnement.

je regarde maintenant ces solutions de stockage (je suis en faveur de MongoDB en ce moment), mais ces projets sont assez jeunes et donc je prévois que je vais devoir travailler assez dur pour convaincre mon manager que nous devrions adopter cette nouvelle technologie.

ce que j'aimerais savoir c'est:

  1. qui utilise MongoDB ou CouchDB aujourd'hui dans un environnement de production?

  2. comment utilisez-vous MongoDB/CouchDB?

  3. quels problèmes (le cas échéant) avez-vous rencontrés lorsque vous avez adopté ce nouveau mécanisme de stockage (et comment les avez-vous surmontés)?

  4. Comment avez-vous fait face à des problèmes de migration?

  5. vous avez toutes les bonnes/mauvaises expériences avec l'une de ces solutions que vous aimeriez partager?

485
demandé sur Alan 2009-05-22 03:22:23
la source

19 ответов

je suis le CTO de 10gen (développeurs de MongoDB) donc je suis un peu partial, mais je gère aussi quelques sites qui utilisent MongoDB en production.

businessinsider utilise mongo dans la production depuis plus d'un an maintenant. Ils l'utilisent pour tout, depuis les utilisateurs et les billets de blog, jusqu'à chaque image sur le site.

shopwiki l'utilise pour quelques choses, y compris l'analyse en temps réel et une mise en cache couche. Ils font plus de 1000 Écritures par seconde à une base de données assez grande.

si vous allez à la page de Mongo Production de déploiements vous verrez des gens qui utilisent mongo dans la production.

si vous avez des questions sur l'échelle ou la portée des déploiements de production, postez-les sur notre liste d'utilisateurs et nous serons ravis de vous aider.

270
répondu 5 revs, 5 users 73%user111359 2014-08-05 10:04:28
la source

the BBC and meebo.com utilise CouchDB en production et un de mes clients aussi. Voici une liste D'autres personnes utilisant Couch: CouchDB dans la nature

le grand défi est de savoir organiser vos documents et arrêter de penser en termes de données relationnelles.

111
répondu Matt Aimonetti 2014-05-18 07:22:32
la source
44
répondu dormsbee 2014-05-18 07:23:11
la source

nous exécutons CouchDB comme un remplaçant pour MySQL pour nos magasins (70.0000 articles/boutique, un total de 4 millions d'attributs de tous les articles, connexions croisées entre les articles).

nos buts étaient:

  1. réplication facile à partir d'un master-db à plusieurs clients avec différents documents.

  2. données pré-calculées rapides comme " combien de parties ai-je avec cet attribut et ce filtre, correspondant à ces conditions "

faits:

  1. nos magasins fonctionnent maintenant beaucoup plus vite qu'avec MySQL (et mysql-base de données nécessaire en plus 1-3 jours de pré-calcul (donc mise à jour était deux fois par mois), ce qui rend les données prêtes pour le comptage et le filtrage des produits, CouchDB a besoin de 5 heures, afin que nous puissions mettre à jour les données des produits chaque nuit)
  2. mise en place de la distribution des données (filtrée) et des sauvegardes de la boutique noeuds est rapide et facile

mais aussi:

  1. Compréhension map/reduce et les limites de ne pas avoir rejoint est assez dur
  2. aucune opération sur des données comme "supprimer où" ou" mettre à jour où "sans programmes externes
  3. la réplication fonctionne bien, à moins qu'il n'y ait un problème; alors il est vraiment difficile de trouver quelle était la raison (pour les débutants)
  4. l'installation de CouchDB sans binaires (oui il y en a un dans la nature, mais pas pour toutes les versions D'OS/) pourrait être difficile, si vous n'êtes pas un geek de Linux. Mais la communauté CouchDB est utile (#couchdb), et heureusement il y a des entreprises là-bas (cloudant, iriscouch) qui offrent des services du libre au grand business.
  5. CouchDB va de l'avant, donc il y a beaucoup de changements (améliorations) en cours qui pourraient changer votre façon de travailler. Mais les choses basiques restent stables.

comme résultat: MySQL comme base de données pour la création et le maintien de données est fiable et facile à comprendre et à manipuler. Je pense que nous ne changerons pas cela. Mais je ne veux pas non plus manquer la puissance des vues CouchDB et la facilité de réplication de la configuration.

canapés de Production parfois causé des problèmes après des mois de travail en raison de la mauvaise configuration et les logrotates oubliées (voir la construction prend trop de temps ou raccroche, la réplication s'arrête), mais jamais perdu des données, et pourrait toujours être facilement réinitialiser.

34
répondu okurow 2014-01-13 14:44:22
la source

J'utilise CouchDB en production. Actuellement, il stocke tous ces champs 'optionnels' qui n'étaient pas dans le schéma original de la base de données. Et maintenant, je pense transférer toutes les données à CouchDB.

c'est assez risqué, Je l'admets. Premièrement, parce que ce n'est pas v1.0 pas encore. Et deuxièmement, parce qu'il est avide d'espace. Selon mes calculs, le fichier CouchDB (avec les index) est environ 30 fois plus grand que la base de données MySQL avec les mêmes lignes. Mais je suis assez sûr qu'il sera fin.

27
répondu Sergio Tulentsev 2009-07-14 04:35:54
la source

CouchDB 0.11 (sortie fin Mars) est une version 1.0. Cela signifie que nous allons maintenir la compatibilité avec l'API actuelle pour 1.0, c'est donc le bon moment pour jeter un autre coup d'oeil à CouchDB si vous ne l'avez pas fait depuis longtemps.

le CouchDB 0.11 code source est disponible ici. il y a installateurs binaires et autres goodies liés ici.

18
répondu J Chris A 2010-04-06 09:37:25
la source

Je ne sais rien sur MongoDB, mais de la CouchDB FAQ :

CouchDB est-il prêt pour la Production?

Oui, voir InTheWild pour une liste partielle des projets utilisant CouchDB. Un autre bon aperçu est CouchDB études de cas

aussi, quelques liens:

17
répondu Sasha Chedygov 2012-02-16 06:28:54
la source

nous utilisons couchdb en production et l'avons depuis juste avant que le projet ne passe sous le parapluie Apache.

nous l'utilisons pour stocker tout ce que nous pourrions utiliser autrement un SGBD, plus toutes sortes de données non structurées. Personnellement, j'aime vraiment comment vous pouvez juste jeter toutes sortes de données en elle et utiliser les vues pour sélectionner ce que vous n'avez pas besoin selon la situation.

le plus difficile a été de s'éloigner de l'état d'esprit du SGBD. Nous avons écrit notre propre utils de migration lorsque le format de stockage a changé juste pour être sûr, de sorte que ce n'était pas vraiment un problème.

nous n'avons pas encore eu d'expériences négatives, mais encore une fois nous n'avons pas eu la configuration sous aucune sorte de charge énorme. Je pense que les choses fonctionneraient plutôt bien puisque nous avons deux serveurs de type esclave qui se répliquent à partir d'un seul serveur maître qui reçoit toutes les Écritures. Je suis presque sûr que nous n'avons pas à le faire de cette façon pour que la réplication fonctionne correctement, mais c'est comme ça qu'on l'a mis en place au début et il est resté.

16
répondu clintm 2009-05-22 13:26:57
la source

nous utilisons CouchDB pour stocker les messages mobiles entrants et sortants et pour rendre compte de ce trafic via certaines vues personnalisées que j'ai écrites. Le front-end est écrit en Python. Nous n'avions pas de véritables problèmes techniques, et il fonctionne depuis la fin du mois de décembre. Le seul obstacle que j'ai rencontré était au départ de penser en termes de MapReduce, mais une fois que j'ai appris à le faire, tout le reste s'est bien passé.

13
répondu Ryan Duffield 2009-05-26 01:10:05
la source

nous utilisons actuellement MongoDB en production comme couche de cache ainsi que comme moteur de stockage pour importer et manipuler des données produit. Nous sommes une entreprise de commerce électronique gérant plus de deux millions de produits (plus de 100 millions d'attributs), couvrant plus de 10 distributeurs et sans MongoDB, cette tâche serait presque impossible.

9
répondu Joshua Burns 2010-12-02 00:09:55
la source

nous utilisons actuellement mongodb comme service de stockage de fichiers pour notre collaboration sur LAN. En outre, des projets comme trello utilisent mongodb comme leur backend datastore. J'ai utilisé couchdb plus tôt, mais pas en capacité de production.

1
répondu Sumit Bisht 2012-07-06 14:40:01
la source

nous utilisons MongoDB en production dans notre service de backend mobile à savoir Netmera. nous l'utilisons pour stocker toutes les données utilisateur et de contenu.

0
répondu Parvin Gasimzade 2012-06-25 15:25:01
la source

J'utilise CouchDB en production depuis près de 2 ans. Il n'y a pas de travail de migration puisque le projet a commencé directement avec la mise en œuvre de CouchDB. Il sert d'une base de données qui stocke les données d'un seul produit électronique, du début jusqu'à l'emballage.

puisque nous vendons des capteurs avec une exigence de haute précision, nous faisons beaucoup de tests à différents stades et tout cela sera stocké dans un seul document sur CouchDB.

il y a une courbe d'apprentissage que j'ai apprise de mon expérience, qui est de faire plein usage des vues (ou aussi connu sous le nom de vues permanentes). Les vues devraient être un "petit filtre" d'une fraction de la base de données qui sera appelée souvent.

ma base de données CouchDB N'est pas aussi folle que d'autres gigantesques entreprises. Mais jusqu'à présent, je suis encore en train de faire très bien. Actuellement, j'ai 24000 documents à 700Mo.

caractéristique de CouchDB que j'aime est 'replication', 'stocker les révisions d'un document'.

j'ai lu beaucoup de bonnes critiques sur MongoDB et je voudrais l'essayer s'il y a une chance.

0
répondu Nicholas TJ 2013-10-28 12:54:39
la source

nous utilisons mongodb en production pour

www.beachfront.io - près de 5k demande d'écriture par seconde www.beachfrontbuilder.com - 500 demande de lecture/écriture par seconde, de maintenir 10m utilisateurs de données et olap.

le seul défi rencontré autour de l'archivage des données, nous surmontons en mettant en œuvre notre composante personnalisée.

0
répondu Udit 2013-11-22 12:18:23
la source

cette question a déjà accepté la réponse, mais maintenant un jour de plus NoSQL DB est dans la tendance pour beaucoup de ses grandes caractéristiques. Il s'agit de Couchbase , qui s'exécute en tant que CouchbaseLite sur la plate-forme mobile et Couchbase Server du côté de votre serveur.

voici quelques-unes des principales caractéristiques de Couchbase Lite.

Couchbase Lite est un moteur de base de intégration dans les applications mobiles.

léger signifie:

intégré-le moteur de base de données est une bibliothèque liée dans l'application, pas un processus de serveur séparé. Petite taille de code-important pour les applications mobiles, qui sont souvent téléchargées sur les réseaux cellulaires. Temps de démarrage rapide-important parce que les appareils mobiles ont des CPU relativement lents. Faible utilisation de la mémoire-les ensembles de données mobiles typiques sont relativement petits, mais certains documents peuvent avoir de grandes les pièces jointes multimédias. Bonne performance-les chiffres exacts dépendent de vos données et de votre application, bien sûr.

orientée Document signifie:

stocke les enregistrements dans un format JSON flexible au lieu d'exiger des schémas prédéfinis ou une normalisation. Les documents peuvent avoir des pièces jointes binaires de taille arbitraire, comme du contenu multimédia. Application format de données peut évoluer au fil du temps, sans aucune explicite migrations. Mapréduire l'indexation fournit des recherches rapides sans avoir besoin d'utiliser des langages de requête Spéciaux.

Syncable signifie:

deux copies D'une base de données peuvent être synchronisées via un algorithme de réplication efficace, fiable et éprouvé. La synchronisation peut être à la demande ou continue (avec une latence de quelques secondes). Les appareils peuvent être synchronisées avec un sous-ensemble d'une grande base de données sur un serveur distant. Le moteur sync supporte un réseau intermittent et peu fiable connexion. Les conflits peuvent être détectés et résolus, avec app logic en plein contrôle de la fusion. Les arbres de révision permettent des topologies de réplication complexes, y compris de serveur à serveur (pour plusieurs centres de données) et de pair à pair, sans perte de données ou de faux conflits. Couchbase Lite fournit des API natives pour le développement iOS (Objective-C) et Android (Java). En outre, il comprend le Plug-in Couchbase Lite pour PhoneGap, qui vous permet de construire des applications iOS et Android que vous développez par utiliser des techniques de programmation d'applications web familières et le cadre de développement mobile PhoneGap.

vous pouvez en savoir plus sur Couchbase Lite

et Couchbase Server

C'est la prochaine grande chose.

0
répondu Master 2014-02-20 10:22:43
la source

production parlante, basculement/récupération sans soudure les deux nécessitent une baby-sitter

1-Couchbase, il n'y a pas de basculement/récupération sans faille, une intervention manuelle est nécessaire.

le rééquilibrage prend trop de temps, trop de risques si plus d'un noeud se perd.

2 - Mongo avec des éclats, la récupération de données de perdre une config serveur, n'est pas une tâche facile

0
répondu Muayad 2014-02-28 23:35:41
la source

Adobe utilise MongoDB pour leur prochaine version de Adobe Experience Manager (anciennement Day CQ ) comme moteur de base DB.

plusieurs clients de l'agence où je travaille utilisent CouchDB sur des projets pour de grands clients.

tous deux sont grands et viables DBs, à mon avis. :)

0
répondu Andrei 2014-05-18 07:25:06
la source

Voici une liste des sites de production déployés avec mongoDB

  • The New Yorks Times : de l'Utiliser dans un formulaire-demande de construction pour les soumissions de photos. Le manque de schéma de Mongo donne aux producteurs la capacité de définir n'importe quelle combinaison de champs de forme personnalisés.
  • SourceForge : est utilisé pour le stockage back-end sur les pages de couverture de SourceForge, les pages de projet, et les pages de téléchargement pour tous les projets.
  • .ly
  • Etsy
  • IGN : les pouvoirs de l'IGN en temps réel des analyses de trafic et Reposant Contenu de l'Api.
  • Justin.tv : pouvoirs Justin.tv's Outils d'analyse interne pour la viralité, la rétention des utilisateurs, et les statistiques d'utilisation générale que les solutions out-of-the-box ne peut pas fournir.
  • Posterous
  • Intuit
  • Foursquare : les bases de données Sharded Mongo sont utilisées pour la plupart des données à foursquare.
  • Business Insider : L'utiliser depuis le début de 2008. Toutes les données du site, y compris les messages, les commentaires et même les images, sont stockées sur MongoDB.
  • Github : est utilisé pour un rapport interne application.
  • Examiner : ont migré leur site de Cold Fusion et SQL Server à Drupal 7 et MongoDB.
  • Grooveshark : utilise actuellement Mongo pour gérer plus d'un million de sessions utilisateurs uniques par jour.
  • Buzzfeed
  • Discus
  • Evite : utilisé pour l'analyse et rapide présentation de rapports.
  • Squarespace
  • Shutterfly : est utilisé pour diverses exigences persistantes de stockage de données dans Shutterfly. MongoDB aide Shutterfly à construire un service inégalé qui permet des relations plus profondes et plus personnelles entre les clients et ceux qui comptent le plus dans leur vie.
  • Topsy
  • Sharethis
  • Mongohq : fournit une plate-forme d'hébergement pour MongoDB et utilise également MongoDB comme back-end pour son service. Notre page centres d'hébergement fournit plus d'informations sur MongoHQ et d'autres options D'hébergement MongoDB.

et plus...

extrait de: http://lineofthought.com/tools/mongodb

vous pouvez consulter d'autres bases de données ou outils il y a aussi.

-2
répondu fernandopasik 2014-08-05 10:41:08
la source

MongoDB a quelques problèmes avec l'octroi de licences aux entreprises, Je ne suis pas sûr des détails, mais notre département juridique nous a dit en aucun certain termes que nous n'étions pas autorisés à utiliser MongoDB dans aucun de nos produits.

-6
répondu Mike Carr 2013-03-23 20:41:59
la source

Autres questions sur mongodb database couchdb