Бэкэнд-архитектура социальных сетей - PullRequest
1 голос
/ 06 января 2010

В идеале, где такое приложение, как Facebook, будет хранить данные о «Друзьях»? В таблице базы данных? в XML-файл?

Ответы [ 6 ]

5 голосов
/ 06 января 2010

Из Страница разработки Facebook :

«Уже сейчас мы являемся вторым наиболее посещаемым сайтом PHP в мире (Yahoo - № 1) и одной из крупнейших инсталляций MySQL в мире, где работают тысячи баз данных».

и

"Мы создали легковесную, но мощную многоязычную среду RPC, которая позволяет нам легко и просто связывать подсистемы, написанные на любом языке, на любой платформе. Facebook построен на PHP, C ++, Perl, Python, Erlang , Java и даже немного ML - и все это работает вместе. * Мы являемся крупнейшим пользователем в мире memcached, системы кеширования с открытым исходным кодом. Первоначально разработанная LiveJournal, с тех пор мы сделали так много улучшений масштабируемости и производительности, что мы будем основным поставщиком функций в следующем основном выпуске. * Мы создали специальную поисковую систему, обслуживающую миллионы запросов в день, полностью распределенную и полностью в памяти, с обновлениями в реальном времени. "

4 голосов
/ 06 января 2010
2 голосов
/ 06 января 2010

Данные «Друзья» хорошо описаны в графической базе данных. Neo4j является примером, хотя я знаю, что Facebook не хранит эту информацию.

Facebook использует ряд технологий баз данных, которые могут быть задействованы:

2 голосов
/ 06 января 2010

проверьте этот блог: http://highscalability.com/ много реальных примеров системной архитектуры для изучения

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

Скорее всего, он должен содержать какой-то другой механизм. Например, поисковая система не хранит свой индекс в виде базы данных или файла XML. Чтобы получить максимальную производительность, обычно они сохраняют некоторое дерево (дерево двоичного поиска или более сложное) и сохраняют их на диске эффективным образом. Так что я думаю, такой механизм.

0 голосов
/ 06 января 2010

Конечно, не в XML-файле.

Да, в базе данных, в одной или нескольких таблицах. И для точного примера Facebook, на нескольких серверах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...