Comparatif des bases de données NoSQL MongoDB : une gestion intelligente de la montée en charge

 À choisir pour : tout type de besoin de stockage de documents, c'est-à-dire de données structurées : sérialisation d'objets, pages web, formulaires de saisie, informations d'applications. La représentation en documents permet d'utiliser MongoDB pour des structures proches de ce qui est stocké dans une base relationnelle, ou des structures hiérarchiques, avec une plus grande souplesse dans le schéma de données. Un système d'indexation secondaire permet d'effectuer des recherches dans les données et de récupérer des documents par d'autres points d'entrée que la clé.

 Types de données manipulées : BSON, un format JSON "binarisé" pour être plus compact.

 Maintien de la cohérence : cohérence finale à travers les réplicas. Les écritures ont une option (write concern) pour indiquer qu'elles sont validées si elles ont écrit sur un certain nombre de réplicas ou sur une majorité (N/2+1). La durabilité est optionnelle à travers l'activation d'un journal (Write-ahead log). Une mise à jour est atomique par document, il n'y a pas de transaction multidocument possible.

 Mode de distribution : centralisé. Autosharding et réplication automatique. Les métadonnées des shards sont centralisées sur un serveur de configuration, qui peut lui-même être répliqué pour fournir de la redondance. La connexion client se fait aussi sur un serveur maître, qui redirige la requête vers le bon serveur de shard. Ce serveur maître peut lui aussi être redondant.

 Développé en : C++.

 Licence et support : GNU AGPL v 3.0, licence Apache pour les pilotes. La licence AGPL permet de s'assurer que les contributions retournent à la communauté. Des licences commerciales peuvent être acquises auprès de 10gen.

 Protocole : natif, question-réponse sur un socket.

 Points forts : moteur solide, bonnes performances. Simplicité d'utilisation du point de vue du développement client et bonne intégration des pilotes dans les langages. Support commercial par la société qui développe le produit, 10gen. Ses capacités de sharding et de réplication automatiques permettent de monter en charge horizontalement au fur et à mesure de l'augmentation des besoins