De IBM developerWorks: fournissez une évolutivité des données au niveau du cloud avec des bases de données NoSQL
L’évolutivité est le système qui devrait pouvoir prendre en charge des bases de données très volumineuses avec des débits de requêtes très élevés et une latence très faible.
Les systèmes NoSQL ont un certain nombre de caractéristiques de conception communes:
- La capacité d'évoluer horizontalement sur plusieurs serveurs.
- Une interface ou un protocole simple au niveau appel (contrairement à une liaison SQL).
- Prise en charge de modèles de cohérence plus faibles que les transactions ACID dans la plupart des SGBDR classiques.
- Utilisation efficace des index distribués et de la RAM pour le stockage de données.
- Possibilité de définir de manière dynamique de nouveaux attributs ou un nouveau schéma de données.
Pourquoi les bases de données relationnelles peuvent ne pas être optimales pour la mise à l'échelle
En général, les systèmes de gestion de bases de données relationnelles sont considérés depuis des décennies comme une "solution unique pour la persistance et la récupération des données". Ils ont mûri après d'importants efforts de recherche et développement et ont créé avec beaucoup de succès un vaste marché et des solutions dans différents domaines d'activité.
Les besoins sans cesse croissants en évolutivité et les nouvelles exigences des applications ont créé de nouveaux défis pour le SGBDR classique, notamment un mécontentement face à cette approche unique pour certaines applications à l'échelle Web. La solution à ce problème a été une nouvelle génération de logiciels de bases de données peu onéreux et hautes performances, conçus pour défier la domination des systèmes de gestion de bases de données relationnelles. Une des principales raisons du mouvement NoSQL réside dans le fait que les différentes applications d'applications Web, d'entreprise et de cloud computing ont des exigences différentes en matière de base de données. Par exemple, chaque application ne nécessite pas une cohérence des données stricte.
Autre exemple: pour les sites Web à volume élevé comme eBay, Amazon, Twitter ou Facebook, l'évolutivité et la haute disponibilité sont des exigences essentielles qui ne peuvent être compromises. Pour ces applications, la moindre panne peut avoir des conséquences financières importantes et nuire à la confiance des clients.
Au-dessus de DBA.SE: Qu'est-ce que la mise à l'échelle horizontale signifie?
La mise à l'échelle horizontale consiste essentiellement à créer au lieu de monter. Vous n'allez pas acheter un serveur plus gros et y placer toute votre charge, mais plutôt acheter un ou plusieurs serveurs supplémentaires et répartir votre charge entre eux.
La mise à l'échelle horizontale est utilisée lorsque vous avez la possibilité d'exécuter plusieurs instances simultanément sur des serveurs. En règle générale, il est beaucoup plus difficile de passer d’un serveur à deux, puis de 2 à 5, 10, 50, etc.
Une fois que vous avez résolu les problèmes liés à l'exécution d'instances parallèles, vous pouvez tirer pleinement parti des environnements tels qu'Amazon EC2, le service de cloud de Rackspace, GoGrid, etc. vous n'utilisez pas uniquement pour couvrir ces pics de charge.
Les bases de données relationnelles sont l’un des éléments les plus difficiles à exécuter en lecture / écriture complète en parallèle.