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/
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