Каждый раз, когда ваше приложение отправляет запрос, превышающий ваши возможности, вы получаете сообщение ProvisionedThroughputExceededException
от «Динамо».Однако ваш SDK обрабатывает это для вас и повторяет попытку.По умолчанию время повторения динамомашины начинается с 50 мс, количество повторов по умолчанию равно 10, а откат по умолчанию экспоненциальный.
Это означает, что вы получаете повторы при:
- 50 мс
- 100 мс
- 200 мс
- 400 мс
- 800 мс
- 1,6 с
- 3,2 с
- 6,4 с
- 12,8 с
- 25,6 с
Если после 10-й повторной попытки ваш запрос все еще не выполнен, SDK передает ProvisionedThroughputExceededException
обратно в ваше приложение, и вы можетеобрабатывайте его так, как вам нравится.
Обратите внимание, что вы можете изменить поведение по умолчанию для вашего SDK.Например,
new AWS.DynamoDB({maxRetries: 13, retryDelayOptions: {base: 200}});
Это означает, что вы повторите попытку 13 раз с начальной задержкой 200 мс.Это даст вашему запросу в общей сложности 819,2 с, а не 25,6 с.