Как быстро найти то, что никто не терял
Яйцо, курица — уже не важно

Вечер пятницы. Яйцеголовый сидит у себя дома и немного грустит — никто не пригласил его на вечеринку.
Как и все яйцеголовые, он сразу решил найти причину этого и начал с самих основ своего происхождения. Он зашел в интернет и написал в своем любимом поисковике —

Он — увлекающаяся личность, поэтому вместо того, чтобы читать о проблеме, он обращает внимание на одну деталь —

В 2008 году Яйцеголовый прочитал, что в Интернете больше триллиона уникальных страниц. Значит сейчас наверняка уже все 10 триллионов, наверное!
Как в этом можно что-то найти за четверть секунды?
Именно поэтому Яйцеголового не пригласили на вечеринку — вместо того, чтобы разобраться в себе, он решил разобраться в поиске.
Яйцо, курица — уже не важно
10 000 000 000 000 — насколько это много?
Вот у вас есть очень хороший компьютер и он в секунду может просмотреть миллион страниц (у вас такого нет, но допустим есть). Знаете, сколько времени ему понадобится, чтобы просканировать 10 триллионов страниц?
Почти 4 месяца. То есть, поисковая система работает намного быстрее, чем ваш воображаемый крутой компьютер.
В новогоднюю ночь спрашиваете, 1 мая результаты поиска ждут вас. Все самое свежее из интернета.
Надеюсь, Яйцеголовый наткнется на эту статью до того, как прочитает кучу скучных штук про spiders, crawlers, PageRank и все в таком духе.
Как это работает
Решение, которое нашли компьютерщики, очень хорошо описывает как компьютеры, так и образ мысли компьютерщиков. Узнав, как думают компьютерщики, вы сможете лучше разобраться в них и надрать им зад в случае чего. Впрочем, последнее никогда и не было сложной задачей.
Итак, первое что нам пришло в голову и что обрабатывает запросы по 4 месяца. Компьютерщики называют такие решения «решение в лоб».

«Чтобы было быстрее», — думают компьютерщики, — «нам надо как-то сохранить весь Интернет на своем компьютере». Но перед ними встают две проблемы: первая очень серьезная, а вторая — так себе:
- Если скачивать весь интернет, то неизбежно нечаянно скачаешь детскую порнографию, а значит сервер могут конфисковать
- Нужно очень много места, в один компьютер весь интернет не поместится
Тогда компьютерщики надевают свои растянутые свитера, лохматят волосы, отращивают усы и идут на совещание. Где решают, что надо купить еще компьютеров.
Мало компьютеров — мало проблем
Не все проблемы можно решить количеством. Например, наняв 9 женщин вы не заставите их родить одного ребенка за 1 месяц.
С компьютерами полегче. Вот что придумывает главный компьютерщик по дороге на работу одним погожим апрельским утром:
- Разделить весь интернет на миллион частей
- Купить миллион компьютеров, чтобы каждый отвечал за свою часть, а о других ничего не знал
- Когда нам приходит запрос на поиск, передавать этот запрос миллиону наших компьютеров одновременно
- Обработать ответы от них можно очень быстро и показать результаты
Тогда это будет выглядеть так:

Значит на запрос Яйцеголового можно ответить за 10 секунд**! Это не так уж быстро, но по крайней мере не надо ждать 4 месяца.
Это опять работает пресловутый принцип «разделяй и властвуй», которым пропитаны все растянутые свитеры в мире. Другими словами, главный компьютерщик придумал вот что:

И таким образом компьютерщики создают распределенные системы.
Верните мои деньги! 10 секунд ОК, но обещали четверть секунды!
Дальнейшая оптимизация поисковой системы связана со всякими улучшениями. Не все из них интересные. Вот некоторые из них: нахождение и удаление дубликатов, локальный поиск, улучшение алгоритмов индексирования документов, кеширование результатов поиска.
Кроме того, надо помнить о природе, чтобы ваши серверы не выделяли много тепла и не поглощали много электричества. Надо думать об интернете, чтобы не наносить вред сайтам, слишком часто посылая на них запросы.
Но даже все, что я говорил до этого, не так просто. Как, например, разделить интернет на миллион частей? Он же не торт.
Можно, например, чтобы один сервер искал по страницам с кошками, другой — с собаками, третий — с Леди Гагой. Но ведь интернет наполовину состоит из кошек и Леди Гаги, поэтому такое разбиение не подходит — все о кошках на один сервер не поместится.

— Веселый способ распределения интернета по серверам. Других преимуществ у него нет.
Или думаете скачивание интернета — простая операция? Вот скачаете вы главную страницу Look At Me. Так завтра на ней уже новые посты будут. Значит надо скачивать интернет постоянно!
Но все это не очень важно. Понимание принципа разделения и властвования — уже большое преимущество в борьбе с компьютерщиками.
Компьютерщики масштабируются, а вы?
Допустим, в семье компьютерщиков два ребенка. Когда мама и папа уезжают в отпуск, они отдают одного ребенка одной бабушке, а другого — другой. «Да, эта схема масштабируется», — говорят они, проходя паспортный контроль на другом континенте.
А вы масштабируетесь? Есть идеи, как разделять и властвовать?
* — изображение для поста Associated Press
** —
после первой минуты разговора без учета того факта, что мы скачали интернет — это на несколько порядков может увеличить скорость поиска
*** — первой была курица
See you!




