|
Google już od dawna dzierży palmę pierwszeństwa wśród wyszukiwarek. Co kryje się za prostą i niepozorną stroną www.Google.com?
Większość użytkowników nie zdaje sobie sprawy jak ogromny potencjał
technologiczny kryje się pod tym adresem. Postaramy się opisać w jaki
sposób w ciągu ułamka sekundy Google jest w stanie znaleźć jedną z
kilku miliardów stron www. Informacje na temat rozwiązań
technologicznych zastosowanych w Google są zapisem mającej miejsce w
Londynie konferencji, w której brał udział wicedyrektor do spraw
technicznych Google – Urs Hoelzle.
Fakty
Gdyby zebrać wszystkie serwery Google razem to pewnie amerykańska firma
posiadałaby największe centrum obliczeniowym na świecie. Składająca się
z dziesiątek tysięcy komputerów PC sieć jest jednak rozproszona na
całym świecie. Liczby na temat Google dają trochę do myślenia:
- Ponad 4 miliardy zindeksowanych stron. Każda z nich ma średnio 10 kB
- Do 2000 komputerów w jednym klasterze
- Ponad 30 klastrów
- Obsługa 104 języków w tym nawet „klingońskiego” używanego przez postacie z filmu StarTrek
- W jednym klasterze składowanych jest ponad 1 Petabajt danych czyli milion gigabajtów
- Pojedynczy klaster ma wydajność zapisu/odczytu na poziomie 2 Gbit/s
- Komputerów w klasterze jest tak dużo że dziennie psują się średnio 2 serwery
- Brak poważniejszej awarii od lutego 2000
- Google obsługuje średnio 1000 zapytań w ciągu sekundy.
W firmie Google pracuje 800 informatyków w tym 200 z tytułem
doktora. I chociaż większość osób myśli że Google jest tylko
wyszukiwarką internetową, to w firmie prowadzi się badania nad wieloma innymi usługami.
Google przeszukuje już nie tylko witryny, ale także listy dyskusyjne,
blogi, sklepy internetowe, placówki naukowe, biblioteki a także
wyszukuje z sieci obrazki. Wprowadzenie usługi poczty Gmail
zapoczątkowało proces zwiększenia pojemności darmowych skrzynek
pocztowych. Wszystko to działa na tanich, niemarkowych komputerach PC,
które, biorąc pod uwagę skalę przedsięwzięcia, co chwila się psują.
Zapanowanie nad takim złożonym systemem jest niezwykle trudne. Kluczem
do sukcesu jest według Ursa Hoelzle oprogramowanie sterujące, które
szybko wyłapuje awarie i podejmuje odpowiednie akcje.
Ocena jakości strony
Google zindeksował jak dotąd ponad 4 miliardy stron www, które średnio
ważą ok. 10 KB. Daje to w sumie 40 Terabajtów danych. Każdego dnia
średnio 1000 razy w ciągu sekundy Google musi przeszukać te 40 TB
danych i zwrócić wyniki do użytkownika w ciągu ułamka sekundy. Sposób
opubliczniania informacji w internecie nie czyni tego zadania łatwym.
Weźmy np. stroną firmową jakiegoś przedsiębiorstwa - mówi Hoelzle – Jej
administrator zdecydował się że wszystkie informacje przedstawi w
formie graficznej. Możliwe jest że na stronie nawet nie pojawi się
nazwa firmy. Aby jednak zindeksować stronę, Google analizuje wszystkie
linki między dokumentami znajdującymi się na witrynie. Każdy link może
więc dostarczać dodatkowych informacji o firmie. Jeżeli na jakiejś
stronie pojawi się link do uniwersytetu Standforda to dla Google
oznacza to, że ktoś uznał, że witryna uniwersytetu jest wartościowa.
Tekst linku pozwoli zorientować się co znajduje się na tej stronie.
Jeżeli wiadomo co znajduje się na stronie na której jest link, to
pozwala to też zorientować się jaka jest jakość strony do której ten
link prowadzi. Takie podejście do oceny stron internetowych jest
podstawą algorytmu Page-Rank, który jest podstawowym źródłem sukcesu
Google. Page-Rank nie bierze pod uwagę tylko liczby linków, ale też ich
jakość i wagę. W rezultacie, po dokonaniu niezbędnych obliczeń, Google
wyświetla strony, które z największą dozą prawdopodobieństwa będą
przydatne dla użytkownika.
Proces wyszukiwania
Stosowanie algorytmu Page-Rank dla każdego wyszukiwania i każdej strony
jest oczywiście niemożliwe. Dlatego cały proces jest podzielony na
kilka etapów i rozdzielony na różne serwery. Gdy system dostaje
zapytanie od użytkownika, wędruje ono najpierw do serwerów indeksowych
na których znajduje się skatalogowana zawartość całej sieci www. Indeks
stanowi przyporządkowanie poszczególnych słów kluczowych do dokumentów,
które je zawierają. I tak np. indeks dla słowa „Imperial” zawiera listę
wszystkich dokumentów i ich adresów w których to słowo się znajduje. To
samo dla słowa „College”. W przypadku szukania „Imperial College”,
Google wybiera tylko dokumenty, które zawierają oba słowa. Przy
podawaniu wyników Google bierze pod uwagę jeszcze dodatkowe informacje
takie jak miejsce występowania słowa kluczowego np. nagłówek czy
stopka, pogrubienie itp. Każdy serwer indeksowy zawiera tylko jakiś
wycinek sieci www. Na jednym komputerze, a tym bardziej na tanich
komputerach stosowanych w Google, indeks całej sieci by się nie
zmieścił. Tak więc cały indeks sieci rozdzielony jest na wiele serwerów
i zapytanie jest przesyłane jednocześnie do wielu komputerów, przy czym
każdy z nich realizuje tylko swoje zadanie.
Po otrzymaniu zapytanie Google wylicza ok. 1000 najlepszych wyników
do których przypisuje tzw. Document-ID, czyli numer dokumentu. W
następnym kroku numery dokumentów wędrują do serwerów dokumentów na
których znajdują się kopie przeszukiwanych przez Google stron. Dzięki
temu oprócz listy adresów Google wyświetla także tytuły oraz część
tekstu znajdującego się w dokumencie. Także w tym wypadku każdy serwer
dokumentowy zawiera pewien wycinek sieci www.
W ostatnim etapie wyszukiwania, wyniki wędrują do Ad-serwerów, czyli
serwerów reklamowych, które do listy stron dodają reklamy, stanowiące
podstawowe źródło przychodów firmy. Gotowa lista wyników wraz z
reklamami wysyłana jest do przeglądarki internauty.
Skalowalność
Wraz ze zwiększaniem się zasobów sieciowych rośnie też obciążenie dla
wyszukiwarki. Na szczęście ceny sprzętu spadają o wydajność rośnie. Tak
więc przy np. dwukrotnym zwiększeniu zasobów sieci WWW wcale nie jest
konieczne dwukrotne zwiększenie liczby komputerów. Na szczęście, według
Ursa Hoelzle Google jest tak zbudowane że zwiększenie liczby komputerów
nie powoduje spadku wydajności z pojedyńczego komputera.
Sprzęt
Cały model biznesowy Google funkcjonuje sprawnie dlatego, że firma
stosuje tani sprzęt komputerowy. Źródła takiego podejścia można
doszukiwać się w historii firmy. Założyciele Google: Sergey Brin i
Larry Page jeszcze jako studenci Uniwersytetu Stanforda, musieli szukać
taniego sprzętu, który stał się zbędny w wyniku modernizacji. Sprzęt
ten nie gwarantował dużej prędkości, ale był tani lub wręcz darmowy.

