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 »
Komentarze
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.
Popularne
Nazwa padła ofiarą szantażystów, inni polscy hosterzy też zagrożeni?
20
Premiera Diablo 3 wzbudziła dyskusję na temat gier, które zawsze chcą być online
19
Darmowy Internet od Aero2. Jak go zdobyć i jakie są prawdziwe koszta? Instrukcja krok po kroku
11
Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych
17
Nowy problem z Windows 8: bootuje się za szybko
10
Amerykańscy rodzice straszeni „e-narkotykami” dostępnymi w Sieci
21
Z okazji wypuszczenia akcji Facebooka przypomnijmy sobie, kim jest Zuckerberg
10
Blueseed: libertariańska sztuczna wyspa przyciągnęła już ponad sto startupów z całego świata
8
Rewolucja w Firefoksie, nowa łatka czterokrotnie ograniczyła zużycie pamięci
20
Darmowy Internet od Aero2. Jak go zdobyć i jakie są prawdziwe koszta? Instrukcja krok po kroku
11
CVDazzle: makijaż jest w stanie pokonać automatyczne systemy ulicznego monitoringu
3
Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych
17
Co czeka programistów po czterdziestce?
27
Ubuntu 12.04 LTS już dostępny: stabilna dystrybucja na następne pięć lat?
28
Społeczność
Pawel Yep. http://www.youtube.com/watch?v=doNxaK9aQy0
obsservator O co chodzi z tymi czołgami Samsunga? Mają w ofercie?
Aras Bez SEO byśmy mieli same stare śmieci w topach, bo są na starych domenach...
Jarek1983-2 Potwierdzam , że nie webd.pl nie działał przez kilka godzin.
Do...
Wszerad Tylko dwa gatunki mogą na tym skorzystać, filmy przyrodnicze i porno w...
gosc Jak by tak zaczęli kręcić filmy to rewolucja w przemyśle kinowym i TV...
m_gol @_Igancio:
Chyba pomyliłeś gazetę z natemat.pl...
- Najdmen.pl: Konta www z wyłączonym licznikiem transferu od IONIC.pl (1)
- 2BE.PL: [Oferta] Promocja jak złoto w 2BE.PL (1)
- gardius: Dobra hurtownia sportowa (1)
- gardius: Tanie książki gdzie warto kupować? (1)
- Najdmen.pl: PROMOCJA, 500 DOMEN .EU ZA 1 PLN NETTO ! (1)
- VMLine: [Oferta] Serwery VPS Xen-HVM/OpenVZ z darmową administracją (2)
- Marek: Generowanie PDFa (2)
Polecane książki
Praca
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ł |









#1 Mr. B 2010-02-09 22:49:58 0
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
#2 Snickers 2010-04-02 20:16:23 0
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
#3 orchidea7 2011-10-31 21:16:13 0
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