6-7 октября в Москве пройдет конференция HighLoad++. На этой конференции я представлю доклад на тему «Web, кеширование и memcached» (текущая программа конференции).
Краткие тезисы доклада привожу ниже:
Цель доклада – рассказать о проблемах кеширования в распределенных высоконагруженных проектах и о возможных путях решения этой проблемы. Предполагаемый уровень подготовки аудитории – начинающий++.
UPD: доклад будет во второй день, 7 октября, 17:20-18:10, второй зал.
Современный высоконагруженный проект может использовать десятки гигабайт распределенной памяти, используемой под кеш, организованной в виде кластера memcached-серверов. Зачем нужен memcached? Как работать с таким хранилищем, как распределить ключи по элементам кластера? Как назвать ключ, соответствующий кешу? Как обеспечить атомарность операций, “блокировки”?
Как эффективно использовать такое хранилище? Как исключить возможность одновременного построения “тяжелых” кешей разными мордами? Как сбросить одновременно группу кешей? Как отлаживать (собирать статистику) о кешировании? Как работает slab-аллокатор? Для чего еще может быть полезен memcached в веб-проекте?
Отличный пост!
Урааа
Отличный Урааа пост!
Спасибо
ну что, где обещанная выкладка доклада?;) спасибо за доклад – по существу и внятно. а будет ли весь текст доклада или только тезисы?
На докладе вы упоминали о подсчёте количества онлайнеров с помощью нескольких ключей. Скажите пожалуйста:
1) А чем это лучьше чем просто использовать 1ключ и его всё время инкрементировать?
2) И самое главное – как вы определяете что этот вот конкретный реквест заслуживает быть подсчитанным/счётчик будет инкрементирован? Кладёте куку что-то, а потом проверяете? Создаёте по одному ключу на каждого пользователя и смотрите – а есть ли ключ и если ключа нет – то создаёте и инкрементируете?
Видео, презентация и краткие тезисы в следующем посте, скоро будет текст.
Насчет онлайнеров – один ключ будет всегда увеличиваться? Тогда число онлайнеров будет вечно расти. Если он будет иногда «отмирать», то число онлайнеров будет падать в 0 в какой-то момент. Минимальный вариант для той схемы – это два ключа (один текущий, другой показывается). В примере я взял 6 ключей, чтобы сделать их изменение более плавными.
ЭЭЭврика как раз то что мне нужно – всё в одно месте!!! Отличный блог!!! Прочитал все статьи о memcached и нашёл ответы практически на все вопросы, которые не давали мне спокойно спать… Сайт в закладки – однозначно…