Это может не иметь ничего общего с модулями K8s, но я подозреваю, что-то более алгоритмическое. Но это полный сценарий, с которым мы столкнулись.
Допустим, у нас есть 2 модуля -> Java-приложение.
У нас есть 1 таблица динамо -> имеющая id
(hash_key) (не уникально), created_date
(sort_key), id_2
Ожидаемое поведение программы - проверить наличие данного id
(последний) и извлечь его id_2
. Если такого id
не существует, создайте новый id_2
.
Теперь наступает состояние гонки ->
Два модуля параллельно начинают выполнять логику, и оба они начинают запрашивать динамо, и по совпадению имеют одинаковые значения id
. Теперь они не находят таких id
.., поскольку ни один из них не был вставлен в «Динамо», и поэтому они создают совершенно новые отдельные id_2
.. и оба модуля заканчивают тем, что вставляли новые id_2
для того же id
.. чего не должно быть.
Как мы можем решить это условие гонки?
Любые выводы будут оценены. Thx