Гарантия создания заказа в DynamoDB? - PullRequest
0 голосов
/ 13 мая 2019

Есть ли способ автоматически упорядочить мои элементы по порядку создания в DynamoDB?

Я пытался использовать временную метку ISO в моих ключах сортировки, но вскоре я заметил, что элементы, созданные в одну и ту же секунду, имеютнет гарантированного заказа.

Другая важная проблема заключается в том, что мой ключ сортировки является составным, например:

Sort_Key : someRandomUuidHere|Created:someTimeStampHere

Мне нужно сгенерировать UUIds, чтобы попытаться гарантировать его уникальность, но добавиввременная метка в конце uuid, кажется, не упорядочивает ее по временной метке, а вместо этого uuid.И если я добавлю метку времени в начало, я не смогу использовать такие вещи, как begin_with, чтобы это нарушало мои шаблоны доступа

Единственный способ, которым я мог думать, - это поддерживать объект «последнего ключа» и всегда спрашивать егопоследний элемент индекса раньше, но для этого потребуется дополнительный запрос и некоторая логика ACID.

Или, может быть, просто закажите его на стороне клиента, всегда есть

1 Ответ

1 голос
/ 13 мая 2019

Ключи сортировки сортируются слева направо ... так что да, UUID будет единственным компонентом, влияющим на порядок.

Почему бы не разместить метку времени первым?

В качестве альтернативы рассмотримпросто UUID на основе времени.Динамо не предлагает его изначально, хотя некоторые NoSQL DB, такие как Cassandra, делают.

Вот статья, в которой обсуждается создание одного с помощью .NET Создание Time UUID (GUID) в .NET

Который включает в себя ссылку на следующий источник https://github.com/fluentcassandra/fluentcassandra/blob/master/src/GuidGenerator.cs

...