Juan-Carlos Gandhi (
juan_gandhi) wrote2009-03-12 02:25 pm
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
что-то было не так
В оркуте юзерский спрос был волнами: первая волна - утро Бразилии, до обеда. Потом спад. Потом после обеда, волна чуть повыше (потому что присоединились те, кто дрых до обеда). К вечеру волна спадает.
Кроме того, были изменения в течение недели: в понедельник уровень ниже всего; затем больше, больше... и в пятницу после обеда - самая высокая волна. Ну типа насчёт выходных утрясают.
А ресурсы в оркуте распределены под завязку. И вот каждую пятницу после обеда дежурный по пейджеру получает звонки, раз в пять минут: сервер перегружен, сервер перегружен! Можно предсказать за месяц, когда сервер будет перегружен.
Я ходил спрашивал, ребята, нельзя в пятницу добавить с десяток серверов-то? Или сделать это погибче, ну типа приоритеты там, запасные сервера... ведь не АТС же, компьютеры, линухи - пока не занят оркутом, гоняет мапредьюсы, а как занят... да какие по пятницам мапредьюсы, народ же отдыхает, к TGIF готовится.
Но нет. Жизнь сурова, ресурсы ограничены, пиши программу так, чтоб она была на грани, но снизу.
То есть, в принципе-то проблемы особой в софте оркута вообще не было. Кроме как баги мелкие пофиксить, фичи новые добавить да с хакерами бороться. А с хакерами бороться нужны же ресурсы. Я нарисовал регексп, покрывающий все хакерские трюки в scrapbook. Этот регексп выкинули, да ещё со словами "неопытный инженер" (ну это гугл, там всякий сельский идиот считает себя умнее усех, т.к. он умеет на распределённой системе вычислять медиану) - неопытность заключалась в том, что этот регексп требует небольшое но количество дополнительных серверных ресурсов. И чё? А ничё, ресурсы добавлять нельзя, лучше пусть хакают, это не так часто случается. Потом, правда, абьюз тим бьётся потом круглые сутки, пишут мапредьюсы, которые сутками работают чистят базу - но это как бы уже не наше дело. Не барское.
Конечно, ресурсы добавляются. Потому что каждую неделю несколько миллионов новых юзеров приходит. Тренд положительный. Но нельзя же выделить столько ресурсов чтобы пейджер не пищал! Тогда же служба мёдом покажется.
Я что хочу сказать... что сложность работы гугловского инженера в-основном, имхо, обусловлена наличием искусственных и бессмысленных ограничений. Дескать, а ну-ка мы попробуем решить такую-то задачу в условиях, приближенных к боевым с другой стороны. А на хера? А потому что мы ж крутые, и задачи у нас все NP-полные, другие задачи нас не интересуют.
Это в среднем, конечно (см Пирамиду Лебедева).
Просто проблема сложности в разработке программного обеспечения большей частью состоит в желании подвыпендриться в условиях, когда ума и фантазии не хватает на действительно серьёзные задачи.
Кроме того, были изменения в течение недели: в понедельник уровень ниже всего; затем больше, больше... и в пятницу после обеда - самая высокая волна. Ну типа насчёт выходных утрясают.
А ресурсы в оркуте распределены под завязку. И вот каждую пятницу после обеда дежурный по пейджеру получает звонки, раз в пять минут: сервер перегружен, сервер перегружен! Можно предсказать за месяц, когда сервер будет перегружен.
Я ходил спрашивал, ребята, нельзя в пятницу добавить с десяток серверов-то? Или сделать это погибче, ну типа приоритеты там, запасные сервера... ведь не АТС же, компьютеры, линухи - пока не занят оркутом, гоняет мапредьюсы, а как занят... да какие по пятницам мапредьюсы, народ же отдыхает, к TGIF готовится.
Но нет. Жизнь сурова, ресурсы ограничены, пиши программу так, чтоб она была на грани, но снизу.
То есть, в принципе-то проблемы особой в софте оркута вообще не было. Кроме как баги мелкие пофиксить, фичи новые добавить да с хакерами бороться. А с хакерами бороться нужны же ресурсы. Я нарисовал регексп, покрывающий все хакерские трюки в scrapbook. Этот регексп выкинули, да ещё со словами "неопытный инженер" (ну это гугл, там всякий сельский идиот считает себя умнее усех, т.к. он умеет на распределённой системе вычислять медиану) - неопытность заключалась в том, что этот регексп требует небольшое но количество дополнительных серверных ресурсов. И чё? А ничё, ресурсы добавлять нельзя, лучше пусть хакают, это не так часто случается. Потом, правда, абьюз тим бьётся потом круглые сутки, пишут мапредьюсы, которые сутками работают чистят базу - но это как бы уже не наше дело. Не барское.
Конечно, ресурсы добавляются. Потому что каждую неделю несколько миллионов новых юзеров приходит. Тренд положительный. Но нельзя же выделить столько ресурсов чтобы пейджер не пищал! Тогда же служба мёдом покажется.
Я что хочу сказать... что сложность работы гугловского инженера в-основном, имхо, обусловлена наличием искусственных и бессмысленных ограничений. Дескать, а ну-ка мы попробуем решить такую-то задачу в условиях, приближенных к боевым с другой стороны. А на хера? А потому что мы ж крутые, и задачи у нас все NP-полные, другие задачи нас не интересуют.
Это в среднем, конечно (см Пирамиду Лебедева).
Просто проблема сложности в разработке программного обеспечения большей частью состоит в желании подвыпендриться в условиях, когда ума и фантазии не хватает на действительно серьёзные задачи.
no subject
no subject
no subject
no subject
a так, прикольно читать подобное про гугл. в индустрии истории "про то как в гугле" рассказываются нердами a-la Wired с восторженным придыханием.
а оно - вон, как везде
no subject
А что было? А была постоянная борьба за ресурсы. Всё напряжение ума расходовалось на попытки а) перекрыть кислород тем, кто ниже в трофический цепи, б) выцарапать побольше, побольше у тех, кто выше в трофической цепи.
Пикантность придаёт то, что половина играющих не понимает правил, и недоумевает. Ну примерно как
no subject
Я я то думаю, откуда у тебя такие глубокие познания в теме!
no subject
no subject
Да впрочем, всё это в прошлом. Теперь все претензии к Родриго Дамазио (он, кстати, и по-русски может).
no subject
а ведь энтерпрайз линукс серверы отнюдь не дешевы
там тыщ двадцать отдай не греши.
да еще и немеряно за сторедж отдели.
а вы оптимизируйте код-то, оптимизируйте. на то вы и учОные. а как же. вот
регэксп ему дай, как же. а слабо Оркутовский движок запрофайлить на ходу в продакшне, а? или там на глазок найти левый сиквелы и полечить, потюнить.
вы заходите - у нас еще мноХо советов.
Re: а ведь энтерпрайз линукс серверы отнюдь не дешевы
no subject
- процент доступности ресурсов;
- эффективность кода;
- нервно-психическое напряжение разработчиков;
- количество нагнанного народу
То, наверное, можно составить интересную систему уравнений, вроде Максвелла. С демонами.
Я что ещё хочу сказать: я верю в глобальную алгоритмическую оптимизацию, когда она возможна, но совершенно не верю в выдавливание перформенса в режиме "ну джавочка, ну ещё капельку". Это стремление к выдавливанию, как и вообще попытки занять 99% серверов - всё это того же рода занятия что и пресловутая преждевременная оптимизация.
no subject
Re: а ведь энтерпрайз линукс серверы отнюдь не дешевы
Re: а ведь энтерпрайз линукс серверы отнюдь не дешевы
А в Маунтин Вью ты типа должен равняться на Великих - и помалкивать.
Про Великих я отдельно расскажу. Как они предпринимают всё необходимое, чтобы никто и близко не смел.
Re: а ведь энтерпрайз линукс серверы отнюдь не дешевы
no subject
no subject
no subject
Re: а ведь энтерпрайз линукс серверы отнюдь не дешевы
Re: а ведь энтерпрайз линукс серверы отнюдь не дешевы
no subject
-- Donald Knuth
Re: а ведь энтерпрайз линукс серверы отнюдь не дешевы
бакенд (си) поддерживает такие штуки как friendfeed, списки друзей, scraps, image serving (разные сервера опять же)
middle tier - джава, clearsilver
на клиенте немножко аджакса и самопального джаваскрипта
Вот и вся архитектура; веб сервера все - стандартный гугловский код.
Теперь это... никаких сессий. authentication via gaia - как в джимейле, ну и кука дешифруется. Так что юзер каждый раз попадает на другой сервер... кешировать практически нечего, если не учитывать что в данный конкретный момент на вебе, наверное, проценты от всего юзершипа.
no subject
no subject
Бывает надо?
no subject
no subject
no subject
Re: а ведь энтерпрайз линукс серверы отнюдь не дешевы
Интересуют конечно только данные - с ними всегда возни больше всего
Насколько я могу судить по личному опыту во всей этой истории наиболее неприятное место friendfeed - который мы называем activity log или лента входящих событий - его надо либо очень быстро в параллель собрать из разных источников, либо аккуратно подготовить и положить рядом к данными юзера в удобном для последовательного чтения виде, либо комбинация этих вариантов. Остальное просто не масштабируется по железкам линейно.
Если позволите, ещё вопрос. Вот мне не очень понятно роль бекенда на Си. Это "кеширующий" интерфейс к данным, из которого java запрашивает что-то, что не получится достать быстро из bigtable (быстрый сервис, который отдает из памяти, и наполняется асинхронно или по запросу данными, которые есть на диске)? Или это просто такое же приложение, которое просто делает часть работы над данными, потому что так быстрее - а java уже лезет к данным "напрямую"? или и то, и другое?
Re: а ведь энтерпрайз линукс серверы отнюдь не дешевы
Бакенд в оркуте - серьёзная вещь, делает иной раз довольно тяжелые вычисления; почему оно на си - по историческим причинам (русские писали). С другой стороны, если взять имидж-сервер, то он совершенно элементарен, выполняет пару rpc, ну и http на вытаскивание картинки; вся логика состоит в том, чтобы проверить реквест (не скриптом ли он слеплен часом), прочитать ячейку из бигтейбла и отправить контент по назначению. И что он на си, роли не играет, код достаточно примитивен. Я люблю такие программы - минималистические. Писал один умный грузин... правда, по-грузински он только "гамарджоба" знает.
Другие о том же
Re: Другие о том же
Re: а ведь энтерпрайз линукс серверы отнюдь не дешевы
Я знаю одну версию, но хотелось бы сравнить
no subject