Как Google может быть настолько быстрым?

Как будто вы пытаетесь получить доступ к объекту, который является null. Рассмотрим ниже пример:

TypeA objA;

. В это время вы только что объявили этот объект, но не инициализировали или не инициализировали. И всякий раз, когда вы пытаетесь получить доступ к каким-либо свойствам или методам в нем, он будет генерировать NullPointerException, что имеет смысл.

См. Также этот пример:

String a = null;
System.out.println(a.toString()); // NullPointerException will be thrown
89
задан Peter Mortensen 12 December 2009 в 21:14
поделиться

18 ответов

Вот некоторые большие ответы и обеспеченные указатели:

5
ответ дан Jorge Ferreira 24 November 2019 в 07:20
поделиться
  1. Много подготовленное хранение данных, обработка и извлечение

  2. ЭФФЕКТИВНОЕ Распределение (100's 1000-х машин) вышеупомянутых задач

  3. Хорошая платформа, чтобы хранить необработанные данные и обработанные результаты

  4. Хорошая платформа для получения результатов

, Как точно все они сделаны, получена в итоге всеми ссылками, которые Вы имеете в сводке

вопроса
0
ответ дан computinglife 24 November 2019 в 07:20
поделиться

Задержка уничтожается доступами к диску. Следовательно разумно полагать, что все данные, используемые для ответа на запросы, сохранены в памяти. Это подразумевает тысячи серверов, каждый копирующий один из многих черепков. Поэтому критический путь для поиска вряд ли поразит любую из их ведущих технологий распределенных систем GFS, MapReduce или BigTable. Они будут использоваться для обработки результатов поискового робота, грубо.

удобная вещь о поиске состоит в том, что нет никакой потребности иметь или решительно последовательные результаты или абсолютно актуальные данные, таким образом, Google не препятствуют ответить на запрос, потому что более актуальный результат поиска стал доступным.

, Таким образом, возможная архитектура довольно проста: серверы фронтэнда обрабатывают запрос, нормализуя его (возможно путем снятия стоп-слов и т.д.) тогда распределение, это к любому подмножеству копий владеет той частью пространства запроса (альтернативная архитектура должна разделить данные веб-страницами, так, чтобы одна из каждой копии установила потребности, с которыми свяжутся для каждого запроса). Многие, много копий, вероятно, запрашиваются, и самая быстрая победа ответов. Каждая копия имеет индекс, отображающий запросы (или условия отдельного запроса) к документам, которые они могут использовать для поиска результатов в памяти очень быстро. Если различные результаты возвращаются из других источников, сервер фронтенда может оценить их, поскольку он выкладывает HTML.

Примечание, что это - вероятно, длинный путь, отличающийся от того, что Google на самом деле делает - они спроектируют жизнь из этой системы, таким образом, сможет быть больше кэшей в странных областях, странных индексах и некоторой броской схеме выравнивания нагрузки среди других возможных различий.

47
ответ дан HenryR 24 November 2019 в 07:20
поделиться

Если Вам будет интересно более подробно о том, как кластер Google работает, я предложу эту реализацию с открытым исходным кодом их HDFS.

Это основано Mapreduce Google.

0
ответ дан yann.kmm 24 November 2019 в 07:20
поделиться

И алгоритмы , который может использовать ту аппаратную силу. Как mapreduce, например.

0
ответ дан Vinko Vrsalovic 24 November 2019 в 07:20
поделиться

HenryR, вероятно, корректен.

Карта Уменьшает, не играет роль для самого поиска, но только используется для индексации. Проверьте , это видео интервью с Картой Уменьшает изобретателей .

1
ответ дан kohlerm 24 November 2019 в 07:20
поделиться

TraumaPony является правильным. Тонны серверов и умной архитектуры для выравнивания нагрузки / кэширование и вуаля Вы можете выполнение запросов за менее чем 1 секунду. Было много статей о сетевой архитектуре сервисов Google описания. Я уверен, что можно найти их через Google:)

1
ответ дан aku 24 November 2019 в 07:20
поделиться

Эта ссылка это также очень информативный Негласно запроса Google

2
ответ дан user20804 24 November 2019 в 07:20
поделиться

Аппаратные средства.

Партии и много аппаратных средств. Они используют значительные кластеры товарных ПК как их ферма сервера.

1
ответ дан TraumaPony 24 November 2019 в 07:20
поделиться

Можно найти в домашняя страница исследования Google некоторые указатели о научно-исследовательских работах записанный некоторыми парнями Google. Необходимо запустить с explanatio , файловая система Google и эти отображает/уменьшает алгоритм , чтобы попытаться понять то, что продолжается позади страниц Google.

2
ответ дан Nicolas 24 November 2019 в 07:20
поделиться

Google нанимает лучший из лучших. Некоторые самые умные люди в IT работают в Google. У них есть фактически бесконечные деньги для броска в аппаратные средства и инженеров.

Они используют высоко оптимизированные механизмы хранения для задач, которые они выполняют.

Они географически определили местоположение ферм сервера.

3
ответ дан Matthew Watson 24 November 2019 в 07:20
поделиться

