Я пытаюсь добиться функциональности последовательности Oracle в DynamoDB. У меня есть одна глобальная таблица «UNIQUE_KEY_GENERATOR» с первичным ключом «ID» и другой столбец «SEQUENCE_NUMBER»
Data in Table
ID SEQUENCE_NUMBER
10 923433
Java фрагмент кода
Map<String, AttributeValue> key= new HashMap<>();
key.put(ID, new AttributeValue().withS("100"));
//expression for atomic increment.
Map<String, AttributeValue> increment= new HashMap<>();
//increment counter by 1
increment.put(":val", new AttributeValue().withN("1"));
//Create upadate ItemRequest
UpdateItemRequest updateItemRequest= new UpdateItemRequest()
.withTableName("UNIQUE_KEY_GENERATOR")
.withKey(key)
.withUpdateExpression(" set SEQUENCE_NUMBER = SEQUENCE_NUMBER + :val")
.withExpressionAttributeValues(increment)
.withReturnValues(ReturnValue.UPDATED_NEW);
UpdateItemResult updateItemResult= amazonDynamoDB.updateItem(updateItemRequest);
Map<String,AttributeValue> result= updateItemResult.getAttributes();
//extract the new sequence number
String sequenceNumber= result.get("SEQUENCE_NUMBER").getN();
При таком подходе я получаю дублирует с высокой нагрузкой 1000 запросов в минуту. Есть ли способ избежать этого?