Вернуться   Форум SAPE.RU > Система SAPE.ru > Пожелания пользователей системы

-->
Ответ
 
Опции темы
Старый 12.12.2009, 20:42   #31
Специалист
 
Регистрация: 27.02.2009
Сообщений: 400
Вес репутации: 201
Grand1234 - просто великолепная личностьGrand1234 - просто великолепная личностьGrand1234 - просто великолепная личностьGrand1234 - просто великолепная личностьGrand1234 - просто великолепная личностьGrand1234 - просто великолепная личностьGrand1234 - просто великолепная личность
По умолчанию

Цитата:
Сообщение от Yappie Посмотреть сообщение
Несколько часов работы программиста? В БД? Вы хоть примерно представляете сколько времени нужно чтобы загнать 177 млн. записей в БД? Я представляю (хотя на 177 млн не представляю, только на 72 млн записей базу делал).
Зависит от типа БД и мощностей сервера.

Сдуру, конечно, можно и ...лоб сломать, можно и миллиард а одну БД загнать. Кто сказал, что загонять все это надо в одну БД? И, потом, загоняется в БД 1 (один) раз, а не каждый день, затем с этой базы (баз) извлекаем результат и заносим в рабочую БД. Что тут профессиональному программисту 1,5 месяца делать, с трудом себе представляю. Размышлять о неправильной реализации разве что. Наверное, такую задачу при желании и годами решать можно, если изначально все делать через... голову.

Я не знаю скорости индексации Яндекса или Гугла, но сильно сомневаюсь, что там 72 млн записей 1,5 месяца в БД заносят. А вы, программер с 20-летним стажем, как думаете?

Может вам к себе применить совет: "Так что не разбрасывайтесь словами о том, о чем представления не имеете."?
__________________
А У МЕНЯ НЕ БЫВАЕТ ERROR'ОВ - надежный и недорогой unmanaged vds-хостинг: VDSPLANET.RU
Grand1234 вне форума   Ответить с цитированием
Старый 12.12.2009, 21:21   #32
Специалист
 
Регистрация: 10.11.2009
Сообщений: 231
Вес репутации: 182
Yappie - как роза среди колючекYappie - как роза среди колючекYappie - как роза среди колючек
По умолчанию

Цитата:
Сообщение от Grand1234 Посмотреть сообщение
Я не знаю скорости индексации Яндекса или Гугла, но сильно сомневаюсь, что там 72 млн записей 1,5 месяца в БД заносят. А вы, программер с 20-летним стажем, как думаете?
Ну давайте про гугл, вопросов нет. Гугл имеет проприетарную технологию BigTable позволяющую распределить таблицы на десятки, сотни, тысячи серверов. И этой технологии НЕТ у других (самое близкое сейчас - это Cassandra, но она не настолько стабильна и имеет несколько узких горлышек).

Гугл производит собственные сервера (да, компоненты чужие, сборка, архитектура - своя), работающие на доработанной под себя Гуглом ОС (основана на линуксе, вроде как, достоверно неизвестно). Гугл имеет дейвайсик, который подключается напрямую к винчестеру и на него записывается предустановленная ОС, готовая вливаться в кластер.

А теперь самое веселенькое - у гугла по оценкам экспертов 450 000 серверов. Вдумайтесь 450 тысяч! Я говорю о том, что я заносил 72 млн в ОДИН сервер - это большая разница. Распараллеленная на сотни серверов такая задача может решилась бы и за часы (после того как были бы потрачены недели на отладку механизма, в которых тоже используется не PHP, кстати, а C++/Java, разработка на которых по оценкам экспертов в 10 раз медленнее происходит) и технологии уровня класса MapReduce, Cascade и т.п. И это при том, что Вы придумаете как сделать что-то, что бы сэмулировало BigTable.

Так что не сравнивайте НИКОГО с Гуглом - там работают супер-мега-эксперты, высшего класса умы.

Яндекс тоже имеет (по разным оценкам) от тысячи серверов и проприетарную платформу для БД. Даже когда только появился Yandex.Server - он мог искать по миллионам документом за миллисекунды, что, в общем-то было неслыханно и даже сравниться не могло с какими-нибудь SQL серверами (за исключением Oracle, которую, скорее всего и использует Sape). Опять же - этих технологий НЕТ у других компаний (не Яндекса и не Гугла), поэтому всем остальным приходится разрабатывать что-то свое для шардинга данных (разбивания их на множества серверов) и на это и уходят дни, недели и т.п. Особенно в условиях наличия небольшого количества железа.

Я могу еще долго объяснять Вам в чем разница между одним (даже очень профессиональным) программером с одним сервером и 17 000 программистов мирового класса с полмиллионом серверов, но думаю любому разумному человеку должно было еще до моего объяснения быть понятно в чем разница.

Сделайте базу хотя бы на 50 млн записей из URL - TEXT и постройте для нее полнотекстовый индекс - тогда мне с Вами будет о чем поговорить. А пока Вы - теоретик.

