Vidéo: Introduction au NoSQL avec Couchbase 2024
Une caractéristique commune aux systèmes NoSQL est leur capacité à évoluer sur de nombreux serveurs de base. Ces plates-formes relativement bon marché signifient que vous pouvez augmenter les bases de données en ajoutant un nouveau serveur plutôt que de remplacer l'ancien matériel par un nouveau matériel plus puissant en un seul coup.
Il existe des cas d'utilisation à haut volume qui vous forceront rapidement à évoluer. Ceux-ci incluent
-
Vous recevez des rapports d'état et des messages de journalisation provenant d'un paysage informatique. Ce scénario nécessite des temps d'ingestion rapides, mais il ne nécessite probablement pas de support d'analyse avancé.
-
Vous voulez une mise en cache à haute vitesse pour les requêtes complexes. Peut-être que vous voulez obtenir les dernières nouvelles sur un site Web. Ici, les caches en lecture prennent le pas sur les requêtes ou les vitesses d'acquisition.
La seule chose commune à la performance de toutes les bases de données NoSQL est que vous ne pouvez pas compter sur des données publiées - aucune - pour déterminer quelles sont les performances susceptibles d'être sur vos données, pour votre propre cas d'utilisation.
Vous ne pouvez certainement pas compter sur la promesse d'un fournisseur de base de données particulier sur la performance! De nombreux fournisseurs citent des vitesses d'acquisition élevées par rapport à un cas d'utilisation artificielle qui n'est pas une utilisation réaliste de leur base de données, comme preuve de la suprématie de leur base de données.
Cependant, le problème est que ces mêmes études peuvent ignorer totalement la vitesse de requête. Quel est le point de stockage des données si vous ne l'utilisez jamais?
Ces études peuvent également être effectuées sur des systèmes où les fonctionnalités clés sont désactivées. Les index de sécurité peuvent ne pas être activés ou la prise en charge des transactions ACID peut être désactivée au cours de l'étude afin que les données soient stockées rapidement, mais il n'y a aucune garantie que la sécurité est assurée.
Tout cela signifie que vous devez faire vos propres tests, ce qui est assez facile, mais assurez-vous que le test est aussi proche de votre système final que possible. Par exemple, il ne sert à rien de tester un seul serveur si vous prévoyez de passer à 20 serveurs. Assurez-vous en particulier d'avoir un mélange précis de données d'ingestion, de modification et d'interrogation.
Pensez à poser ces questions à votre fournisseur NoSQL:
-
Pouvez-vous vous assurer que tous les chiffres de performance et de dimensionnement sont valables pour les systèmes qui assurent des transactions ACID pendant l'ingestion supportant l'indexation en temps réel? / requêtes de requête?
-
Votre produit offre-t-il des fonctionnalités facilitant l'augmentation de la capacité d'un serveur?
-
Votre produit dispose-t-il de fonctionnalités facilitant la suppression de la capacité du serveur inutilisé?
-
La vitesse de requête de données de votre produit est-elle limitée par la quantité d'informations à mettre en cache dans la RAM?
-
Votre produit utilise-t-il une stratégie de carte mémoire qui requiert que tous les index soient stockés dans la RAM pour des performances adéquates (la mémoire mappée signifie que la quantité maximale de données stockée est la même que la RAM physique installée)?
-
Votre base de données peut-elle gérer des temps de réponse de requête inférieurs à la seconde tout en recevant des mises à jour à haute fréquence?
-
Le système garantit-il qu'aucun temps d'indisponibilité n'est requis pour ajouter ou supprimer la capacité du serveur?
-
Le système garantit-il que les informations sont immédiatement disponibles pour la requête après leur ajout à la base de données?
-
Le système garantit-il la sécurité des données sans affecter la vitesse de la requête?
-
Le système garantit-il que les fonctionnalités de mise à l'échelle et de réduction de la base de données sont scriptables et s'intègrent au logiciel de provisioning de serveur choisi (par exemple, VMWare et Amazon Cloud Formation)?