Задачка про шарики
Варианты ответов:
MySQL. UPDATE amount = amount - 3 WHERE amount >=3. Ответ сервера updated 1 и 0 строк соответственно.
MySQL. UPDATE с if проверкой.
MySQL. Start transaction, SELECT FOR UPDATE, сверяем кол-во, UPDATE amount = amount - 3
MongoDB. FindAndUpdate (amount >=3).
Блокировка семафором
Блокировка через memcache->add(key)
Блокировка через Redis set
с флагом nx
(аналогия п.6)
Блокировка через файл.
Пессимистическая блокировка в SQL