Question

Je me demandais si quelqu'un peut me dire si MongoDB ou CouchDB sont prêts pour un la production de l'environnement .

Je cherche maintenant à ces solutions de stockage (je favorise MongoDB au moment), mais ces projets sont assez jeunes et donc je prévois que je vais devoir travailler très dur pour convaincre mon manager que nous devrait adopter cette nouvelle technologie.

Ce que je voudrais savoir est:

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

  2. Comment utilisez-vous MongoDB / CouchDB?

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

  4. Comment avez-vous résolu les problèmes de migration que vous avez eu à traiter?

  5. Avez-vous des expériences bonnes / mauvaises avec l'une de ces solutions que vous souhaitez partager?

Était-ce utile?

La solution

Je suis le directeur technique de 10gen (développeurs de MongoDB), donc je suis un peu biaisé, mais je gère aussi quelques sites qui utilisent MongoDB dans la production.

businessinsider a utilisé mongo en production depuis plus d'un an. Ils l'utilisent pour tout des utilisateurs et des messages de blog, à chaque image sur le site.

ShopWiki utilise pour un certain nombre de choses, y compris des analyses en temps réel et une couche de mise en cache. Ils font plus de 1000 écritures par seconde sur une base de données assez importante.

Si vous allez à la mongodb production Déploiements vous verrez quelques-uns les personnes qui utilisent mongo dans la production.

Si vous avez des questions sur l'ampleur ou la portée des déploiements de production, afficher sur notre liste d'utilisateurs et nous serons heureux de vous aider.

Autres conseils

Le BBC et meebo.com utiliser CouchDB dans la production et le fait un de mes clients. Voici une liste d'autres personnes utilisant Couch: CouchDB dans la nature

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

SourceForge utilise MongoDB. Voir cette présentation ou lire ici .

