Size: a a a

2021 April 29

V

Vlad in pro.jvm
Ну например при реакции на событие проверить, что нет уже чего-то созданного в другом приложении
источник

ЕЕ

Евгений Елисеев... in pro.jvm
чем тут гн подходит rdbms? долго?
источник

V

Vlad in pro.jvm
Другой инстанс может параллельно обрабатывать этот же событие
источник

ЕЕ

Евгений Елисеев... in pro.jvm
пишут в одно место? две транзакции. одна навернется например по unique key. или я не догнал
источник

V

Vlad in pro.jvm
Да классическая проблема параллельного кода (что решалось бы блоком синхронизации) если бы не были разные приложения. Если чего-то нет, выполни код. А параллельно другой инстанс может заканчивать создания этого самого. Так карты легли и балансировщик раскинул запросы пользователя например.
источник

V

Vlad in pro.jvm
Ключа уникального не будет, потому что может быть много таких записей вцелом(но одна активная)
источник

ЕЕ

Евгений Елисеев... in pro.jvm
то есть в etcd один процесс кладет "я начал ид=123" а второй падает/идет в другую ветку ифа если оно там есть?
источник

V

Vlad in pro.jvm
Ну да, типо того. Возможно пример я не привел нормальный и это можно решить составным ключём
источник

V

Vlad in pro.jvm
Можно и в бд строчку записать - взял лок на такой объект, потом в конце отпустить.
источник

ЕЕ

Евгений Елисеев... in pro.jvm
ну суть все равно понятна.
источник

A

Aleksandr in pro.jvm
Надеюсь речь идёт про транзакции? Или вы про NoSql key-value базы говорите?
источник
2021 April 30

V

Vlad in pro.jvm
Я вцелом про распределенные локи(и другие примитивы - leader election, disovery - тут все понятно) и кто как их использует. Или может в микросервисах они вообще не нужны (у нас монолит)
источник

ЕЕ

Евгений Елисеев... in pro.jvm
lock table 😂
источник

V

Vlad in pro.jvm
Ну как вариант 😂
источник

A

Aleksandr in pro.jvm
С ними кстати много приколов. Например, если это какой-нибудь Redis с TTL механизмом, то можно запросто набить себе шишок, надеюсь понимаете о чём я 😅
источник

V

Vlad in pro.jvm
Ну про консистентность редиса немного слышал, поэтому могу предположить. Ну есть проверенные рабочие решения - етсд, зукипер) они как раз про консистентность в ущерб доступности
источник

A

Aleksandr in pro.jvm
Не не, не про это, а про то, что фактически легко напороться на гонку. Когда один поток инстанса A подзавис, но не отпустил блокировку, при этом из-за TTL блокировка снята, а второй поток инстанса B смело пошёл в критическую секцию.

Но это если у вас TTL стоит, он может не стоять, но там свои минусы появляются
источник

ЕЕ

Евгений Елисеев... in pro.jvm
чет кажется что лучше лок пропадет чем будет висеть до перезагрузки
источник

V

Vlad in pro.jvm
Ну тут наверное можно не снимать когда отвиснет, словить исключение и откатить транзакцию, а второй повисит пока лок не отпустится. В итоге будет все хорошо
источник

A

Aleksandr in pro.jvm
Так лок пропадёт, но если критическая секция будет взята "без согласования", то можно напороться на проблемы
источник