2009-08-19 1 views
9

Время и снова, когда я искать тему на Google, Google возвращает мне результаты, а также выводит некоторые статистические данные, какКак Google выполняет результаты так быстро?

«Результаты 1 - 10 из примерно 8850000 для j2me (0,24 секунды).»

Я замечаю, что секунды, сделанные Google для обслуживания результатов, находятся во фракции второго диапазона.

Как Google обслуживает страницы так быстро, какие методы оптимизации базы данных использовали в конце?

+0

Программирование связано ??? – tw39124

+4

Я думаю, пользователи SO могли бы воспользоваться этим ответом. –

+0

Собственно, во втором поиске это примерно 0,1 сек! Потому что они должны кэшировать критерии поиска в течение некоторого времени. Если кто-то еще по всему миру выполнит поиск ваших критериев, то это будет в 0,1 с в первый раз! Чтобы попробовать это: введите «map» и search, и вы увидите, что это всегда около 0,1 с, потому что он постоянно ищет пользователей. Но если вы ищете случайный текст, например «asdasddsfdsfsf», это займет 0.2 -0.5 сек. – user44298

ответ

9

Я думаю, что главная причина для выполнения внешнего интерфейса являются:

  • Каждый запрос распространяется на ряд машин в параллель (я где-то читал, что каждый запрос попадает около 12 машин), вероятно, одиночные машины собирают ответы от этих машин
  • Все данные индекса хранятся в ОЗУ. С индексными данными я имею в виду термин словарный запас и индекс списка проводки, а в случае Google, вероятно, намного больше индексов, например. для исправлений правописания. Даже с одним дисковым вводом-выводом где-то латентность поиска диска предотвращает такую ​​производительность.

Googles Map/Reduce, GFS - отличные инструменты для обработки фоновых изображений, но они не имеют никакого отношения к производительности интерфейса.

+0

Хорошо, сэр, я думаю, что вам не хватает одной точки. Google не только возвращает список URL-адресов, но и вводит их в список. Итак, какие-то вычисления должны происходить, как только запрос попадает на одну из этих 12 машин. И учитывая, что персонализация также выполняется и что у Google есть пользовательская база Billions, я бы поставил свою ставку на GFS, а MapReduce использовался в списке URL-адресов, полученных из индекса на каждом из этих 12 компьютеров, для вычисления релевантности каждого из полученных url по запросу. И тогда вы можете сортировать по этим номерам релевантности, чтобы вернуть ранжированный список. – Shatu

+0

Сэр, я все еще держу пари. MapReduce разрабатывает систему пакетной обработки с довольно высокой задержкой. В любом случае это (образованные) догадки. Я не знаю точно. – dmeister

+0

'Все данные индекса хранятся в ОЗУ. Это просто глупо. – michaelmeyer

5

Map and Reduce + огромный распределенный центр обработки данных.

+1

MapReduce вряд ли станет ключом к быстрому вычислению в реальном времени. При отправке задания латентность Hadoop, как правило, более чем на минуту из-за ее дизайна. – user1036719