Centrum obliczeniowe Google
Dzięki takiemu rozwiązaniu usługa wyszukiwania
nic nie kosztuje a firma jest w stanie utrzymywać się z wyświetlania
reklam. Według Ursa Hoelzle kluczem do sukcesu firmy jest
oprogramowanie, które pozwala stosować tani sprzęt. Klastry zbudowane
są z niemarkowych serwerów 1U i 2U umieszczonych w szafach typu rack,
które są tak tanie, że w Google nazywane są zwykłymi pecetami. Każdy
serwer posiada normalny procesor x86 oraz zwykły dysk IDE. Jego
awaryjność też jest na poziomie zwykłego komputera PC, co oznacza że
średnio po upływie 3 lat się zepsuje.
O ile w przypadku komputerów domowych jedna awaria na 3 lata jest do
zaakceptowania, o tyle dla Google stanowi ona poważny problem. W
klastrze składającym się z tysiąca komputerów średnio jeden serwer
dziennie się psuje. „Przy takiej wielkości przedsięwzięcia nie da się
tego naprawić samodzielnie” - twierdzi Hoelzle – „Dlatego
oprogramowanie zostało tak napisane, żeby zawsze brać pod uwagę
możliwość awarii każdego komponentu, który jest natychmiast omijany.
Nasz sukces to właśnie oprogramowanie”.
Replikacja danych
Podstawowym zabezpieczeniem przed utratą danych jest ich replikacja.
Każdy serwer, który zawiera jakąś część internetu, posiada nawet 10
kopii. Wydaje się że jest to drogie rozwiązanie, ale przy takim
obciążeniu serwery i tak muszą być zwielokrotniane, żeby obsłużyć dużą
liczbę zapytań. Gdy zatem awarii ulegnie jeden serwer to wydajność
usługi spada o 10%. Nie jest to zatem totalna awaria, ale drobne
zakłócenie, które przy poprawnym rozdziale obciążenia, da się opanować.
Obecnie Google posiada nie 10, ale nawet 50 kopii każdego serwera.
Firma tworzy kopie serwerów, kopie zbiorów serwerów oraz kopie centrów
obliczeniowych, które rozsiane są na całym świecie. Od lutego 2000
wyszukiwarka nie miała ani jednej poważnej awarii. Awaria sprzed 5 lat
wydarzyła się, gdy Google miało tylko jedno centrum obliczeniowe w
którym popsuł się główny Switch. Przez pół godziny wyszukiwanie nie
działało. Teraz wszystkie dane posiadają swoje kopie rozsiane w różnych
centrach obliczeniowych. „Gdy utracimy dane w jednym centrum
obliczeniowym możemy z nich korzystać w innym. Wbrem pozorom dzieje się
to stosunkowo często” – twierdzi Hoelzle. „Utworzenie nowego centrum
trwa zwykle nie więcej niż 3 dni. Potrzebujemy serwerów, kabli oraz
ciężarówki, która to wszystko przewiezie. Instalacja oprogramowania i
uaktualnienie danych przebiegają automatycznie”.
Dane składowane na serwerze zapisywane są na dyskach przy pomocy
systemu GFS (Google File System). Pojedyńczy blok ma 64 MB wielkości
(dla porównania bloki w systemach windows mają kilka kB). Każdy blok
zapisywany jest na trzech różnych serwerach znajdujących się w różnych
szafach serwerowych podpiętych do różnych switchów. Takie rozwiązanie
gwarantuje, że awaria lub błąd zapisu/odczytu danych nie będzie miało
wpływu na jakość wyników. Raz zdarzyło się, że ktoś niechcący odłączył
szafę rackową z 80-cioma serwerami. Wydajność systemu się obniżyła,
ponieważ zaczął się replikować, jednak wyszukiwanie nadal działało. W
sumie Google posiada 30 klastrów z systemem GFS. Jeden klaster może
składać się nawet z 2000 serwerów i magazynować Petabajty danych. Każdy
klaster ma wydajność zapisu i odczytu na poziomie ok. 2 Gbit/s.
Pojedyńczy serwer „wyciąga” średnio ok. 2 Mbit/s.
Inne problemy i wyzwania
W swoim wykładzie wicedyrektor Google ds. technicznych zidentyfikował
jeszcze kilka spraw, które są ważne z punktu widzenia jakości
wyszukiwania. Jednym z nich są błędy zapisu wynikające ze specyfikacje
dysków twardych. Gwarantują one poziom błędów na poziomie 1: 10-10 –
1:10-15 bitów tzn jeden na 1000000000000000 bitów może zostać zapisany
błędnie a oprogramowanie sterujące dysku twardego tego nie wykryje.
Przy Petabajdzie danych takie wartości mają jednak duże znaczenie.
„Wychodzimy z założenia że w ciągu miesiąca wiele razy dane zostaną
zapisane błędnie a my o tym nie będziemy wiedzieli”. Dlatego w systemie
GFS wprowadzone zostały specjalne funkcje badające poprawność danych.
Kolejnym problemem jest rosnąca liczba skarg na Google od firm
prowadzących różnego rodzaje komercyjne witryny internetowe. System
reklamowy Google – Adwords – umożliwia zdefiniowanie słów kluczowych,
dla których wyświetlone zostaną reklamy. Możliwe jest zatem podanie
jako słowa kluczowego nazwy konkurencyjnej firmy. Wraz z linkiem do jej
witryny po prawej stronie wyników wyszukiwania pojawi się także box
reklamowy konkurencji. „Internet staje się coraz bardziej komercyjny.
Myśleliśmy nawet nad przyciskiem wyszukiwania o nazwie CHCĘ MNIEJ
LINKÓW DO STRON KOMERCYJNYCH” twierdzi Hoelzle. Firma jednak nie
zdecydowała się na taki krok...
Marcin Horecki
Autor jest redaktorem serwisu
Telix.pl |