Комментарии к посту «Как быстро найти то, что никто не терял» 38
Спасибо, как всегда интересно написано!
подача завораживает
The Ultimate Question of Life, the Universe, and Everything
отличненько)
информативно и с юмором
автор молодец)
и тут во всю эту красоту, выбив дверь ногой, врываются сеошники
цмацма, аж пальчики оближешь от ваших постов.
Когда я дозванивался на BBS через модем в 4200 бод, то там было все просто - либо я дозвонился (потому что компьютер, к которому я звоню включен), либо нет.
Как разделить 10-многонулей сайтов, чтобы ниче не грелось я не знаю. Но предлагаю просто сбавить обороты — 3-4 года назад скорость 1 мбит была пределом мечтаний, на 512 кб все сидели и не пикали. Когда я после 2 лет нахождения в сети на безлимитной скорости 5 мб по опр. причинам попал в страну, где больше лимитированного 1 мб люди и не знали меня страшно ломало. Страшно! Но сейчас ничего, привык.
Так вот может мы все так и привыкнем к тому, что не все должно летать со скоростью мысли, кроме как наши мысли? Ну или изобрести квази-компьютер, который будет только остывать от количества посланных запросов, м?
кстати, а почему Земля перевернута? - вы из австралии пишете? Крестики не могут выиграть, потому что они сделали на 2 хода больше, чем нолики.
Ученые привели еще одно утверждение, в теорию о первоначальности яйца и курицы — курица не могла терпеть и не рожать яйко в течении сотен тыщ лет, чтобы в ней образовался тот самый подходящий элемент скорлупы. То есть, либо яйцо в эволюционной форме еще не идеально и продолжает формироваться в курице-терпиле. Либо вообще надо напрочь забыть о первородности элементов ибо Пц!
а по моему крестики выиграли законно (при условии, что крестики ходят первые)
ну если крестики первые, то да, тогда законно. По-моему ;Р
Ox, загнул!))) еще ученые говоря, что в яйцах есть флора! Стерильность ( в данном случае развития не имеет. Почему расходятся хромосомы, не уж-то Земное притяжение работает))))))
Шикарные посты, но я иногда просто не могу понять, в чём заключается основная мысль.
неужели так трудно?
вкусно очень-очень, только я опять не уловила смысла статьи. вам бы рассказы писать чтоли, истории выдумывать... а то который раз поражаюсь, как можно так радостно писать ни о чем
Эй! Это интернет, так между прочим новый мир устроен.
Может быть я опять перевдохновился, отвлекся, и это может быть моей виной. Но это не «ни о чем».
Это о том, как работает интернет, и о людях, которые его конструируют. Вот так, я принимаю удар на себя :-) А ценностей работы компьютерных ученых и архитекторов прошу не преуменьшать.
вот про масштабирование вообще не поняла
мало что поняла, но блин, о5 понравилось!))))
наверное Вы нашли свой гений)
например мне - средне-статистической 17-летней девушке - интересны ваши посты на любую тему, и я всегда по возможности буду их читать)
даже если не буду ничего понимать) главное, чтобы не закончились изюминки, и всегда был виноград чтобы нсушить новых)
вы прям дали определение половине местной фауны.
хотя про Шредингера я поняла)
Да, интернет уже не торт.
Ну... эта статья впечатлила меньше, чем предыдущие ( а предыдущие очень впечатлили, а некоторые очень-очень).
мне одному не понравилось?
Так как Гугл работает, кто-то понял?
кто зашёл на goondex.net ?)
я :D думал новый такой поисковик, ищет и там и там :D
ваш яйцеголовый герой меня так умиляет)
простой смертный такие посты не напишет)
а есть еще pagerank)
так это, итог то не подвели :)
как же в итоге работают поисковые системы
"очевидно. неверноятно"
очередное браво! вам стоит подумать о написании энциклопедии всяких интересностей. хотя признаюсь честно - сам материал не так интересен, сколь подача.
ну я прям вас цитирую периодически...
на самом неожиданном месте всё закончилось. масштабирование - ок, но вы же сами пишете, что это полумера. ну и не такое уж это грандиозное изобретение, чтобы до него невозможно было додуматься самостоятельно. надеюсь, будет продолжение...
Какая прелесть!Для большинства хватило бы кучи "изюминок" и шуточек - и можно даже не наполнять пост смыслом.
:/
Я не разбираюсь в математике, физике, ит - но прочитав пару раз по крайней мере могу уловить смысл.
Включайте голову иногда
да, то есть в остальное время её и дома можно на сохранение оставить.
написано отлично!спасибо))
статьи 42! легко масштабируемы!
каждому посетителю лукэтми дать по абзацу, и все всё поймут
так всетаки яйцо или курица?
взял линк на вашу сатью как пример для самых маленьких к MapReduce докладу)