Nous courons CouchDB comme replacemant pour MySQL pour nos magasins (70.0000 articles / boutique, un total de 4 millions d'attributs de tous les éléments, les connexions croisées entre les éléments).

Nos objectifs sont les suivants:

  1. réplication simple d'un maître-db à plusieurs clients avec des documents différents.

  2. Les données pré-calculées rapides comme « combien de parties dois-je avec cet attribut et que le filtre, raccord à ces conditions »

faits:

  1. Nos magasins sont maintenant en cours d'exécution beaucoup plus rapide qu'avec MySQL (et base de données mysql nécessaire additionaly 1-3 jours de pré-calcul (donc la mise à jour était deux fois par mois), ce qui rend les données prêtes pour le comptage de produits et de filtrage, a besoin CouchDB 5 heures, pour que nous puissions mettre à jour des données de produit tous les soirs)
  2. Mise en place (filtrée) la distribution des données et des sauvegardes aux nœuds de boutique est rapide et facile

mais aussi:

  1. carte Comprendre / réduire et les limites de ne pas avoir joint est assez difficile
  2. Aucune opération sur des données telles que « supprimer où » ou « mise à jour où » sans programmes externes
  3. réplication fonctionne bien, sauf si il y a un problème; alors il est vraiment difficile de savoir quelle était la raison (pour les débutants)
  4. L'installation de CouchDB sans binaires (oui il y a quelques-uns dans la nature, mais pas pour tous les OS / version) pourrait être difficile, si vous n'êtes pas un geek Linux. Mais la Communauté CouchDB est utile (#couchdb), et, heureusement, il y a des entreprises là-bas (cloudant, iriscouch) qui offrent des services de la gratuité à la grande entreprise.
  5. CouchDB se déplace vers l'avant, donc il y a beaucoup de changements (améliorations) en cours qui pourraient changer leur façon de travailler. Mais les choses de base restent stables.

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

canapés de production parfois causé des problèmes après des mois de travail en raison d'une mauvaise configuration et logrotates oubliés (bâtiment de vue prend trop de temps ou se bloque, la réplication cesse), mais jamais de perte de données, et pourrait être facilement réinitialiser toujours.

J'utilise CouchDB dans la production. Actuellement, il stocke tous les champs « facultatifs » qui ne sont pas dans le schéma de base de données d'origine. Et maintenant, je pense à déplacer toutes les données CouchDB.

Il est tout à fait une étape risquée, je l'avoue. Tout d'abord, parce que ce n'est pas encore v1.0. Et d'autre part, parce qu'il est DriveSpace faim. Selon mes calculs, le fichier CouchDB (avec index) est ~ 30 fois plus grande que la base de données MySQL avec les mêmes lignes. Mais je suis assez sûr qu'il fonctionnera très bien.

CouchDB 0,11 (publié à la fin de Mars) est une version long-gel pour 1,0. Cela signifie que nous allons maintenant la compatibilité avec l'API actuelle pour 1.0, est maintenant un bon moment pour prendre un autre regard sur CouchDB si vous avez pas de temps en temps.

Le code source CouchDB 0.11 version est disponible ici. Il y a installateurs binaires et autres goodies liés

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

  

Est-CouchDB prêt pour la production?

     

Oui, voir InTheWild pour une liste partielle des projets utilisant CouchDB. Une autre bonne vue d'ensemble est CouchDB Études de cas

En outre, certains liens:

Nous utilisons CouchDB dans la production et ont depuis peu avant que le projet est allé sous l'égide d'Apache.

Nous l'utilisons pour stocker tout ce que nous pourrions utiliser autrement un DBMS, ainsi que toutes sortes de données non structurées. Personnellement, je l'aime vraiment comment vous pouvez simplement jeter toutes sortes de données dans et utiliser les points de vue ce que vous abattre pour ne pas besoin en fonction de la situation.

Le plus dur se déplaçait loin de l'état d'esprit DBMS. Nous avons écrit nos propres utils de migration lorsque le format de stockage changé juste pour être sûr, ce qui était pas vraiment un problème.

Nous avons pas encore eu des expériences négatives, mais là encore, nous n'avons pas eu la configuration sous tout type de charge énorme. I penser les choses seraient très bien fonctionner puisque nous avons deux serveurs de type esclave qui répliquent à partir d'un seul serveur maître qui obtient toutes les écritures. Je suis assez sûr que nous ne devons pas le faire de cette façon que la réplication fonctionne correctement, mais il est comment nous l'avons mis en place au début et il est resté.

Nous utilisons CouchDB pour stocker mobiles les messages entrants et sortants et de faire rapport sur ce trafic via des vues personnalisées que j'ai écrit. Le front-end est écrit en Python. On n'a pas eu de véritables problèmes techniques, et il a été en cours d'exécution depuis la fin de Décembre. Le seul obstacle que je rencontrais pensais d'abord en termes de MapReduce, mais une fois que j'ai appris à le faire, tout le reste est bien passé.

Nous utilisons actuellement MongoDB dans la production comme la couche de mise en cache ainsi que le moteur de stockage pour importer le produit et la manipulation de données de produits. Nous sommes une entreprise de commerce électronique qui gère plus de deux millions de produits (plus de 100 millions d'attributs), couvrant 10+ distributeurs et sans MongoDB, cette tâche serait presque impossible.

Nous utilisons actuellement mongodb comme un service de stockage de fichiers pour notre collaboration sur le réseau local. , Des projets comme aussi Trello utilisent mongodb comme datastore back-end. Je l'ai utilisé CouchDB plus tôt, mais pas dans la capacité de production.

Nous utilisons MongoDB dans la production dans notre service mobile back-end à savoir Netmera. Nous utilisons pour stocker tous les utilisateurs et données de contenu.

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

Puisque nous vendons capteur avec une demande sur une grande précision, nous faisons beaucoup de tests à différents stades et tous ces seront stockés dans un seul document sur CouchDB.

Il y a une courbe d'apprentissage que j'ai appris de mon expérience, ce qui est d'utiliser pleinement des vues (ou aussi connu que des vues permanentes). Vues devraient être « petit filtre » d'une fraction de la base de données qui sera appelée souvent.

Mon CouchDB databse est pas aussi fou que autre société gigantesque. Mais jusqu'à présent, je fais toujours très bien. Actuellement, je vais avoir 24000 documents à 700MB.

Fonction de CouchDB que j'aime est « révisions des magasins d'un document » « réplication »,.

Je lis beaucoup de bonnes critiques sur MongoDB et je veux l'essayer s'il y a une chance.

Nous utilisons mongodb dans la production pour

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

Le seul défi auquel sont confrontés autour de l'archivage des données, nous surmontons en mettant en œuvre notre composant personnalisé.

Cette question a déjà accepté réponse mais maintenant un jour un plus NoSQL DB est dans la tendance pour beaucoup de ses fonctionnalités. Il est Couchbase; qui fonctionne comme CouchbaseLite sur plate-forme mobile et Couchbase Server sur votre serveur.

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

Couchbase Lite est un moteur de base de données légère, du document orienté (NoSQL), synchronisables approprié pour l'incorporation dans des applications mobiles.

Un poids léger signifie:

embarquée sur le véhicule de base de données est une bibliothèque liée à l'application, non pas d'un processus de serveur distinct. Petite taille importante du code pour les applications mobiles, qui sont souvent téléchargés sur les réseaux cellulaires. temps de démarrage rapide importante parce que les appareils mobiles ont processeurs relativement lents. ensembles de données mobiles à faible utilisation typique mémoire sont relativement faibles, mais certains documents pourraient avoir des pièces jointes volumineuses multimédia. Les bonnes performances chiffres exacts dépendent de vos données et applications, bien sûr.

moyens orientés documents:

dossiers de magasins au format JSON souple au lieu d'exiger des schémas prédéfinis ou la normalisation. Les documents peuvent avoir des pièces jointes binaires arbitraires de taille, tels que le contenu multimédia. format de données d'application peut évoluer au fil du temps sans qu'il soit nécessaire pour les migrations explicites. l'indexation MapReduce fournit des rapides sans avoir besoin lookups d'utiliser les langages de requête spéciaux.

synchronisables signifie:

Les deux copies d'une base de données peuvent être mises en synchronisation via un efficace, fiable, algorithme de réplication éprouvée. Sync peut être à la demande ou en continu (avec une latence de quelques secondes). Les périphériques peuvent se synchroniser avec un sous-ensemble d'une grande base de données sur un serveur distant. Le moteur de synchronisation prend en charge les connexions réseau intermittentes et peu fiables. Les conflits peuvent être détectés et résolus, avec une logique d'application dans le plein contrôle de la fusion. arbres de révision permettent de topologies de réplication complexes, y compris le serveur à serveur (pour plusieurs centres de données) et peer-to-peer, sans perte de données ou de faux conflits. Couchbase Lite fournit des API natives pour iOS sans soudure (Objective-C) et de développement Android (Java). De plus, il inclut le Lite Couchbase Plug-in pour PhoneGap, ce qui vous permet de construire iOS et les applications Android que vous développez en utilisant des techniques connues de programmation d'applications Web et le cadre de développement mobile PhoneGap.

Vous pouvez explorer plus sur Couchbase Lite

et Couchbase serveur

Cela va la prochaine grande chose.

Production parlant, le basculement / reprise transparente à la fois besoin d'un baby-sitter
1- Couchbase, il n'y a pas de basculement / reprise transparente, une intervention manuelle est nécessaire. rééquilibrage
prend trop de temps, trop de risques si plus d'un nœud perdu.

2 mongo tessons, la récupération de données de perdre un serveur de configuration, n'est pas une tâche facile

Adobe utilise MongoDB pour leur prochaine version de Adobe Experience Directeur (anciennement Day CQ ) en tant que moteur de base de données de base.

Plusieurs clients de l'agence à je travaille à l'aide sont CouchDB sur les projets pour les grands clients.

Les deux sont grands et viables BDs, à mon avis. :)

Voici une liste des sites de production déployé avec MongoDB

  • Le New Yorks Times, : L'utiliser dans une application sous forme de renforcement pour les soumissions de photos. Le manque de schéma de mongo donne aux producteurs la possibilité de définir une combinaison de champs de formulaire personnalisé.
  • SourceForge :. Est utilisé pour le stockage back-end sur les pages avant SourceForge, pages de projet et les pages de téléchargement pour tous les projets
  • Bit.ly
  • Etsy
  • IGN :. Pouvoirs d'analyse du trafic en temps réel de l'IGN et RESTful API contenu
  • Justin.tv :. Pouvoirs outils d'analyse internes de Justin.tv pour viralité, la rétention des utilisateurs et des statistiques d'utilisation générales que les solutions hors-the-box ne peut pas fournir
  • Posterous
  • Intuit
  • Foursquare :. Bases de données fragmentées mongo sont utilisées pour la plupart des données à foursquare
  • Business Insider :. Son utilisation depuis le début de l'année 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 une application de reporting interne
  • Examiner :. Migré leur site de Cold Fusion et SQL Server pour Drupal 7 et MongoDB
  • Grooveshark :. Utilise actuellement Mongo pour gérer plus d'un million de sessions d'utilisateurs uniques par jour
  • BuzzFeed
  • Discus
  • Evite :. Utilisé pour l'analyse et de rapports rapides
  • Squarespace
  • Shutterfly : est utilisé pour différents besoins de stockage de données persistantes dans Shutterfly. MongoDB aide Shutterfly construire un service hors pair qui permet des relations plus profondes, 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 le 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 vérifier d'autres bases de données ou des outils aussi.

MongoDB a quelques problèmes avec des licences aux entreprises, je ne suis pas sûr des détails, mais notre service juridique nous ont dit dans certains termes que nous ne pouvions pas utiliser MongoDB dans l'un de nos produits.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top