что-то было не так
Mar. 12th, 2009 02:25 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
В оркуте юзерский спрос был волнами: первая волна - утро Бразилии, до обеда. Потом спад. Потом после обеда, волна чуть повыше (потому что присоединились те, кто дрых до обеда). К вечеру волна спадает.
Кроме того, были изменения в течение недели: в понедельник уровень ниже всего; затем больше, больше... и в пятницу после обеда - самая высокая волна. Ну типа насчёт выходных утрясают.
А ресурсы в оркуте распределены под завязку. И вот каждую пятницу после обеда дежурный по пейджеру получает звонки, раз в пять минут: сервер перегружен, сервер перегружен! Можно предсказать за месяц, когда сервер будет перегружен.
Я ходил спрашивал, ребята, нельзя в пятницу добавить с десяток серверов-то? Или сделать это погибче, ну типа приоритеты там, запасные сервера... ведь не АТС же, компьютеры, линухи - пока не занят оркутом, гоняет мапредьюсы, а как занят... да какие по пятницам мапредьюсы, народ же отдыхает, к TGIF готовится.
Но нет. Жизнь сурова, ресурсы ограничены, пиши программу так, чтоб она была на грани, но снизу.
То есть, в принципе-то проблемы особой в софте оркута вообще не было. Кроме как баги мелкие пофиксить, фичи новые добавить да с хакерами бороться. А с хакерами бороться нужны же ресурсы. Я нарисовал регексп, покрывающий все хакерские трюки в scrapbook. Этот регексп выкинули, да ещё со словами "неопытный инженер" (ну это гугл, там всякий сельский идиот считает себя умнее усех, т.к. он умеет на распределённой системе вычислять медиану) - неопытность заключалась в том, что этот регексп требует небольшое но количество дополнительных серверных ресурсов. И чё? А ничё, ресурсы добавлять нельзя, лучше пусть хакают, это не так часто случается. Потом, правда, абьюз тим бьётся потом круглые сутки, пишут мапредьюсы, которые сутками работают чистят базу - но это как бы уже не наше дело. Не барское.
Конечно, ресурсы добавляются. Потому что каждую неделю несколько миллионов новых юзеров приходит. Тренд положительный. Но нельзя же выделить столько ресурсов чтобы пейджер не пищал! Тогда же служба мёдом покажется.
Я что хочу сказать... что сложность работы гугловского инженера в-основном, имхо, обусловлена наличием искусственных и бессмысленных ограничений. Дескать, а ну-ка мы попробуем решить такую-то задачу в условиях, приближенных к боевым с другой стороны. А на хера? А потому что мы ж крутые, и задачи у нас все NP-полные, другие задачи нас не интересуют.
Это в среднем, конечно (см Пирамиду Лебедева).
Просто проблема сложности в разработке программного обеспечения большей частью состоит в желании подвыпендриться в условиях, когда ума и фантазии не хватает на действительно серьёзные задачи.
Кроме того, были изменения в течение недели: в понедельник уровень ниже всего; затем больше, больше... и в пятницу после обеда - самая высокая волна. Ну типа насчёт выходных утрясают.
А ресурсы в оркуте распределены под завязку. И вот каждую пятницу после обеда дежурный по пейджеру получает звонки, раз в пять минут: сервер перегружен, сервер перегружен! Можно предсказать за месяц, когда сервер будет перегружен.
Я ходил спрашивал, ребята, нельзя в пятницу добавить с десяток серверов-то? Или сделать это погибче, ну типа приоритеты там, запасные сервера... ведь не АТС же, компьютеры, линухи - пока не занят оркутом, гоняет мапредьюсы, а как занят... да какие по пятницам мапредьюсы, народ же отдыхает, к TGIF готовится.
Но нет. Жизнь сурова, ресурсы ограничены, пиши программу так, чтоб она была на грани, но снизу.
То есть, в принципе-то проблемы особой в софте оркута вообще не было. Кроме как баги мелкие пофиксить, фичи новые добавить да с хакерами бороться. А с хакерами бороться нужны же ресурсы. Я нарисовал регексп, покрывающий все хакерские трюки в scrapbook. Этот регексп выкинули, да ещё со словами "неопытный инженер" (ну это гугл, там всякий сельский идиот считает себя умнее усех, т.к. он умеет на распределённой системе вычислять медиану) - неопытность заключалась в том, что этот регексп требует небольшое но количество дополнительных серверных ресурсов. И чё? А ничё, ресурсы добавлять нельзя, лучше пусть хакают, это не так часто случается. Потом, правда, абьюз тим бьётся потом круглые сутки, пишут мапредьюсы, которые сутками работают чистят базу - но это как бы уже не наше дело. Не барское.
Конечно, ресурсы добавляются. Потому что каждую неделю несколько миллионов новых юзеров приходит. Тренд положительный. Но нельзя же выделить столько ресурсов чтобы пейджер не пищал! Тогда же служба мёдом покажется.
Я что хочу сказать... что сложность работы гугловского инженера в-основном, имхо, обусловлена наличием искусственных и бессмысленных ограничений. Дескать, а ну-ка мы попробуем решить такую-то задачу в условиях, приближенных к боевым с другой стороны. А на хера? А потому что мы ж крутые, и задачи у нас все NP-полные, другие задачи нас не интересуют.
Это в среднем, конечно (см Пирамиду Лебедева).
Просто проблема сложности в разработке программного обеспечения большей частью состоит в желании подвыпендриться в условиях, когда ума и фантазии не хватает на действительно серьёзные задачи.
Re: а ведь энтерпрайз линукс серверы отнюдь не дешевы
Date: 2009-03-14 05:09 am (UTC)Интересуют конечно только данные - с ними всегда возни больше всего
Насколько я могу судить по личному опыту во всей этой истории наиболее неприятное место friendfeed - который мы называем activity log или лента входящих событий - его надо либо очень быстро в параллель собрать из разных источников, либо аккуратно подготовить и положить рядом к данными юзера в удобном для последовательного чтения виде, либо комбинация этих вариантов. Остальное просто не масштабируется по железкам линейно.
Если позволите, ещё вопрос. Вот мне не очень понятно роль бекенда на Си. Это "кеширующий" интерфейс к данным, из которого java запрашивает что-то, что не получится достать быстро из bigtable (быстрый сервис, который отдает из памяти, и наполняется асинхронно или по запросу данными, которые есть на диске)? Или это просто такое же приложение, которое просто делает часть работы над данными, потому что так быстрее - а java уже лезет к данным "напрямую"? или и то, и другое?
Re: а ведь энтерпрайз линукс серверы отнюдь не дешевы
Date: 2009-03-14 06:00 am (UTC)Бакенд в оркуте - серьёзная вещь, делает иной раз довольно тяжелые вычисления; почему оно на си - по историческим причинам (русские писали). С другой стороны, если взять имидж-сервер, то он совершенно элементарен, выполняет пару rpc, ну и http на вытаскивание картинки; вся логика состоит в том, чтобы проверить реквест (не скриптом ли он слеплен часом), прочитать ячейку из бигтейбла и отправить контент по назначению. И что он на си, роли не играет, код достаточно примитивен. Я люблю такие программы - минималистические. Писал один умный грузин... правда, по-грузински он только "гамарджоба" знает.