memcached и много одновременно одинаковых запросов к нему

флоппик

promotor fidei
Команда форума
Партнер клуба
Вот я в этом году сделал распаралеливание работы на кучу серверов с пачкой демонов на php, автоматизация настройки новых серверов, автоматизация конфигурирования nginx-а и php, сбор статистики и фейловер, DNS и много чего еще.
Готов рассказать и показать -- бесплатно, без пиара и шума.
Я бы с удовольствием почитал/послушал, особенно про автодеплой серверов и фейловер
 

BoRay

Новичок
При разработке прототипа выяснилась одна основная тонкость(на мой взгляд): необходима атомарность между чтением состояния кеша объекта и изменением состояния если таковое необходимо.
Т.е. между $memcache->get('objectName'); и $memcache->set('objectName'); возможны операции других процессов. Решение я вижу в установке ключей кричащих о блокировке.
PHP:
if ($memcache->add('objectNameLock')){строим}
 

DiMA

php.spb.ru
Команда форума
> Не поможет, потому как получение такой блокировки - тоже не атомарно.

Ты ошибаешься. Для блокировки как раз нужно add использовать, что позволит атомарно разветвиться логике в пхп.

По-умному, продвинутый класс блокировок занимает страниц 5 кода (а не одна строка с add). Благодаря ему можно добиться чудесной экономии обычного пхп кода (сократить затраты на проблемы атомарности, реализуя логику).
 

DiMA

php.spb.ru
Команда форума
Как-нибудь - обязательно. Сейчас не готов.
 

DiMA

php.spb.ru
Команда форума
да нифига там не проще

было бы проще, если кто-то допрет в Редис добавить атомарную команду "Установить значение B (новое), если оно равно значению А (текущему)"
 
Сверху