Многосерверность

alexf2000
На сайте с 15.10.2004
Offline
79
6575

Расскажите кто знает, как работает поисковая система, которая "сидит" по нескольким (многим) отдельным компьютерам? Допустим средний размер документа на диске - 25к, тогда на 1 нормальный сервер с 200ГБ винтом влезет примерное 4 миллиона документов - 100ГБ под сами копии документов и примерно столько же под индекс. То есть чтобы сделать базу на миллиард документов нужно 250 таких серверов. Но что делать при запросах? Это выходит при каждом запросе весь парк серверов должен опрашиваться? Как оно работает в реальности? :)

Самый интересный SEO-блог (http://alexf.name)
dkameleon
На сайте с 09.12.2005
Offline
386
#1

При выборке, на сколько я знаю, сначала идёт обращение к индексу, который поменьше самих данных ;)

Или, к примеру можно распределить по первой букве по серверам :)

слова на "А" на одном сервере, на "Б" - на другом... и так далее :)

Дизайн интерьера (http://balabukha.com/)
psylosss
На сайте с 23.12.2005
Offline
126
#2

не знаю как это устроено на самом деле... Но в принципе, наверное, можно организовать какое-нибудь отображение всего этого множества серверов на единое информационное пространство.

Веб-разработка. Сложные проекты. Проектирование. Проект-менеджмент. Стартапы.
coredump
На сайте с 21.08.2005
Offline
55
#3

http://www.googleguide.com/google_works.html

Вообще, где-то читал статью (кто-то из гугловцев писал), где довольно подробно расписано, что происходит при выполнении запроса. Не могу сейчас быстро найти.

alexf2000
На сайте с 15.10.2004
Offline
79
#4
psylosss:
наверное, можно организовать какое-нибудь отображение всего этого множества серверов на единое информационное пространство.

Конечно можно, послав на каждый сервер HTTP-запрос.:D При этом "единым пространством" будет страничка с выдачей. Я именно об этом и спрашиваю.

psylosss
На сайте с 23.12.2005
Offline
126
#5
послав на каждый сервер HTTP-запрос.

слишком жестоко... думаю, нужно что-то более низкоуровневое

alexf2000
На сайте с 15.10.2004
Offline
79
#6
dkameleon:
При выборке, на сколько я знаю, сначала идёт обращение к индексу, который поменьше самих данных ;)

Или, к примеру можно распределить по первой букве по серверам :)
слова на "А" на одном сервере, на "Б" - на другом... и так далее :)

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

При разносе индекса по буквам ты подумал как индексатор работать будет? :) Получится, что чтобы разложить 1 страничку в индексы - надо дёрнуть сотню серверов. Думаю врядли так кто-то делает.

D
На сайте с 20.05.2001
Offline
312
#7

Я думаю, что серверы от такой участи спасает кэширование или иерархическая структура.. :)

iexpert
На сайте с 01.09.2005
Offline
184
#8

Структура этого дела такова:

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

И отдается результат.

Насамом деле схема сложнее, я просто описал примитивно.

то есть существуют рулежные сервера существуют обрабатывающие (программно) существуют хранилища данных и хранилища индексов, причем распределенные

Бойтесь ваших желаний, ибо они могут исполниться
snoopckuu
На сайте с 26.02.2006
Offline
34
#9

Внесу ясность, деление на буквы - глупости такого нету.

250 сероверов для миллиарда глупости, лично я засовывал на 1 сервер 83млн документов. Сохранённые копии ужимаются до ~37-45%.

Поиск идёт по нескольким системам векторным и т.д.

запросы на http-сервера конечно не идут, как правило в большой поисковой системе используется своя фалойвая система для сохранения копий одна для индекса - другая, впринципе это можно сравнить как в винде NTFS, FAT32... http-сервер тоже не используется Apache, а свой сервер который работает напрямую с кластером и файловой системой.

Более подробно можно узнать об этом начав ставить nutch в кластер по системе haddop. выглядит это примерно так:

Такой кластер использует поисковая система Google.

Если есть ещё какие то вопросы - задавайте, просто писал в попыхах.

Разработчик поисковых систем и алгоритмов. Я умнее яндекса. Мой синонимайзер. (http://se.o0o.ru)
alexf2000
На сайте с 15.10.2004
Offline
79
#10

Довольно удивительно, как на 1 сервер можно впихнуть 80 миллионов документов... У него размер диска какой? И какой средний размер документа? Если со всеми архивациями он сильно меньше 10-20к, то это явно какой-то другой интернет индексируется. :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий