2009-08-19 13 views
9

Raz po raz podczas wyszukiwania tematu w Google, Google zwraca mi wyniki, a także wypisuje jakieś statystyki jakW jaki sposób Google wyświetla wyniki tak szybko?

„Wyniki 1 - 10 z około 8.850.000 dla J2ME (0,24 sekundy).”

Zauważyłem, że sekundy, które Google wykorzystał do wyświetlenia wyników, są ułamkami drugiego zakresu.

W jaki sposób Google wyświetla strony tak szybko, jakie sztuczki optymalizacyjne bazy danych wykorzystywał na końcu?

+0

Programowanie powiązane ??? – tw39124

+4

Sądzę, że użytkownicy SO mogliby skorzystać z tej odpowiedzi. –

+0

Przy drugim wyszukiwaniu jest to około 0,1 sekundy! Ponieważ muszą one przez pewien czas buforować kryteria wyszukiwania. Jeśli ktoś inny na całym świecie szukałby Twoich kryteriów, za pierwszym razem byłby to również 0,1 s! Aby to wypróbować: wpisz "map" i szukaj, a zobaczysz, że zawsze jest to około 0,1 sekundy, ponieważ jest nieustannie wyszukiwane przez użytkowników. Ale jeśli wyszukasz losowy tekst, taki jak "asdasddsfdsfsf", zajmie to 0,2 -0,5 s. – user44298

Odpowiedz

9

Myślę, że głównym powodem, dla wykonywania frontend to:

  • Każdy wniosek jest rozprowadzany do szeregu maszyn równolegle (Czytałem gdzieś, że każde zapytanie trafia około 12 maszyn), chyba pojedyncze maszyny zbierają odpowiedzi z tych maszyn.
  • Wszystkie dane indeksu przechowywane są w pamięci RAM. Z danymi indeksowymi rozumiem termin słownictwo i indeks listy wpisów, aw przypadku Google prawdopodobnie dużo więcej indeksów, np. do poprawek pisowni. Nawet w przypadku pojedynczego dysku I/O gdzieś opóźnienie szukania dysku uniemożliwia taką wydajność.

Google Maps/Reduce, GFS to doskonałe narzędzia do przetwarzania w tle, ale nie mają nic wspólnego z wydajnością frontendu.

+0

Cóż, sir, myślę, że brakuje ci jednego punktu. Google zwraca nie tylko listę adresów URL, ale także ich listę. Tak więc, pewnego rodzaju obliczenia muszą mieć miejsce, gdy zapytanie trafi na jeden z tych 12 komputerów. Biorąc pod uwagę, że przeprowadzana jest także personalizacja i że Google ma bazę użytkowników w miliardach, postawiłbym mój zakład na GFS i MapReduce na liście adresów URL pobranych z indeksu na każdym z tych 12 komputerów, aby obliczyć trafność każdego pobranego pliku. url weryfikuje zapytanie. A następnie można posortować według numerów trafności, aby zwrócić listę rankingową. – Shatu

+0

Proszę pana, wciąż się sprzeciwiam. MapReduce jest z założenia systemem przetwarzania wsadowego o dość dużym opóźnieniu. W obu przypadkach są to (wykształcone) domysły. Nie wiem na pewno. – dmeister

+0

'Wszystkie dane indeksu przechowywane są w pamięci RAM'. To jest po prostu głupie. – michaelmeyer

5

Map and Reduce + ogromne rozproszone centrum danych.

+1

MapReduce jest mało prawdopodobne, aby być kluczem do szybkiego obliczania w czasie rzeczywistym. Przesyłając zlecenie, opóźnienie Hadoop jest zwykle dłuższe niż minuta ze względu na jego charakter konstrukcyjny. – user1036719

Powiązane problemy