Эквивалентное Семя Идентификационных данных Amazon SimpleDB

Существует ли эквивалент Семени идентификационных данных в SimpleDB?

Если ответ не, как Вы обрабатываете создание чего-то как клиентское число или номер заказа, который предотвратит числа дубликата создания?

Мой опыт главным образом от SQL Server, в котором я или создал бы первичный ключ с семенем идентификационных данных или транзакциями использования в хранимой процедуре для постепенного увеличения числа.

Спасибо за помощь!

6
задан Zaffiro 10 April 2010 в 12:59
поделиться

2 ответа

Вы можете создавать уникальные ключи, используя условную запись. Просто сделайте PutAttributes со следующим номером клиента, который вы хотите использовать, и данными, которые хотите сохранить. Вы не можете добавить условие для фактического имени элемента, но можете использовать атрибут, который существует всегда (например, дату создания или группу пользователей).

Задайте условия:

   Expected.1.Name=creation_date
   Expected.1.Exists=false

Вызов будет успешным только в том случае, если в элементе с таким именем нет created_date. Если вы всегда пишете creation_date, то вы получаете эффект оптимистической блокировки для нового имени элемента. Конечно, вы можете использовать любой атрибут, который захотите, если вы всегда включаете его в первый условный оператор.

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

Если вы не можете этого допустить, вам придется запрограммировать какой-то альтернативный способ получения ваших уникальных ключей во время простоев. Другой регион SimpleDB может использоваться только для генерации ключей, поскольку SimpleDB по-прежнему будет принимать обычные записи (не условные атрибуты PutAttribute) во время простоев.

6
ответ дан 10 December 2019 в 02:45
поделиться

Если у вас еще нет чего-то уникального, что будет работать, использование GUID для элемента, вероятно, является типичным решением.

3
ответ дан 10 December 2019 в 02:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: