Заменяет ли dynamodb global весь элемент во время синхронизации?

#amazon-web-services #amazon-dynamodb

#amazon-web-services #amazon-dynamodb

Вопрос:

При включении dynamodb global table, если для одного и того же элемента выполняется две записи, но в таблице в каждом регионе разные атрибуты. Как выполняется синхронизация dynamodb между этими двумя таблицами?

Например, в regionA происходит обновление элемента:

 {
  a: 1
}
 

в то же время в той же таблице в RegionB есть другая запись с приведенными ниже изменениями:

 {
  b: 1
}
 

будет ли dynamodb global table sync объединять атрибуты в один:

 {
 a: 1,
 b: 1
}
 

или один заменит другой?

Ответ №1:

В случае состояния гонки одно обновление будет принято, а другое будет отклонено. При использовании глобальных таблиц DynamoDB DynamoDB не может надежно устранять несоответствия из-за своего распределенного характера. Вы должны убедиться, что предотвратили или устранили возможные несоответствия в рамках вашего приложения.

Согласно документации:

Чтобы обеспечить конечную согласованность, в глобальных таблицах DynamoDB используется согласование результатов последней записи между одновременными обновлениями, при котором DynamoDB прилагает все усилия для определения последней записи. С помощью этого механизма разрешения конфликтов все реплики согласуются с последним обновлением и сходятся к состоянию, в котором все они имеют идентичные данные.

https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables_HowItWorks.html