publikuj: Opublikuj w wykop.pl Opublikuj we flaker.pl Opublikuj na OSnews.pl Opublikuj w delicious wydrukuj
3 skomentuj »

TAGI: skalowanie , farmville , facebook , dostępność , gra , porady , serwis społecznościowy

2010-02-09 16:17  |  Adam Golański

Twórcy FarmVille ujawniają sekrety skalowania największej gry świata

Twórcy FarmVille ujawniają sekrety skalowania największej gry świata

Co by nie mówić o FarmVille, jest to największa jak dotąd w historii gra komputerowa na świecie – przynajmniej pod względem liczby użytkowników. Oddaje się jej codziennie 28 milionów ludzi, a miesięcznie o swoje wirtualne farmy dba 75 milionów. O tym, jak wyglądają problemy związane z utrzymaniem takiej aplikacji opowiedział serwisowi HighScalability.com Luke Rajlich, jeden z deweloperów projektu.

75 milionów użytkowników to więcej, niż wynosi populacja całej Francji z jej terytoriami zależnymi. Tempo przyrostu liczby graczy w FarmVille było zdumiewające. Już po czterech dniach od premiery na Facebooku, gra osiągnęła pierwszy milion. Po dwóch miesiącach graczy było 10 milionów. Osiągnięcie obecnego pułapu 75 milionów zajęło dziewięć miesięcy. Taki rozwój postawił przed jedną z największych na świecie aplikacji webowych unikatowe wyzwania – co prawda istniała wiedza na temat skalowania dużych aplikacji, ale nigdy dotąd nie były to gry.

Okazuje się, że obciążenia robocze FarmVille są zupełnie odmienne od aplikacji Facebooka czy Google, intensywnie korzystających z operacji odczytu. W grze jednak stan użytkownika opisany jest wielką ilością danych, powiązanych ze sobą złożonymi relacjami. Jak wyjaśnia Luke Rajlich, „na farmie obiekty nie mogą kolidować ze sobą, zatem jeśli użytkownik postawi na polu dom, to backend musi sprawdzić, czy żaden inny obiekt z farmy nie zajmuje tego samego miejsca”. Prowadzi to do sytuacji, w której stosunek odczytu danych do ich zapisu wynosi 3:1 – praktycznie każde odwołanie do backendu związane jest ze zmianą stanu gracza. Do tego dochodzi regularne rozszerzanie gry o nowe obiekty i funkcjonalności, co prowadzi do gwałtownych skoków ruchu. Aby temu zaradzić, aplikacja odwołuje się niemal wyłącznie z komponentami w cache.

Drugi poważny problem to uwiązanie do Facebooka. Problemy z opóźnieniami i wydajnością całej platformy wpływają na płynność rozgrywki. Aby złagodzić różnice w latencji serwisu społecznościowego, dane z Facebooka są intensywnie cache'owane i w razie potrzeby, kiedy widać że wydajność tej platformy spada, ruch przełączany jest na serwery FarmVille. Zmusiło to autorów do postawienia całego klastra serwerów tylko do cache'owania Facebooka. Generuje to potężne obciążenia sieci – szczytowo między grą a serwisem społecznościowym ruch osiąga 3 Gb/s, podczas gdy klaster cache'ujący dokłada swoje 1,5 Gb/s. W razie czego możliwe jest selektywne wyłączanie odwołań do „społecznościówki”, tak aby uniknąć blokowania się samej aplikacji. Pozwala to graczom grać, nawet jeśli wszystko inne w Facebooku zawiedzie.

Zróżnicowanie latencji w tej skali normalnie miałoby fatalny wpływ na doświadczenie użytkowników. Praktycznie każdy z komponentów gry jest jednak podatny na ten problem, choć w różnym stopniu. Jak pisze Rajlich, rozwiązaniem okazało się „myślenie o każdym z komponentów jako o degradowalnej usłudze”. Memcache, bazy danych, interfejsy REST – wszystkie są właśnie tak traktowane. „Ogranicza to liczbę błędów i wprowadza dławiki wykorzystania usługi. Chodzi o wyizolowanie poprzez dławienie błędów i ustalanie limitu czasu odpowiedzi problematycznych i obciążonych wysokimi opóźnieniami usług, tak aby nie prowadziły one do problemów z wydajnością gdzie indziej”. W tym celu można wyłączać poszczególne funkcjonalności w aplikacji.

«poprzednia 1 2 następna »

publikuj: Opublikuj w wykop.pl Opublikuj we flaker.pl Opublikuj na OSnews.pl Opublikuj w delicious wydrukuj
3 skomentuj »

Komentarze

  • Mr. B

    #1 Mr. B 2010-02-09 22:49:58 0

    ciekawi mnie, czy używany jest Erlang oraz XMPP do realizacji nodów ... bo coś mi tak podlatuje tym rozwiązaniem, czy ktos cos wie ?

    IP: 95.108.47.[...] Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/532.9 (KHTML, like Gecko) Chrome/5.0.318.0 Safari/532.9

  • Snickers

    #2 Snickers 2010-04-02 20:16:23 0

    Tak naprawdę twórcy gry uzyskują to przez grupowanie poleceń w Batch'e. Dodatkowo obudowują je w wewnętrzne transakcje.

    źródło

    http://wojciechasztemborski.blogspot.com/2010/04/farmville-amfphp-as3-zabezpieczenia.html

    IP: 89.231.54.[...] Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.1.249.1045 Safari/532.5

  • orchidea7

    #3 orchidea7 2011-10-31 21:16:13 0

    zbyt męczące są problemy na Farm Ville, ciągle występują błędy w aplikacji nie można akceptować zaproszeń i urasta to wiele niezaakceptowanych prezentów, uciążliwość trwa już kilka dni tak nie może być dalej bo zniechęca do grania, należy jak najszybciej usunąć problem!!!!!!!

    IP: 83.18.183.[...] Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.2.23) Gecko/20110920 Firefox/3.6.23

Uwaga! Możesz zarejestrować się w serwisie i w ten sposób zarezerwować swój nick oraz ominąć konieczność ciągłego odczytywania wyrazów.

Aby dodać komentarz, musisz podać swój nick, treść komentarza oraz poprawnie przepisać oba słowa z obrazka (słowa muszą być rozdzielone spacją).
W treści komentarza można używać języka formatowania BBcode.

Polecane książki

Czytaj Webhosting

Chcesz być na bieżąco z naszymi informacjami? Zapisz się na Newsletter.

Zarejestruj domenę

Sprawdź dostępność swojej domeny:

.pl: 0 zł   .com: 19.90 zł
.com.pl: 0 zł   .eu: 19.90 zł