Джеф Дин (Jeff Dean) дал на WSDM 2009 описание основных моментов развития поисковика Google.
Изменения масштабов 1999-2009
- 100-кратное увеличение числа документов в индексе;
- 10000-кратное увеличение числа запросов;
- 10000-кратное ускорение обновления всего индекса;
- средние время исполнения запроса уменьшилось в 5 раз, с менее 1 сек. до менее 0,2 сек.
Система была спроектирована на 10-кратный рост числа документов и переписана на 100-кратный рост.
В конце 90-х
- Пакетная система краулинга (поискового бота/паука), останавливающаяся по достижении заданного числа страниц;
- Пакетная система индексированная, использующая стандартные утилиты и средства Unix, подверженная влиянию машинных крахов и сбоев;
- Индекс образца 1997 года представлял собой простую байто-ориентированную систему, в которой записывалась информация о вхождениях слов в документы. Она требовала большого числа обращений к диску.
В скоре после
- Перешли на новый блочно-ориентированный и переменной длины формат индекса, использовавший скип-таблицы для наиболее часто встречающихся слов. Размер индекса сокращен на 30% и увеличена скорость его чтения;
- Добавлены кэшируещие сервера как для результатов поиска, так и для сниппетов документов;
- В начале 2001 перешли на индекс всё-в-памяти, в котором серверы индекса (вместе с кэширующими серверами, серверами, хранящими копии документов, и т.д.) работали напрямую с фронт-энд веб-серверами;
- Индекс был секционирован по-документно, а не по терминам.
Недавнее и текущее
- Собственный дизай всего с самого низа: свой дизайн серверных стоек, свой дизайн материнских плат PC класса, свой linux и свое программное обеспечение (MapReduce, BigTable и т.п.);
- Индексирование построено на концепции MapReduce;
- В 2004 перешли на иерархическую систему серверов, обслуживающих индекс, построенную поверх GFS-based индексов (теперь только root-сервера обслуживали запросы с веб-серверов);
- "Быстрые" обновления индекса;
- в 2007 добавили super-root-сервер, взаимодейтсвующий со всеми индексными серверами вертикальных коллекций, обеспечивающий "Универсальный поиск".
Исследования на будущее
- Межязыковый поиск информации - качество и масштабируемость;
- Поиск в сочетаниях частных, корпоративных и публичных документов;
- Автоматическое построение эффективных систем поиска информации для различнх нужд.
Судя по последнему абзацу следует ожидать синергии Google Mini и Google Search Appliance с основным поиском Google.com - убийственное сочетание для корпоративного поиска, все системы корпоративного поиска без своего большого поиска устаревают в момент, либо будут вынуждены кооперироваться с Гуглем (или Яху, МСН и иже с ними). Почему Яндекс не сделал скрещивание Яндекс.Server с Яндекс.XML непонятно, вполне очевидный шаг...