nginx как основа для творчества

Nickolay V. Krylov nk at antenne.org.ru
Mon Feb 4 11:32:24 MSK 2008


Здравствуйте, nginx-ru.

На многих проектах требуются кэширующие решения с особой,
настраиваемой функциональностью.

Примеры:
1) Хранение сессий, с записью в базу после таймаута.

На сервисе форумов потребовалось при каждом запросе обновлять данные
сессии, а именно - идентификатор страницы (позволяет узнать, где
"находится" пользователь в данный момент).
Через настраиваемый промежуток времени неактивности обращений к
сессии, пользователь должен разлогинится, идет запись в базу времени его
пребывания.

2) Различные write-through кэши

При первом запросе к объекту данных, он загружается из базы,
после - модифицируется при каждом запросе, регулярно с частотой
настраиваемого интервала происходит обработка (чаще всего агрегаты)
накопленных изменений и сброс в постоянное хранилище.

2.а) Поиск по многим ключам, и поиск вообще

При старте на основе данных из базы, в памяти строится кэш
в удобном, определенном спецификой задачи виде, модифицируется,
периодически сбрасывается в базу.

Думаю примеров достаточно:)

Реализация подобных вещей предполагается стандартная - процесс-демон,
с сокетным, а если быть точнее - TCP/UDP интерфейсом.

Внимательно смотрю в сторону nginx как основы.
Почему nginx, а не, скажем, memcached или mcache?

Удобная работа с конфигурацией,
Готовый механизм логов,
Механизм управления процессами,
Наличие реализованных алгоритмов деревьев, управления памятью,
Продуманная модульная структура,
Поддержка различных типов событий на сокетах, (с обходом багов)
Русскоязычный автор и активное сообщество

На данный момент самый главный вопрос:
Правильно ли я понимаю, что выполнение длительной операции на БД
из модуля, будет блокировать воркер?

А вообще, любые предложения, критика для вышеописанных задач
приветствуется!

-- 
С уважением,
 Nickolay                          mailto:nk at antenne.org.ru






More information about the nginx-ru mailing list