On 03.10.2006 11:59, Михаил Монашёв wrote:
>
> После прочтения
> http://www.mysqlperformanceblog.com/2006/08/09/cache-performance-comparison/
> захотелось реализовать кэширование данных в шаред-меме. Т.е. что-то
> вроде memcached, только для шаред-мема и со своим алгоритмом очистки
Интересно, каким боком это относится к nginx-ru@?
> кэша. Проблема в том, что никак не могу понять как правильнее
> сохранять кэшируемые данные: выделить один большой блок данных в
> шаред-меме и в нём всё хранить (написав свою реализацию хэша и
> алокатором), или для каждой пары ключ:значение выделять новый блок и
> хранить всё в нём?
0. Использовать memcached. Самый быстрый и результативный с точки зрения
разработки вариант. В 1.2.0 появилось несколько улучшений (в т.ч.
listening на unix socket). Вкупе с правильно используемым
X-Accel-Redirect, memcached даёт прекрасные результаты.
1. Если для backend'а с forked процессами - то OSSP mm (devel/mm &
devel/p5-IPC-MM).
2. Если на одной машине для разных процессов - mmap + your favorite
locking scheme. Т.е. ещё один велосипед.
> Доков по шеред-мему крайне мало к сожалению и
> почитать что-то путное пока не получилось.
Их достаточно.
* Single UNIX Specification Version 3
* Richard, Stevens "UNIX Network Programming, Volume 2: Interprocess
Communications" (есть и на русском)
--
Sergey Skvortsov
mailto: skv@xxxxxxxxx