Бывший глава офиса в Сиэтле в Facebook Ари Штейнберг приехал в мой университетский колледж Университета Вашингтона, чтобы рассказать о том, как Facebook масштабирует свои серверы.
Из того, что я помню, у Facebook все запросы на запись отправляются на главный сервер, а затем эта информация распространяется на серверы в других регионах. Это работает, потому что количество запросов на запись намного меньше количества запросов на чтение, поэтому одна группа серверов может обрабатывать все запросы на запись. (Подумайте о типичном использовании Facebook ... читайте сообщения, читайте сообщения, возможно, оставляйте комментарий или сообщение раз в то время).
Это означает, что если вы выполняете запрос на чтение и ваш запрос отправляется группе серверов, которая не является основной группой, есть вероятность, что вы просматриваете старые сообщения. Если кто-то опубликовал новый статус, а главный сервер не отправил сообщение на сервер, на котором вы читаете, он еще не узнает об этой записи и предоставит вам старые данные. Facebook заставляет быстро загружать страницы поверх наиболее точных данных, поэтому они используют этот дизайн. Большинство пользователей никогда не поймут, что они просматривают старую информацию, потому что они не знают, что новые сообщения существуют.
Примечание: Я считаю, что они упомянули, что у них есть специальный случай, когда вы пытаетесь читать свои собственные записи. Если вы обновите изображение своего профиля и обновите страницу, они будут уверены, что ваш запрос будет отправлен на главный сервер, чтобы вы получили самую последнюю информацию. Это плохой пользовательский опыт, если вы обновляете свой профиль, а затем видите свое старое изображение при обновлении страницы. Однако, если кто-то другой просматривает ваш профиль, не имеет значения, какая картина показана, потому что пользователь не знает, что вы его обновили.
Что мне интересно знать, как обрабатывается область мастера? как в том, сколько реплик они поддерживают! Очевидно, что у них не может быть одного сервера, действующего как Мастер ... у них должен быть кластер главных серверов и некоторый способ разделения запросов на запись. –
Я только что наткнулся на то, что люди делятся более чем на 4,75 миллиарда вещей каждый день на Facebook, такие как обновления статуса, настенные сообщения, фотографии, видео и комментарии, говорит Facebook. Они также «любят» более 4,5 миллиардов вещей ежедневно и отправляют более 10 миллиардов сообщений. –