Question

in Mongodb3 est apparu un nouveau moteur de stockage: wireferrer . Pourtant, MMAPV1 est toujours le choix par défaut dans Mongo .

On pourrait ne pas être meilleur que l'autre, c'est souvent une question d'utilisation et de choisir le bon outil pour le travail. Mais quel moteur est juste pour quel travail?

En fait, tandis que MMAPV1 est le moteur par défaut, WiredTiger semble mieux dans presque tous les champs. Il a les mêmes caractéristiques que MMAPV1 Plus:

  • Meilleures performances d'écriture,
  • Niveau de document Concurrence,
  • Compression,
  • Système d'instantanés et de points de contrôle.

J'ai trouvé un tableau comparatif sur Blog de MongoDB :

comparaison

Alors, sauf si vous êtes sur Solaris, y a-t-il une raison de ne pas choisir WiredTiger?


Modifier

Voici deux vidéos qui expliquent en détail les internes de wiredtiger et MMAPV1 .

Était-ce utile?

La solution

Personnellement, je préfère le moteur de stockage MMAPV1 à partir de maintenant pour trois raisons.

Raison 1: Maturité

Ce n'est pas si Wiredtiger est immature. Mais MMAPV1 est bien compris et que la bataille a été testée, de haut en bas, d'arrière et d'altitude et au-delà. Wiredtiger a eu des problèmes sérieux (voir http://jira.mongodb.com pour plus de détails) assez récemment, et je ne suis pas disposé à avoir Mes clients trouvent le prochain chemin.

Raison 2: Caractéristiques

donné, WT a des caractéristiques ... des caractéristiques infligérantes. La chose est: je n'ai vu personne qui leur bénéficiait. Compression? Quoi qu'il en soit, vous sacrifiez plutôt difficile de réaliser des performances pour un espace disque plutôt bon marché. Manque de problème de migration de documents pour l'expansion des documents? Eh bien, nous avons toujours la limite de taille de 16 Mo et la complexité supplémentaire pour les documents intégrés, en particulier lorsque l'intégration est excessive.

Il existe d'autres caractéristiques, mais en général: je ne vois pas beaucoup d'avantages d'eux à partir de maintenant .

Raison 3: coût total de la propriété

Pour de nouveaux projets, WT pourrait aller bien, en particulier depuis 3,2, car ce qui suit ne s'applique pas.

Faire des migrations de données est coûteux . Il doit être planifié, le plan doit être convenu par toutes les parties prenantes, des plans d'urgence d'urgence doivent être créés et convenus, la migration doit être préparée, exécutée et examinée. Maintenant, multipliez le temps nécessaire avec les parties prenantes qui font partie de ce processus et les coûts de la migration de données Skyrocket. Le retour sur investissement d'autre part semble assez petit. Vous pouvez faire une échelle un peu au lieu de faire une migration si vous prenez en compte ces facteurs. Pour vous donner une impression: j'avais estimé à peu près une «semaine de l'homme» par parties prenante si une migration est prévue, exécutée et examinée correctement. Avec des coûts de 100 $ par heure par heure et seulement trois personnes impliquées (gestionnaire, DBA et développeur), qui s'élève à 12 000 $. Notez qu'il s'agit d'une estimation conservatrice.

Conclusion

Tous ces facteurs ci-dessus m'ont amené à la conclusion de ne pas utiliser WT WhaeNever. pour le moment.


Mise à jour

Ce message a quelques mois maintenant, il mérite donc une mise à jour

sur maturité

Mes commentaires originaux sur l'échéance sont en quelque sorte obsolètes. Wiredtiger n'a pas eu de problèmes majeurs depuis un moment et est devenu le moteur de stockage par défaut à partir de MongoDB 3.2

sur les fonctionnalités

Mes commentaires originaux occupent toujours une certaine validité, IMHO.

Compression

Toutefois, lorsqu'il est serré sur budget ou, plus de parole, la performance n'est pas la principale préoccupation, le compromis de performance est plutôt petit, et vous échangez essentiellement de légères impacts de performance (par rapport à WT non compressé) pour l'espace disque, en utilisant quoi sinon oisif de ralenti: la CPU.

