Я читал часто задаваемые вопросы и другие сообщения, пытаясь понять поведение DynamoDB по отношению к единицам чтения и записи. Скажем, я просматриваю таблицу, и это превышает мои единицы измерения чтения. Правильно ли я полагаю, что DynamoDB сначала запустит запрос, все еще вернув все результаты, только медленнее? В какой момент запрос просто провалится, вместо того, чтобы задушить?DynamoDB & Provisioned Capacity: Throttling vs. Failure
ответ
Если ваш запрос превышает требуемую емкость, вы получите сообщение об ошибке ProvisionedThroughputExceededException
.
The Error Handling documentation говорит:
Ваша оценка запроса слишком высока. SDK AWS для DynamoDB автоматически запрашивает запросы, которые получают это исключение. Ваш запрос в конечном счете будет успешным, если ваша очередь повторения слишком велика для завершения. Уменьшите частоту запросов, используя экспоненциальное отключение.
Кроме того, обратите внимание, что DynamoDB обеспечивает серийной съемки Емкость. Из Guidelines for Working with Tables документации:
DynamoDB обеспечивает некоторую гибкость в каждом раздел пропускной резервировании. Когда вы не полностью используете пропускную способность раздела, DynamoDB сохраняет часть неиспользованной емкости для более поздних пакетов с пропускной способностью. В настоящее время DynamoDB сохраняет до пяти минут (300 секунд) неиспользуемой емкости для чтения и записи. Во время случайного всплеска активности чтения или записи эти дополнительные единицы мощности могут потребляться очень быстро - даже быстрее, чем предусмотренная пропускная способность в секунду для вашей таблицы. Однако не разрабатывайте приложение так, чтобы оно всегда зависело от доступности пакета: DynamoDB может и может использовать пропускную способность для поддержки фона и других задач без предварительного уведомления.
Таким образом, комбинация автоматических повторных попыток плюс пропускная способность пакета означает, что менее вероятно, что вы получите исключения пропускной способности. Если да, то экспоненциально отступайте и повторите попытку.
Некоторые пользователи DynamoDB поддерживают очередность SQS Amazon для временного хранения транзакций. Если пропускная способность превышена, они сохраняют транзакцию в очереди SQS. Затем фоновый процесс извлекает транзакции из очереди и повторяет их позже, когда, надеюсь, будет доступна большая пропускная способность.
- 1. DynamoDB Throttling
- 2. DynamoDB vs MongoDB NoSQL
- 3. AWS DynamoDB VS HBase
- 4. malloc/realloc/free capacity optimization
- 5. Число элементов в FloatBuffer и CharBuffer: capacity() vs limit()
- 6. DynamoDB vs S3 плоские файлы?
- 7. Amazon SimpleDB vs Amazon DynamoDB
- 8. Свойство Capacity в ArrayList
- 9. Dynamic Array - Finding Capacity
- 10. .net wpf textbox capacity
- 11. Datanode capacity is 0kb
- 12. funkload testmark failure failure
- 13. C# - Throttling MessageQueue
- 14. Throttling WCF WebHttpBinding
- 15. API Throttling на photos.get?
- 16. Throttling Android WiFi Traffic
- 17. Thread Throttling in C#
- 18. OneDrive API Throttling
- 19. Throttling Apache CXFclients
- 20. Highstock 1.3 afterSetExtremes throttling
- 21. Throttling C++ threads
- 22. API Throttling Best Practices
- 23. Gmail IMAP Throttling?
- 24. Kafka connect throttling
- 25. Служба WCF Throttling
- 26. Mule ESB и Throttling
- 27. Throttling Search с UISearchController
- 28. Throttling express server
- 29. Amazon web services Throttling
- 30. Throttling Исходящие HTTP-запросы
Спасибо, Джон! Имеет смысл, поскольку я использую SDK iOS. – sambol