Quelle est la meilleure façon de mettre à l'échelle une seule base de données à l'horizontale?Connaissez-vous de bons systèmes de bases de données distribuées?
Répondre
Dans this episode du podcast Software Engineering Radio, l'intervieweur discute avec un architecte distingué d'eBay. Comme vous pouvez l'imaginer, eBay a des problèmes d'évolutivité à la fois horizontalement et verticalement. Cette question est longuement discutée et mérite d'être écoutée, car l'architecte l'explique mieux et plus complètement que je ne le pouvais ici.
Beaucoup des systèmes que je l'ai vu cette échelle horizontale utiliser la conception MS SQL Server 2005.
base de données joue une grande partie de la mise à l'échelle aussi. Utilisez GUID pour les clés primaires dans votre table afin qu'il empêche les collisions de clé primaire à partir des insertions. J'utilise ensuite la réplication de fusion de SQL Server pour maintenir la base de données synchronisée.
Ceci est juste un résumé rapide, mais il vous donnera une longueur d'avance.
Pour ceux d'entre vous qui sont un peu trop paresseux (ou ne pas le casque), vous pouvez télécharger les diapositives (de la présentation Alan parlait) ici -
Alternativement, vous peut lire cet article -
http://www.infoq.com/articles/ebay-scalability-best-practices
cet article parle de l'architecture de Flickr et comment ils Delt avec mise à l'échelle MySQL
http://www.niallkennedy.com/blog/uploads/flickr_php.pdf
Un autre bon site de référence pour mise à l'échelle est: http://highscalability.com/
- 1. Modèle de données distribuées
- 2. Coordinateur de transactions distribuées
- 3. Tenue de bases de données distribuées dans un réseau synchronisé instable
- 4. Les systèmes de bases de données hétérogènes sont-ils en pratique?
- 5. Recherche de bases de données
- 6. Bases de données utilisant JSON comme format de stockage/transport
- 7. Indexation des bases de données
- 8. Cadre de tests unitaires pour bases de données
- 9. De bons blogs/articles/livres sur la construction de systèmes hautement évolutifs?
- 10. Configuration de plusieurs bases de données mysql
- 11. Rétrogradation de bases de données SQL
- 12. Magasins de colonnes: comparaison de bases de données en colonnes
- 13. Correctif dynamique des bases de données
- 14. Fusion de données entre les bases de données
- 15. Données provenant de 4 bases de données différentes
- 16. Transactions distribuées avec WCF
- 17. NHibernate et plusieurs bases de données
- 18. Dynamic LINQ avec d'autres bases de données
- 19. Bases de données entre les serveurs Copie
- 20. mémoire dans managment bases de données
- 21. plans d'exécution pour les bases de données
- 22. SubSonic 2.1 utilisant plusieurs bases de données
- 23. Synchroniser deux bases de données SQL Server
- 24. Fusionner des bases de données SQL Server
- 25. Bases de données relationnelles et langages OO
- 26. Exemple d'outil de création de données (principalement pour les bases de données)
- 27. Les bases de données de fichiers plats sont-elles bonnes?
- 28. Bonnes ressources pour la conception de bases de données relationnelles
- 29. Outils de développement pour accéder directement aux bases de données
- 30. Utilisation de plusieurs bases de données SQLite à la fois
Ai-je tort de penser que l'évolutivité est orthogonale à la distribution? Dans mon esprit, une base de données distribuée est celle qui est répliquée sur plusieurs sites. Ce n'est pas la même chose que d'avoir un cluster évolutif, qui apparaît comme une seule instance de base de données aux clients, mais qui peut être réparti sur plusieurs machines physiques pour atteindre l'évolutivité et la fiabilité. – Kief