MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Quelqu'un a-t-il travaillé avec Aerospike ? Comment se compare-t-il à MongoDB ?

J'ai utilisé Aerospike, MongoDB et Redis et j'ai testé de nombreuses autres bases de données NoSQL. Je dirais qu'Aerospike est très bon dans ce qu'il fait mais c'est différent de MongoDB. Tout dépend de l'utilisation que vous comptez faire d'une base de données. Je peux vous donner un exemple de ce pour quoi j'utilise mes différentes bases de données. Je peux également passer en revue les différences entre eux et discuter des avantages d'Aerospike.

MongoDB

J'utilise MongoDB comme alternative SQL. Dans ma base de données MongoDB, j'ai de nombreux champs différents. Souvent, les champs changent et j'aurai besoin d'interroger au hasard divers champs. C'est une base de données très non structurée et MongoDB est incroyable à cela. J'ai également utilisé MongoDB comme magasin de clé-valeur standard. Il fonctionne bien, mais MongoDB fonctionne de manière sous-optimale à la fois à l'échelle des transactions et à l'échelle de la taille de la base de données. Certes, la base de données aurait peut-être été optimisée un peu mieux mais j'ai beaucoup de mal à trouver de la documentation sur la configuration correcte de MongoDB dans différentes situations.

Redis

Redis est un pur magasin clé-valeur. Le plus gros problème de Redis est qu'il est purement en mémoire (il utilisera le disque comme sauvegarde mais vous ne pouvez pas stocker plus d'informations que vous n'avez de mémoire disponible). Il est extrêmement rapide pour ce pour quoi il est utilisé. Personnellement, je l'utilise pour une petite base de données transactionnelle :je fais des fonctions très simples sur des clés comme compter combien de fois un événement s'est produit pour un certain utilisateur. J'effectue également des recherches rapides en mémoire dont j'ai besoin pour mapper différentes valeurs. Redis est un excellent outil pour un petit ensemble de données et il est extrêmement rapide. La configuration est également très simple.

Aerospike

Personnellement, j'utilise Aerospike pour remplacer Redis lorsqu'il est temps de passer à l'échelle. De ma compréhension, il peut être utilisé pour plus. Comme Redis, Aerospike est un magasin clé-valeur. Je pense que l'édition open source prend également en charge les index secondaires, ce que Redis ne fait pas (je n'ai pas utilisé d'index secondaires en production, mais je les ai peu testés).

La meilleure caractéristique d'Aerospike est sa capacité à évoluer. Le plus gros problème que je devais résoudre lorsque j'examinais Aerospike était de faire évoluer mon système pour gérer de grands ensembles de données tout en restant extrêmement rapide. Le projet pour lequel j'utilise Aerospike a des exigences très strictes en matière de vitesse. Je fais habituellement 3 à 4 recherches dans la base de données ainsi que d'autres traitements et j'ai besoin d'avoir des temps de transaction inférieurs à 50 ms. Quelques recherches portent sur des ensembles de données de plus de 300 Go. Je n'ai pas trouvé de solution pour conserver ces données et les rendre accessibles dans un délai raisonnable. Redis ne fonctionnera évidemment que si j'avais une machine dotée de 300 Go + de RAM. MongoDB a commencé à fonctionner extrêmement mal à une taille bien inférieure à 300 Go. J'ai donc essayé Aerospike, et il était capable de tout gérer très bien. La meilleure chose à propos d'Aerospike :au fur et à mesure que mon ensemble de données a augmenté, je n'ai pas eu à faire beaucoup plus que de mettre en place une nouvelle boîte en cas de besoin. La vitesse est restée constante.

Je trouve aussi la documentation Aerospikes très bonne. Il n'est pas trop difficile à configurer et il est assez facile de trouver des réponses à tout problème qui survient.

Conclusion

Alors, Aerospike est-il aussi bon qu'ils le prétendent ? Personnellement, je n'ai rien vu de moins que ce qui a été affirmé. Je n'ai pas eu à passer à 1 million de TPS, mais je pense qu'avec suffisamment de matériel, ce serait possible. Je crois aussi aux chiffres montrant une différence de vitesse entre Aerospike et MongoDB. Aerospike est une base de données beaucoup plus "configurée" et "planifiée" que MongoDB. Pour cette raison, Aerospike sera beaucoup plus rapide à grande échelle que MongoDB. Il n'a à se soucier que d'un seul index (ou dans le cas d'index secondaires, de quelques centaines) contrairement à MongoDB qui peut changer dynamiquement. La question que vous devez vraiment vous poser est ce que vous essayez d'accomplir avec votre base de données. Ensuite, recherchez la base de données qui répondra le mieux à vos besoins. Si vous avez besoin d'une base de données de magasin évolutive, rapide et clé-valeur, je dirais qu'Aerospike est probablement le meilleur sur le marché.

Faites-moi savoir si vous avez des questions spécifiques ou si vous avez besoin de précisions. Je serais probablement en mesure de vous aider.