Cryptage

MongoDB 3.2 Enterprise a introduit la capacité d'avoir des stockages WiredTiger cryptés. Pour les données avec des besoins de sécurité améliorées, il s'agit d'une fonctionnalité de meurtrier et crée WT le seul moteur de stockage de choix, techniquement (MMAPV1 ne prend pas en charge le cryptage) et conceptuellement. En limitant la possibilité de cloisons de disque cryptées, bien sûr, bien que vous n'ayez peut-être pas cette option dans certains environnements.

Verrouillage du niveau de document

Je dois admettre que j'ai essentiellement omis cette caractéristique de WT dans mon analyse ci-dessus, principalement parce que cela n'a pas été appliqué à moi ou à mes clients lorsque j'ai écrit la réponse originale.

Selon votre configuration, principalement lorsque vous disposez de nombreux clients d'écriture simultanés, cette fonctionnalité peut fournir une excellente performance.

sur le coût total de la propriété

faire des migrations reste cher. Cependant, en tenant compte des changements de maturité et de la modification des fonctionnalités, une migration pourrait valoir l'investissement si:

  • Vous avez besoin de cryptage (édition d'entreprise uniquement!)
  • La performance n'est pas votre préoccupation principale absolue et vous pouvez économiser de l'argent à long terme (calculer de manière conservatrice) à l'aide de la compression
  • Vous avez beaucoup de processus écrivant simultanément, car l'augmentation de la performance pourrait vous faire économiser une échelle verticale ou horizontale.

Conclusion mise à jour

Pour de nouveaux projets, j'utilise WiredTiger maintenant. Étant donné qu'une migration d'une compressée à un stockage de wiredtiger non compressé est plutôt facile, j'ai tendance à commencer par la compression pour améliorer l'utilisation de la CPU ("obtenir plus de bang pour le dollar"). Si la compression ait un impact notable sur la performance ou UX, je migrate vers un wireiger non compressé.

Pour des projets avec beaucoup d'écrivains simultanés, la réponse à Whather à migrer ou non est presque toujours "oui", également - à moins que le budget du projet n'interdit l'investissement. À long terme, l'augmentation de la performance devrait se payer pour elle-même si le déploiement était autrement raisonnablement planifié. Cependant, vous avez besoin d'ajouter du temps de développement au calcul, car dans certains cas, le conducteur a besoin de b

e mis à jour, et il pourrait y avoir des problèmes qui doivent être traités.

Pour des projets serrés sur le budget et ne peut pas se permettre plus d'espace disque pour le moment, la migration d'un wiredtiger compressé peut être une option, mais la compression met un peu de charge sur la CPU, quelque chose d'inutile de MMAPV1.En outre, les coûts de migration peuvent être prohibitivement coûteux pour un tel projet.

Autres conseils

Mes deux cents:

Journalisation dans WiredTiger peut perdre des mises à jour dans des arrêts difficiles, car il utilise la mémoire tampon en mémoire pour stocker les enregistrements de journaux.

entre les opérations d'écriture, tandis que les enregistrements de journaux restent dans la Tampons WiredTiger, les mises à jour peuvent être perdues après une fermeture dure de Mongod.

Journalisation dans MMAPV1 Écrit les modifications des fichiers de journal sur disque.

Si l'instance de Mongod devait s'écraser sans avoir appliqué les écritures Pour les fichiers de données, le journal pourrait rejouer les écrits au partagé. Afficher pour éventuellement écrire dans les fichiers de données.

Nous nous sommes déplacés vers Wiredtiger de MMAPV1 sur la leurre de 7x à 10x Gain de performance.Nous avons dû revenir à MMAPV1 lorsque MongoDB serait enfermée lorsque le cache de filtre filait à 100%.Nous avons documenté notre expérience ici - https://blog.clevertap.com/sleepless-nights-with-mongodb-wirdtiger-an-our-return-a-mmapv1/

Licencié sous: CC-BY-SA avec attribution
Non affilié à dba.stackexchange
scroll top