Sync
Новичок
Блокировки. Классика.
Задача.
Есть таблица InnoDB с полем last_id.
Клиенты считывают значение, используют его в своих целях, инкрементируют его и обновляют поле.
Проблема заключается в дублировании этого значения, что нежелаемо.
То есть клиент1 взял 1. Поиграл с ним записал 2.
В это же время клиент2 взял 1 (хотя должен был подождать и взять 2).
Читал про select ... for update, select ... lock in share mode.
Насколько я понял это мне не поможет. Мне надо поставить блокировку на чтение. То есть не LOCK READ, а так чтобы другие клиенты даже читать не могли пока первый не изменит значение.
Каким инструментов стоит пользоватся в данном случае?
И каким образом в InnoDB можно выполнить блокировку на уровне строки?
Спасибо.
Задача.
Есть таблица InnoDB с полем last_id.
Клиенты считывают значение, используют его в своих целях, инкрементируют его и обновляют поле.
Проблема заключается в дублировании этого значения, что нежелаемо.
То есть клиент1 взял 1. Поиграл с ним записал 2.
В это же время клиент2 взял 1 (хотя должен был подождать и взять 2).
Читал про select ... for update, select ... lock in share mode.
Насколько я понял это мне не поможет. Мне надо поставить блокировку на чтение. То есть не LOCK READ, а так чтобы другие клиенты даже читать не могли пока первый не изменит значение.
Каким инструментов стоит пользоватся в данном случае?
И каким образом в InnoDB можно выполнить блокировку на уровне строки?
Спасибо.