Каков подходящий способ избежать общих и эксклюзивных блокировок?

У меня достаточно загруженная система с PostgreSql 9.1 а также PHP 5.3,

Я должен хранить время последнего входа в систему и IP-пользователя каждый раз после входа пользователя. Когда пользователь входит в систему, система сохраняет его в Redis и у меня есть скрипт в crontab, который выполняется каждую минуту и ​​получает данные из Redis и обновляет строки пользователя с последним временем входа в систему и IP в БД одним большим запросом.

Если в этот момент некоторые скрипты начнут выполнять запрос на обновление пользовательской таблицы, я могу найти ошибки общих блокировок в PostgreSql журнал. Огромная проблема, что PHP-скрипты падают, когда эта ошибка происходит в PostgreSql без каких-либо исключений из PDO.

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

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]