2010-01-05 6 views
2

Il y a des documents très utiles expliquant les architectures de serveur comme Linkedin, MySpace, Amazon, etcÉvolutivité pour les grandes applications

Après avoir vu MySpace, j'ai vraiment surpris qu'ils utilisent pour leur application serveurs de base de données 500+. Aimeriez-vous savoir comment vont-ils gérer les transactions SQL, les jointures, les recherches si les données s'étendent sur plusieurs serveurs de bases de données?

+0

(Puisque c'est plus général, juste un commentaire); Voici une présentation vidéo sur la pile de logiciels facebook: http://www.infoq.com/presentations/Facebook-Software-Stack – miku

Répondre

1

Il existe un excellent article sur l'évolutivité élevée concernant ebay. Ils prennent à l'extrême avec l'application tout faire et juste en utilisant le dbs pour le stockage "stupide". L'application fait des jointures, de l'intégrité référentielle, etc. Il est presque étrange de penser aux choses de cette manière étant donné l'expérience de la plupart d'entre nous et le rôle que les bases de données jouent dans nos applications. Apparemment, c'est efficace, cependant. :)

http://highscalability.com/ebay-architecture

3

Haute Extensibilité a aussi un morceau sur MySpace. Je pense que la clé pense que les bases de données sont fédérées plutôt que distribuées. Ainsi, toutes les informations relatives à un utilisateur donné sont dans une seule base de données physique. Cela gère la plupart des problèmes avec la jointure, la transactionnalité, etc.

Échelonnabilité élevée ne le mentionne pas, mais je présume qu'il doit y avoir une base de données centralisée agissant comme un registre: les données pour l'utilisateur # 217873828 est dans la base de données Profile42. Il y a probablement une centralisation similaire pour les données de référence, bien que la plupart de celles-ci soient probablement en cache plutôt que lues à partir d'une base de données.

+0

+1. De plus, vous pouvez gérer un tas de choses en le concevant sans transactions au niveau db. Croix des mises à jour db? File d'attente puis dans une file d'attente transactionnelle, les travailleurs s'en sortent. Les choses PEUVENT être incohérentes pendant un certain temps, mais cela n'a pas d'importance. Dans CERTAINS domaines de problème, c'est un modèle agréable, dans certaines (comptabilité) les choses doivent être synchronisées tout le temps. – TomTom

Questions connexes