Моё скромное место
Впечатления от highload++ 2009

К сожалению, как и в прошлый раз, не смог быть на всех докладах. Но все-таки несколько докладов с большим интересом я посетил.

Мой мир: граф связей

В первую очередь понравился доклад от Моего Мира: mail.ru —- отличное кастомное решение. Там реально есть чем гордиться. Только сейчас стало интересно, а сколько людей эту штуку делало. Краткое содержание: надо хранить граф связей социальной сети. Граф (а) большой, (б) к нему нужен быстрый доступ и (в) надежность данных не на последнем месте. Что они сделали: всё храниться в памяти, на каждое изменение пишут запись в write-ahead-log. Когда WAL становиться очень большим, сервер форкается, потомок начинает писать базу: он делает это последовательно, то есть практически со скорость диска. Очень красивое применение copy-on-write механизма.

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

Дальше интереснее: нужно считать вещи типа “друзья моих друзей”. Но одной шестой части графа такие вещи быстро не сделаешь: разные друзья будут на разных шардах. Изящный финт ушами: репликация легко проходит передачей WAL на реплики. В том числе на реплики, на которых нет дополнительной информации, НО на них храниться весь граф целиком.

Мне стало интересно, как граф сделан у Моего Круга.

Однозначно лучший доклад из тех, на которых я присутствовал.

Управление виртуальной памятью в Linux/x86-64

Не успел на начало доклада. Интересна общая информация, но очень понравилась проблема: считать статистику для десяти гигабитного канала. Модуль для ядра Linux, который использует MMU для построения radix-tree. К сожалению, моих знаний не хватает даже задать уточняющие вопросы, но обрабатывать 10 Gb в real-time просто так, понятное дело, не сделаешь.

Tim Bunce —- два доклада про профилирование для Perl’а

Достаточно интересно. Я, после некоторых случаев, со скепсисом отношусь к профилированию как к способу сделать быстрый софт. После докладов Тим показал мне интересный пример, который подтверждает эту точку зрения: сколько пузырьковую сортировку не профилируй, а quick-sort не обгонишь.

Но профилирование помогает с локальной оптимизацией. И его можно использовать если мы не укладываемся в проценты/десятки процентов. Плюс как контроль за собой, что не посадил где-нибудь глупый баг. В общем в следующий раз все-таки не буду отказываться от профилирования.

Еще очень понравилось профилирование на уровне statement’ов. Вот от такого профилировщика я бы не отказался.

Плюс посмотреть на DTrace.

Зачем учить алгоритмы

Отличная подача материала. Не пожалел, что сходил, хотя и толку особого нет.

По верхам

Про Оверсан интересно, наверное, в основном хостерам, но все равно интересно.

Twisted —- доклад в расчете на новичков, но “живой” и хороший, а вот следующий доклад меня разочаровал. Такая богатая тема и так её плохо раскрыть.

Выступление про nginx удивило. Пять минут общих слов —- совсем не то, что я хотел услышать от этого доклада. При этом Кирилл мог рассказать очень много.

Блиц-доклады

Каппа отжигал. Лучший блиц.

Андрей Шитов на втором месте. Остальные были мимо сферы моих интересов.

Я свой доклад, похоже, провалил.