Я пишу приложение в Node.js, используя PostgreSQL в качестве базы данных. Но у меня есть некоторые проблемы. У меня есть таблица с информацией о ресурсах в регионе:Оптимистическая очередь блокировки
CREATE TABLE regions_indexes
(
id integer NOT NULL,
resource_type integer NOT NULL,
current_resource integer,
maximum_resource integer,
CONSTRAINT regions_indexes_pkey PRIMARY KEY (id, resource_type)
)
Пользователи нажимает на кнопку, приложение вычисляет различные параметры на основе current_resource, а затем сделать current_resource - $ calc_value. Потому что, возможно, я очень уверенно использую транзакции. Но при вычислении процесса возможны некоторые ошибки, и нам нужно повторять вычисления. Теперь я использую SELECT ... FOR UPDATE для блокировки строки с использованием current_resource. Как я могу сделать это без блокировки с использованием оптимистической блокировки, если текущее значение current_resource очень важно, а пользователь, который сначала нажимает, должен использовать max. avalaible current_resource. Другими словами, я должен реализовать очередь acess для current_resource.