7

Właśnie zastanawiałem się, ile zapytań db może wystawiać Facebook, aby renderować stronę główną użytkownika. Czy ktoś ma jakiś pomysł na to, jak projektuje się DB Facebooka. Słyszałem, że działa MySql i istnieją tysiące replik i więcej serwerów memcache niż serwery DB.Co prawdopodobnie powinno być projektowaniem facebook DB

Czy dane na facebooku są odfiltrowane?

Jeśli tak, to przejdź do każdego odłamka i wyszukaj najnowszą aktualizację mojego przyjaciela. W najgorszym przypadku, jeśli mam 100 przyjaciół i przypuszczam, że facebook ma 101 shardów, istnieje możliwość, że każdy z moich przyjaciół jest w innym odłamku. Jak radzi sobie z tym Facebook?

Będę bardzo wdzięczny, jeśli ktoś może podać mi wskazówki lub wskazówki do czegoś w rodzaju "Jak zaprojektować bazę danych dla sieci społecznościowej". Jestem po prostu ciekawy!

Odpowiedz

3

Na tej stronie internetowej można znaleźć wiele informacji na temat tych dużych firm internetowych i ich struktur technicznych:

http://highscalability.com/

13

Facebook korzysta LAMP structure. Serwisy backend Facebooka są napisane w różnych językach programowania, w tym C++, Java, Python i Erlang i są używane zgodnie z wymaganiami. Z LAMP Facebook wykorzystuje kilka technologii, aby obsługiwać dużą liczbę wniosków, jak

  1. Memcache - Jest to system buforowania pamięci, który jest używany do przyspieszenia dynamicznych stron internetowych oparty na bazie danych (takich jak Facebook), których autorem jest buforowania danych i obiektów w pamięci RAM, aby skrócić czas czytania. Memcache jest podstawową formą buforowania Facebooka i pomaga zmniejszyć obciążenie bazy danych. Posiadanie systemu buforowania pozwala Facebookowi być równie szybkim, jak przywoływaniem Twoich danych.

  2. Thrift (protocol) - Jest to lekka, zdalna procedura wywoływania procedur dla skalowalnych usług międzyjęzykowych. Thrift obsługuje C++, PHP, Python, Perl, Java, Ruby, Erlang i inne.

  3. Cassandra (database) - Jest to system zarządzania bazami danych przeznaczony do obsługi dużych ilości danych rozłożonych na wielu serwerach.

  4. HipHop for PHP - Jest to transformator kodu źródłowego dla kodu skryptu PHP i został stworzony w celu oszczędzania zasobów serwera. HipHop przekształca kod źródłowy PHP w zoptymalizowane C++. Po wykonaniu tej czynności używa g ++ do skompilowania go do kodu maszynowego.

Jeśli przejdziemy do bardziej szczegółowych informacji, odpowiedź na to pytanie będzie dłuższa. Możemy zrozumieć więcej z następujących stanowisk:

  1. How Does Facebook Work?
  2. Data Management, Facebook-style
  3. Facebook database design?
  4. Facebook wall's database structure
  5. Facebook "like" data structure
+0

@Mayank: Czy ta odpowiedź rozwiązała Twój problem? –

0

Zero. Średnio tak jest. Wysoce połączona sieć z dużą liczbą użytkowników, takich jak Facebook, może działać efektywnie tylko wtedy, gdy całkowicie wyczerpuje pamięć RAM dla często wyświetlanych stron. Prawie wszystkie dane powinny już znajdować się w memcache.

Powiązane problemy