Да и еще насчет Яндекса. В рунете всего 2 млн доменов .ру - из них большинство спам, который не надо индексировать. В сапе 350 тыс. сайтов. Задача Сапы - почти на том же уровне, что и у Яндекса, только ресурсов (серверных и человеческих) у них на порядок меньше, так что делают что возможно.

Добавлено через 26 минут
И еще немножко пищи для теоретических размышлений. База на 72 млн - это был индекс всех главных страниц зоны .com.

72 млн записей за 43 дня - это 20 страниц в секунду (реально было больше 70 веб страниц в секунду, но несколько раз приходилось начинать заново, обнаруживая такие гиганские сетки, как паркинги доменов, сквоттеров и прочий спам), один раз у меня прямо во время индексации сгорел винчестер и пришлось начинать опять же заново.

И это не считая, что еще и программировать это все надо было. Одна только организация очереди (вы не можете просто так сразу запихнуть 72 млн строк в память - это более 20ГБ информации), распределяющей нагрузку заняла неделю и то умудрялась ломаться, и когда она сломалась - пришлось писать failsafe механизм, чтобы не начинать сначала (поскольку было утрачено состояние - что проиндексировалось, а что - нет).

Потом я обнаружил, что многие очень любят XHTML, что обозначало, что мне пришлось начать заново, заменяя все найденные & на &. И так далее, обработку умлаутов(ā) и дектетирование кодировок добавил - начинай заново.

Вот и размышляйте что я делал 40+ дней... Результат - публикация на TechCrunch(блог с несколькими миллионами подписчиков по счетчику FeedBurner). Эксперты удивлены, что это вообще работает на одной машине.

Я еще долго тут могу размахивать конечностями, меряясь их длиной, но суть не в этом...

Суть в том, что у Сапы - 177 млн страниц(!), которые нужно индексировать несколько раз в день(!). Задача на порядки сложнее... и я восхищаюсь, что они справляются.

Последний раз редактировалось Yappie; 12.12.2009 в 21:25. Причина: Добавлено сообщение
Yappie вне форума   Ответить с цитированием
Старый 12.12.2009, 21:58   #33
Специалист
 
Регистрация: 27.02.2009
Сообщений: 400
Вес репутации: 201
Grand1234 - просто великолепная личностьGrand1234 - просто великолепная личностьGrand1234 - просто великолепная личностьGrand1234 - просто великолепная личностьGrand1234 - просто великолепная личностьGrand1234 - просто великолепная личностьGrand1234 - просто великолепная личность
По умолчанию

Цитата:
Сообщение от Yappie Посмотреть сообщение
Ну давайте про гугл, вопросов нет. Гугл имеет проприетарную технологию BigTable позволяющую распределить таблицы на десятки, сотни, тысячи серверов. И этой технологии НЕТ у других (самое близкое сейчас - это Cassandra, но она не настолько стабильна и имеет несколько узких горлышек).
Технология распределенных БД, вообще говоря, не секрет Гугла-Яндекса. вот немного информации. То, что программист Пупкин ее не знает, не говорит о том, что нет программиста Васькина, который на этих делах собаку съел. Можно спросить у Гугла подробности.

Частный случай - распределение данных по БД по какому-нибудь признаку, например по первой букве домена, по длине домена или еще по какому-то признаку - по контрольной сумме, к примеру.

Что касается серверов: 20% с оборота достаточно, чтобы приобрести необходимое количество серверов. Сапа вообще не благотворительная организация, а коммерческая фирма с довольно немалыми оборотами. Hint: всех их вовсе не обязательно держать в датацентре, тем более в одном.

Может возникнуть вопрос: зачем коммерческой фирме напрягаться по поводу сабжа? Отвечаю: не редки случаи, когда работающие страницы вылетают в error. Чем это плохо для Сапе? Ссылки как бы не стоят, но оптимизатор за них не платит, вебмастер денег не получает, и Сапа не получает свои 20%.

Еще раз повторюсь: что Вы или я никогда не делали таких БД, не говорит о том, что таких специалистов нет в природе. Например, я ни раз не физик-ядерщик, но не стану утверждать, что таковых в мире не существует. А вот Вы отчего-то спорите о вкусе устриц, которых не едали. Ну попали вы на 45 суток редактирования БД, так это скорее говорит о вашей квалификации и/или отсутствии надлежащего железа, чем о том, что такими технологиями владеют лишь программисты "особого тибетского посвящения".

Есть 2 подхода к решению любой задачи: а)"фигли думать, трясти надо" б)вначале хорошо подумать и прикинуть потребную мощность серверов, и только потом кодить. В простейшем случае сойдет и подход а), а вот в случаях миллионов полей, да еще и текстовых, в БД без второго подхода не обойтись. Или ждать 45 дней.
__________________
А У МЕНЯ НЕ БЫВАЕТ ERROR'ОВ - надежный и недорогой unmanaged vds-хостинг: VDSPLANET.RU
Grand1234 вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Робот Сапы и Crawl-delay Sea Вопросы по работе системы 10 13.02.2012 12:17


Часовой пояс GMT +3, время: 11:34.