Стратегии транзакций для DynamoDB в Spring

Как лучше всего включить транзакционность мультиоперационных обновлений в AWS DynamoDB в приложении Java Spring?

DynamoDB AWS является атомарным только при обновлении каждой строки. У меня есть требование поддерживать вторичные индексы в виде отдельных таблиц, поэтому я бы вставил «основную» строку в основную таблицу, а затем вставил строку в таблицу вторичного индекса. Если вторая вставка не удалась, я хотел бы «откатить» первую, чтобы сохранить согласованность моих данных. DynamoDB не имеет встроенной поддержки транзакций или откатов.

Я знаком с использованием диспетчера транзакций Spring при работе с источниками данных JPA, такими как Hibernate, но я не уверен, каким будет лучший подход к реализации моего собственного кода управления транзакциями.


person EngineerBetter_DJ    schedule 14.10.2012    source источник
comment
Вы нашли что-нибудь для отката в dynamodb?   -  person M-sAnNan    schedule 11.06.2016
comment
Возможный дубликат реализации атомарных транзакций в dynamodb   -  person mkobit    schedule 30.11.2018


Ответы (1)


У нас аналогичное требование. То, что мы принимаем, — это подход «полиглот». То есть сохранить транзакционную часть, вашу основную таблицу, в реляционной базе данных. Обновляйте вторичные индексы в DynamoDB только после фиксации транзакции в основной таблице.

person user1786434    schedule 30.10.2012
comment
Я не уверен, что понимаю. Если основная таблица находится в СУБД, то мы не получаем никаких преимуществ DynamoDB? - person EngineerBetter_DJ; 31.10.2012