Как предотвратить возможные RC
Я использую процедуры Tarantool 1.5 и lua.
Документация говорит, что процедура lua может привести к выполнению другой после сетевой операции или операции ввода-вывода, например, вызову box.update.
Мой главный вопрос: если я получаю возвратный кортеж из box.update, содержит ли он информацию "после обновления, до выхода" или "после обновления, после выхода"?
Кроме того, каковы лучшие методы предотвращения возможных условий гонки?
1 ответ
Решение
Если вам нужно сделать что-то вроде транзакции в 1.5, вы можете выполнить либо идемпотентную операцию, либо выполнить повторный выбор и проверки после любой операции выхода (обновить / удалить / заменить)