Параллельные обновления в DynamoDB, есть ли гарантии? - PullRequest
3 голосов
/ 02 апреля 2019

В общем, если я хочу быть уверенным в том, что происходит, когда несколько потоков одновременно выполняют обновления одного и того же элемента в DynamoDB, я должен использовать условные обновления (т. Е. «Оптимистическая блокировка»). Я знаю это. Но мне было интересно, есть ли другой случай, когда я могу быть уверен, что одновременные обновления одного и того же элемента выживают.

Например, в Cassandra одновременное обновление различных атрибутов одного и того же элемента в порядке, и оба обновления в конечном итоге будут доступны для чтения. То же самое верно в DynamoDB? Или возможно, что выживет только одно из этих обновлений?

Очень похожий вопрос: что произойдет, если я добавлю одновременно два разных значения к набору или списку в одном и том же элементе? Я гарантированно, что в конечном итоге увижу оба значения при чтении этого набора или списка, или это возможно, что одно из дополнений замаскирует другое во время своего рода протокола «разрешения конфликтов» DynamoDB?

Я вижу, что версия моего второго вопроса уже задавалась здесь в прошлом Являются ли DynamoDB "установленными" значениями CDRT? , но ответ относится к не очень ясной записи FAQ, которая не существовать больше В качестве ответа на мой вопрос я бы хотел видеть официальную документацию DynamoDB, в которой говорится, как DynamoDB обрабатывает параллельные обновления, когда не задействованы ни «условные обновления», ни «транзакции», и, в частности, что происходит в двух приведенных выше примерах. В отсутствие такой официальной документации, есть ли у кого-нибудь реальный опыт работы с такими параллельными обновлениями?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...