Масштабируемость для больших приложений - PullRequest
2 голосов
/ 05 января 2010

Есть очень полезные документы, объясняющие архитектуры серверов, такие как Linkedin, MySpace, Amazon и т. Д.

Увидев MySpace, я очень удивился, когда они используют более 500 серверов баз данных для своих приложений.

Хотите знать, как они будут поддерживать транзакции SQL, объединения, поиск, если данные распространяются на несколько серверов баз данных?

Ответы [ 2 ]

3 голосов
/ 05 января 2010

Высокая масштабируемость также есть в MySpace. Это стоит прочитать.

Я думаю, что ключевым моментом является то, что базы данных являются федеративными, а не распределенными. Таким образом, вся информация, относящаяся к данному пользователю, находится в единой физической базе данных. Это решает большинство проблем с объединением, транзакционностью и т. Д.

Высокая масштабируемость не упоминает об этом, но я предполагаю, что должна быть какая-то централизованная база данных, действующая как реестр: данные для пользователя # 217873828 находятся в базе данных Profile42 . Вероятно, существует аналогичная централизация для справочных данных, хотя большая часть этого, скорее всего, будет в кеше, а не в базе данных.

1 голос
/ 05 января 2010

На Ebay есть отличная статья о высокой масштабируемости. Они доводят дело до крайности, когда приложение делает все и использует dbs для «немого» хранения. Приложение выполняет соединения, ссылочную целостность и т. Д. Это почти странно думать о таких вещах, учитывая, какой опыт у большинства из нас и какую роль играют базы данных в наших приложениях. Видимо, это эффективно, хотя. :)

http://highscalability.com/ebay-architecture

...