views:

106

answers:

2

Hi,

There are very useful documents explaining the server architectures like Linkedin, MySpace, Amazon and etc.

After seeing MySpace, I really surprised as they are using 500+ database servers for their application.

Would like to know how will they maintain SQL transactions, joins, look ups if data spans across multiple database servers?

+1  A: 

There's a great article on High Scalability about ebay. They take it to the extreme with the application doing everything and just using the dbs for "dumb" storage. The app does joins, referential integrity, etc. It's almost weird to think of things in that manner given what experience most of us have and what role databases play in our applications. Apparently it's effective, though. :)

http://highscalability.com/ebay-architecture

Matt
+2  A: 

High Scalability also has a piece on MySpace. It's well worth a read.

I think the key think is that the databases are federated rather than distributed. So all the information relating to a given user is in a single physical database. That handles most of the issues with joining, transactionality, etc.

High Scalability doesn't mention it, but I presume there must be some centralised database acting as a registry : the data for user #217873828 is in database Profile42. There is probably a similar centralisation for reference data, although most of that is likely to be in cache rather than read from a database.

APC