Puede crear claves únicas mediante escrituras condicionales. Simplemente haga un PutAttributes con el próximo número de cliente que desea usar y los datos que desea almacenar. No puede agregar una condición para el nombre del elemento real, pero puede usar un atributo que siempre existe (como la fecha de creación o el grupo de usuarios).
establecer las condiciones:
Expected.1.Name=creation_date
Expected.1.Exists=false
La llamada tendrá éxito sólo si no hay creation_date en un artículo con ese nombre del artículo. Si siempre escribe la fecha de creación, se obtiene el efecto de bloqueo optimista en el nuevo nombre del elemento. Por supuesto, puede usar cualquier atributo que desee, siempre que siempre lo incluya en esa primera inserción condicional.
El rendimiento de la escritura condicional es el mismo que en una escritura normal en la mayoría de las situaciones, pero cuando SimpleDB está bajo mucha carga o altas latencias de red interna, estas llamadas llevarán más tiempo, en comparación con las escrituras normales. Durante los escenarios de falla rara dentro de SimpleDB, las escrituras condicionales fallarán por completo durante un período de tiempo.
Si no puede tolerar esto, tendrá que codificar algún tipo de forma alternativa para obtener sus claves únicas durante las interrupciones. Se podría usar una región SimpleDB diferente solo para la generación de claves, ya que SimpleDB seguirá aceptando las escrituras normales (PutAttributes no condicionales) durante las interrupciones.
¡Gracias por la respuesta! Después de leer esto, volví a la documentación que ahora me queda clara. Se puede encontrar aquí: http://docs.amazonwebservices.com/AmazonSimpleDB/2009-04-15/DeveloperGuide/ConditionalPut.html – Zaffiro