Вы можете создавать уникальные ключи, используя условные записи. Просто сделайте PutAttributes со следующим номером клиента, который вы хотите использовать, и данными, которые вы хотите сохранить. Вы не можете добавить условие для фактического имени элемента, но вы можете использовать атрибут, который всегда существует (например, дату создания или группу пользователей).
Установите условия:
Expected.1.Name=creation_date
Expected.1.Exists=false
Вызов будет успешным только в том случае, если в элементе с таким именем отсутствует дата creation_date. Если вы всегда пишете дату создания, то вы получите эффект оптимистической блокировки для имени нового элемента. Конечно, вы можете использовать любой атрибут, который захотите, если вы всегда включаете его в первый условный пут.
Производительность условной записи в большинстве случаев такая же, как и при обычной записи, но когда SimpleDB находится под большой нагрузкой или с большими задержками во внутренней сети, эти вызовы будут занимать больше времени, чем обычные записи. Во время сценариев редких сбоев внутри SimpleDB условная запись завершается сбоем в течение определенного периода времени.
Если вы не можете с этим смириться, вам придется написать какой-то альтернативный способ получения ваших уникальных ключей во время отключений. Другая область SimpleDB может использоваться только для генерации ключей, поскольку SimpleDB по-прежнему будет принимать обычные записи (безусловные PutAttributes) во время простоев.