Как называется (что гуглить) задача, когда в таблице MySQL нужно сделать запись на основе предыдущей, и на это время закрыть доступ к таблице?
Делаю что-то вроде блокчейна, и там примерно такое планирую: 1. Берется запись 1 из таблицы A 2. На ее основе формируется и вставляется запись 2 3. На время, пока запись 2 формируется и вставляется, нужно закрыть доступ И на запись И на чтение (чтобы никто не начал параллельно формировать запись на основе 1), к таблице А 4. Если кто-то во время блокировки стучится на доступ к этой таблице - не отказывать ему, а просто поставить в очередь 5. Соответственно, чтобы формировалась очередь 6. И чтобы этим процессам в очереди давалась уже новая версия таблицы, включающая запись 2
Вопросы: Как называется такая типовая задача? Подходит ли MySQL и нужно что-то другое?
Для описанного сценария можно использовать lock таблицы. Либо пусть все это обрабатывает 1 сервис и хранит текущую строку в памяти - это будет эффективнее. Т.е. приходит запрос, его кладем в очередь (какой-нибудь брокер сообщений), наш сервис в фоне забирает сообщение из очереди и из него и строки в памяти формирует новую строку, отдает ее опять в очередь, изначальный запрос забирает данные из очереди.
Если я правильно понял, что в принципе нельзя обрабатывать параллельно.