Все знают, что это - потому что они используют голубей , конечно!

, О, да, это и Mapreduce.

4
ответ дан HanClinto 24 November 2019 в 07:20
поделиться

У них в значительной степени есть локальная копия Интернета, кэшируемого на тысячах ПК в пользовательских файловых системах.

3
ответ дан Richard Walton 24 November 2019 в 07:20
поделиться

Одна из самых важных задержек является веб-серверами, получает Ваш запрос к веб-серверу и ответ назад. Эта задержка связывается скоростью света, которой даже должен повиноваться Google. Однако у них есть центры обработки данных во всем мире. В результате среднее расстояние до любого из них ниже. Это подавляет задержку. Несомненно, различие измеряется в миллисекундах, но имеет значение, если ответ должен прибыть в 1 000 миллисекунд.

4
ответ дан MSalters 24 November 2019 в 07:20
поделиться

Они реализовали хороший, распределенный, алгоритмы, работающие на огромном количестве аппаратных средств.

4
ответ дан Anders Sandvig 24 November 2019 в 07:20
поделиться

Одно то, что у меня есть aways, найденный забавным, - то, что Google на самом деле выполняется биоинформатикой (’kay, я нахожу это забавным, потому что я - bioinf†¦ штука). Позвольте мне объяснить.

Биоинформатика вначале имела проблему искать мелкие тексты в гигантских строках очень быстро. Для нас “gigantic string” является, конечно, DNA. Часто ни один DNA, но база данных нескольких ДНК от различных разновидностей/людей. Мелкие тексты являются белками или их генетическим дубликатом, геном. Большая часть первой работы специалистов в области вычислительной биологии была ограничена для нахождения гомологий между генами. Это сделано для установления функции недавно найденных генов путем замечания общих черт генам, которые уже известны.

Теперь, эти строки DNA становятся очень большими действительно и (с потерями!) поиск должен быть сделан чрезвычайно эффективно. Большая часть современной теории строкового поиска была таким образом разработана в контексте вычислительной биологии.

Однако некоторое время назад, стандартный текстовый поиск был исчерпан. Новый подход был необходим, который позволил искать большие строки в подлинейное время, то есть, не смотря на каждый отдельный символ. Это было обнаружено, что это может быть решено путем предварительной обработки большой строки и создания специальной индексной структуры данных по нему. Многие отличающиеся такие структуры данных были предложены. У каждого есть их достоинства и недостатки, но существует тот, который особенно замечателен, потому что он позволяет поиск в постоянное время. Теперь, в порядках величины, в которых работает Google, это больше не строго верно, потому что выравнивание нагрузки через серверы, предварительная обработка и некоторый другой сложный материал должны быть приняты во внимание.

, Но в сущности, так называемое индекс q-грамма позволяет поиск в постоянное время. Единственный недостаток: структура данных становится смехотворно большой. По существу, для обеспечения поиска строк с [максимум 112] q символы (отсюда имя) это требует таблицы, которая имеет одно поле для каждой возможной комбинации буквы q (то есть, <глоток> q S , где S является размером алфавита, скажите 36 (= 26 + 10)). Кроме того, должно быть одно поле для каждого положения буквы в строке, которая была индексирована (или в случае Google для каждого веб-сайта).

Для смягчения чистого размера Google будет, вероятно, использовать несколько индексов (на самом деле, они делают , для предложения услуг как исправление орфографических ошибок). Самые верхние не будут работать на символьном уровне, но на уровне слова вместо этого. Это уменьшает q, но он делает S бесконечно больше, таким образом, они должны будут использовать хеширование и таблицы коллизии для преодоления бесконечного числа различных слов.

На следующем уровне, эти хешированные слова укажут на другие индексные структуры данных, которые, в свою очередь, хешируют символы, указывающие на веб-сайты.

, Короче говоря, эти q - индексные структуры данных грамма являются возможно самой центральной частью алгоритма поиска Google. К сожалению, нет никаких хороших нетехнических документов, объясняющих, как q - индексы грамма работают. Единственная публикация, что я знаю это, содержит описание того, как такой индекс работает, †¦ увы, мой тезис бакалавра .

22
ответ дан Konrad Rudolph 24 November 2019 в 07:20
поделиться

Это немного слишком много для помещения его в один ответ. http://en.wikipedia.org/wiki/Google_platform

26
ответ дан Vasil 24 November 2019 в 07:20
поделиться

Попытка обобщенного списка (который не зависит от Вас имеющий доступ к внутренним инструментам Google):

  1. запросы Parellelize (например, разбивают единственный запрос в к меньшим наборам)
  2. Асинхронный (делают максимально как можно больше асинхронным, например, не заблокирует запрос пользователя)
  3. Память / кэш (Дисковый ввод-вывод является медленным, сохраните максимально как можно больше в памяти)
  4. , Предварительно вычисляют (Действительно максимально очень работайте перед рукой, не ожидайте пользователя для выяснения данные/обработку)
  5. Забота о Вашем HTML фронтенда (см. Yslow и друзей)
3
ответ дан Jilles 24 November 2019 в 07:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: