Я тут наткнулся на эту статью ещё раз независимо от тебя. Ну и прочитал её. Вспомнил, что ты писал про неё.
Про lua написали вроде как верно, redis впринципе однопоточный (кстати, есть его fork многопоточный, там такой хак не сработает), но я хочу написать о другом.
Вообщем моё мнение такое, что этот алгоритм распределённой блокировки как-то уж очень сомнительный в плане безопасности (safety). Если даже написать его правильно один раз, то программисту, который использует этот алгоритм, нужно о многом задумываться, что чревато ошибками, если он об этом не будет задумываться.
1. Произвольные задержки могут быть где угодно (garbage collector, сеть)
2. CPU bound таск просто так не напишешь, нужно думать о расширении лока (
https://redis.io/topics/distlock#making-the-algorithm-more-reliable-extending-the-lock) и код программиста будет усложнятся.
Кто-нибудь знает корректный алгоритм реализации, так как этот не выглядит безопасным?
Возможно тут ответ
https://dl.acm.org/doi/10.1145/74851.74870Пока ещё это не читал