Architektura systemu Google

Większość systemu została napisana w C lub C++ i działa na komputerach wyposażonych w system Linux. Roboty (crawlers) mają za zadanie pobierać strony WWW, których adres otrzymują od Serwera URL. Następnie skopiowane już pliki zostają skompresowane i wysłane do magazynu dokumentów (StoreServer). Każdy zbiór ma przydzielony unikatowy numer ID. Funkcje indeksowania i sortowania są wykonywane przez Indexer oraz Sorter. Pierwszy moduł pobiera dane z przechowalni, dekompresuje zapisane tam dokumenty i przetwarza je. Każdy plik jest przekształcany w rekordy nazywane trafieniami (hits). Znajdują się w nich: słowo, jego pozycja w dokumencie i rozmiar fontu.
Tak utworzone rekordy Indexer umieszcza w cylindrach. Drugim ważnym zadaniem wykonywanym przez Indexer jest przetwarzanie wszystkich odnośników występujących na pobranych przez Szperacza stronach i zapisywanie ich do Kotwicy. Znajdujące się tam dane zawierają informację, dokąd i skąd prowadzi odsyłacz, oraz opis, który przy nim występuje.
URL Resolver czyta rekordy z Kotwic, zamienia względne adresy URL na absolutne oraz nadaje im ID. Powiązane w ten sposób dane umieszczane są przez Indexera w Cylindrach i tam przechowywane. Dodatkowo URLresolver tworzy bazę odnośników (links), które są parą numerów ID. Służy ona właśnie do generowania rankingu stron (PageRank). Sorter pobiera Cylindry, które są ułożone rosnąco względem ID, i sortuje je ponownie, tworząc w ten sposób indeks odwrotny.
Najbliżej użytkownika jest Szukacz (Searcher), który jest uruchamiany przez serwer WWW, a następnie, korzystając z leksykonu utworzonego przez Indexer, odwrotnego indeksu oraz modułu wyliczającego PageRank odpowiada na zapytania użytkowników.
Potężnym wyzwaniem jest pobieranie stron, a Crawler jest najczulszym punktem w całym systemie Google'a. Jego zadaniem jest odwiedzanie setek tysięcy dokumentów. Szperacze są zazwyczaj uruchamiane po kilka jednocześnie, a każdy utrzymuje około 300 połączeń naraz. Z obsługą takiego ruchu nie radzą sobie serwery DNS. Dlatego każdy Szperacz dysponuje własną pamięcią DNS, dzięki czemu nie musi za każdym razem wysyłać zapytań do serwerów nazw. Pomimo szczegółowego opracowania systemu na etapie projektowania podczas pracy Szperaczy zdarzały się nieprzewidziane sytuacje, jak chociażby próba pobrania trwającej gry online, co generowało dużą ilość niepotrzebnych informacji.
Sprzęt, na którym działa system Google, to nie jeden potężny serwer, a farma złożona z około 15 000 komputerów klasy PC (najprawdopodobniej największy w tej chwili system komputerowy tego typu na świecie). Całość pracuje z systemem Linux. Część tych maszyn zajmuje się pobieraniem stron WWW (aplikacja Crawler). Zwykle wygląda to tak, że na początku połączenie ze skanowanym serwisem nawiązuje jeden lub dwa roboty. Następnego dnia pojawia się ich 8 lub 9, a każdy Szperacz odwiedza około 8 stron na serwerze. Ponownie zjawiają się za około tydzień, później znikają na dłużej. Jednak pobrana strona nie pojawia się od razu w rezultatach wyszukiwania. Z reguły można ją tam znaleźć po około miesiącu od wizyty botów. Taki cykl nazywany jest przez fanów wyszukiwarki "Google Dance" i trwa właśnie około 30 dni - po tym czasie informacje w bazie Google'a zostają odświeżone.
Kluczem do sukcesu jest spowodowanie, żeby wyniki wyszukiwania były jak najbardziej zbliżone do oczekiwań użytkownika, próbującego odnaleźć w Internecie potrzebną mu informację. Jak to osiągnąć? Google najpierw tworzy listę dokumentów, w których słowo kluczowe zostało użyte. Wyraz może wystąpić w tytule, URL-u, treści strony zapisany małą czcionką, wytłuszczony itp. Każde z tych miejsc lub atrybutów ma przyznaną określoną wagę, co w powiązaniu z systemem PageRank daje ostateczny wynik i powoduje umieszczenie strony na odpowiednim miejscu w rezultatach szukania.


http://www.chip.pl/arts/archiwum/n/sub/articlear_106902.html

Autor:Tomasz Dziedzic o 14:20