Amazon DynamoDB Условные записи и атомарные счетчики
Приложение, над которым я сейчас работаю, требует от меня увеличения атрибута, принадлежащего элементу в DynamoDB, много раз за период от 20 до 30 минут. Я делал дополнительное чтение об условных записях DynamoDB и атомных счетчиках
Атомные счетчики в динамомашинах кажутся логичным выбором для того, что мне нужно, но я действительно беспокоюсь о согласованности данных, особенно в распределенной базе данных, такой как динамо, и задаю точность моих данных. Я ожидаю, что API пойдет в пиковое время, но я хочу избежать проблем с производительностью, связанных с условными обновлениями. Наверное, я хочу знать, насколько надежны атомные счетчики с DynamoDB и как правильно их реализовать с помощью динамо. Другие предложения также приветствуются.
1 ответ
Да, это те функции, которые вы хотели бы использовать. Использование их через API Dynamo - это путь.
Теперь, между этими двумя функциями, используйте условную запись, если счетчик, который вам нужно изменить, если он очень важен для бизнеса (вы указываете API обновить значение, чтобы сказать x + 10 "ЕСЛИ и только ЕСЛИ", существующее значение равно x)
Тот же документ, на который вы ссылались, объясняет Atomic Counter:
"Вы можете повторить эту операцию, если вы подозреваете, что предыдущий запрос был неудачным. Однако вы рискуете применить одно и то же обновление дважды. Это может быть приемлемо для счетчика веб-сайта, поскольку вы можете допустить его с небольшим завышением или занижением подсчета". Посетители. Однако в банковском приложении было бы безопаснее использовать условное обновление ".
Поэтому, если это бизнес-критическая операция, используйте условную запись, в противном случае атомарный счетчик. Надеюсь, это проясняет.