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

TAGI: facebook , mysql , nosql , memcached , flashcache , infrastruktura

2011-12-07 11:15  |  Tomasz Smykowski

Memcached i Flashcache uchronią Facebooka przed losem gorszym od śmierci?

Memcached i Flashcache uchronią Facebooka przed losem gorszym od śmierci?

W lipcu profesor MIT Michael Stonebraker ogłosił, że MySQL ściągnie na Facebooka los gorszy od śmierci, a inżynierowie polegną pod naporem miliardów polubień, z których każde wykonuje zapytanie do bazy MySQL. Chociaż Facebook nie komentował wtedy oficjalnie przepowiedni profesora, to teraz, podczas poniedziałkowej prezentacji technologii serwisu, Domas Mituzas wyjaśnił powody trzymania się popularnej bazy danych.

800 milionów użytkowników, z których 500 milionów odwiedza serwis codziennie oraz 350 milionów użytkowników mobilnych, korzystających z 7 milionów aplikacji, wykonuje 60 milionów zapytań do bazy skutkujących 4 milionami zmian wierszy na sekundę. Jednak nie jest prawdą, że wszystkie mają miejsce na twardych dyskach serwerów. Chronią je dwie warstwy pamięci tymczasowej: memcached serwujący dane wprost z pamięci RAM serwera oraz moduły Flashcache, pozwalające na opóźnienie zapisów na dysk.

Flashcache jest oprogramowaniem łączącym dyski twarde i pamięci SSD w jeden blok zapisu. Dane, które mają zostać zapisane w bazie trafiają najpierw do szybkiej pamięci SSD. Rezydują tam do momentu gdy zabraknie w niej miejsca, albo przyjdzie kolejne żądanie ich modyfikacji. Wtedy, przed wykonaniem następnej operacji dane są zapisywane na dysk. Algorytm ten, znany jako Write-Back, w połączeniu z pamięciami SSD nowej generacji powoduje, że zapisy odbywają się z prędkością zbliżoną do szybkości dysku SSD – chociaż stwarzają zagrożenie, że w momencie awarii dane z SSD przepadną.

Struktura złożona w 60% z twardych dysków, 20% pamięci SSD i 10% hybryd HDD-SSD sprawdziła się przez ostatnie dwa lata, gdy liczba serwerów wzrosła trzykrotnie, ilość danych użytkownika siedmiokrotnie, a ilość wszystkich danych dwudziestokrotnie.

Jednak nie tylko struktura się liczy. Facebook ceni sobie społeczność, będącą w stanie pomóc szybciej niż komercyjna obsługa klienta innych baz danych, których producenci nie są zainteresowani przetestowaniem przez Facebooka ich produktów i opublikowaniem wyników.

Środowisko Open Source też nie ma w tym momencie dobrej alternatywy. Rozwiązania NoSQL nie są jeszcze na tyle dojrzałe i wypróbowane, aby wykorzystać je w Facebooku. Na korzyść NoSQL nie przemawia też większa liczebność zespołu potrzebnego do obsługi systemu wiadomości opartego na HBase, niż zespołu MySQL.

Otwarte oprogramowanie pełni ważną rolę w rozwoju Facebooka, który odwzajemnia się publikacją części swoich rozwiązań. Gdyby była alternatywa lepsza niż MySQL, Facebook pewnie by z niej skorzystał – tym bardziej, że nie krępuje się przed stosowaniem nietypowych rozwiązań, czego dowodzi na przykład wykorzystanie translatora HipHop, tłumaczącego kod PHP do C++. Z drugiej strony przy obecnej skali serwisu trudno byłoby porzucić MySQL na rzecz NoSQL. Może ktoś inny udowodni, rosnąc od zera na NoSQL, że jest w stanie poradzić sobie z obsługą niemal miliarda użytkowników. Póki co jednak przed miłośnikami NoSQL stoi ważniejsze wyzwanie: zainteresowanie nim większej liczby osób i lepsze komunikowanie sposobu w jaki systemy te działają i jakie konkretnie korzyści mogą dać.

Całą prezentację możecie obejrzeć tutaj.

źródło: gigaom.com

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

Komentarze

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ł