М. Абрамзон - Яндекс для всех
Большинство значимых зарубежных нерусскоязычных сайтов может быть найдено РїРѕ ссылке, РїСЂРё этом, РІ отличие РѕС‚ русскоязычных сайтов, РІ Рндекс РѕРЅРё РЅРµ попадают. Упрощается ситуация РІ том случае, РєРѕРіРґР° Сѓ компаний, таких как BMW, IBM Рё РјРЅРѕРіРёС… РґСЂСѓРіРёС…, появляются русскоязычные версии сайтов, без проблем индексируемые Яндексом.
Поисковая машина — самый востребованный ресурс Яндекса. Ежедневно его посещают около четырех с половиной миллионов посетителей, при этом количество просмотренных поисковых страниц приближается к сорока миллионам. При этом пользователи, выполняющие на нем поиск, этого не замечают — складывается впечатление, что Яндекс работает индивидуально для каждого из них.
Так, при запросе средней "тяжести", то есть при поиске не очень частотного слова, время отклика системы (без учета времени передачи данных по каналу от поисковой системы к пользовательскому компьютеру) исчисляется десятыми долями секунды.
Р’ условиях постоянного роста количества пользователей Рё РёС… запросов главной задачей РїРѕРёСЃРєРѕРІРѕР№ машины является сохранение приемлемых СЃ точки зрения пользователей скорости Рё полноты выполнения запросов. Рта задача решается несколькими способами, каждый РёР· которых является необходимым, РЅРѕ РЅРµ достаточным РІ отрыве РѕС‚ РґСЂСѓРіРёС…. РЎРїРѕСЃРѕР±С‹ достижения высоких результатов РЅР° сегодня применяются следующие:
□ оптимизация базовых поисковых алгоритмов и архитектуры поиска;
□ регулярное увеличение мощностей вычислительных ресурсов поисковой системы;
□ использование архитектурной возможности масштабирования системы.
Оптимизация поисковых алгоритмов проводится постоянно. Результаты таких работ вводятся в действие до двух раз в год. Сказывается их внедрение на уменьшении нагрузки на поисковую машину (в год эта величина составляет 20–30 %), а также на уменьшении времени отклика.
Увеличение мощности — это постоянное обновление используемого оборудования. Сюда входит и переход на более мощные процессоры, увеличение оперативной памяти, увеличение объемов дисковых хранилищ. Способ хотя и необходимый, но крайне затратный. Результативность выполненного апгрейда можно косвенно оценить увеличением объема поисковой базы, находящейся в его распоряжении.
Третий способ — использование мастшабируемости системы. В двух словах суть его заключается в том, что каждый уровень системы распараллеливается на несколько одинаковых узлов. Например, при наличии десяти поисковых серверов, обрабатывающих поступающие запросы, очередной запрос будет направляться на тот из них, которых в данный момент времени будет свободен.
Аналогично обстоит дело Рё СЃРѕ СЃР±РѕСЂРѕРј информации. Ртим занимается СЂРѕР±РѕС‚-паук, который РѕР±С…РѕРґРёС‚ страницы СЃ заданными URL Рё скачивает РёС… РІ базу данных, Р° затем архивирует Рё перекладывает РІ хранилище суточными порциями. Р РѕР±РѕС‚ размещается РЅР° нескольких машинах, Рё каждая РёР· РЅРёС… выполняет СЃРІРѕРµ задание. Так, СЂРѕР±РѕС‚ РЅР° РѕРґРЅРѕР№ машине может качать новые страницы, которые еще РЅРµ были известны РїРѕРёСЃРєРѕРІРѕР№ системе, Р° РЅР° РґСЂСѓРіРѕР№ — страницы, которые ранее уже были скачаны РЅРµ менее месяца, РЅРѕ Рё РЅРµ более РіРѕРґР° назад.
Хранилище у всех машин едино.
При необходимости работу можно распределить другим способом, например, просто распределив между роботами всю работу, учитывая лишь ее объемные показатели. Параллельная работа программы позволяет легко выдерживать дополнительную нагрузку — при увеличении количества страниц, которые нужно обойти роботу, достаточно просто распределить задачу на большее число машин.
Р’ хранилище информация РІ сжатом РІРёРґРµ собирается Рё разбивается РЅР° части. Рти части постепенно распределяются между множеством машин, РЅР° которых запущена программа-индексатор. Как только индексатор РЅР° РѕРґРЅРѕР№ РёР· машин заканчивает обработку очередной части страниц, РѕРЅ обращается Р·Р° следующей порцией. Р’ результате РЅР° первом этапе формируется РјРЅРѕРіРѕ маленьких индексных баз, каждая РёР· которых содержит информацию Рѕ некоторой части Рнтернета. РџСЂРё увеличении нагрузки РЅР° машины, занимающиеся индексированием, проблема может быть решена простым добавлением машин РІ систему.
После того как все части информации обработаны, начинается объединение (слияние) результатов. Основная база участвует в анализе как одна из частей нового индекса. Так, если объединяются 70 новых частей, то в анализе участвует 71 фрагмент (70 новых + основная база предыдущей редакции). Специальная программа ("сливатор") составляет таблицы перенумерации документов базы. Содержимое всех частей объединяется. Среди страниц с одинаковыми адресами выбирается наиболее свежая версия; если при скачивании URL последней информацией была ошибка 404 (запрашиваемая страница не существует), она временно удаляется из индексной базы. Параллельно осуществляется склейка дублей — страницы, которые имеют одинаковое содержимое, но различные URL, объединяются в один документ.