Provisioned Throughput Exceeded & Exponential Backoff Exam Tips
You might see ProvisionedThroughputExceededException
if you request rate is too high for the read / write capacity provisioned on your DynamoDB table.
- SDK will automatically retries the requests until successful
- If you are not using the SDK, you can do one or both of the following:
- Reduce request frequency
- Use Exponential Backoff
Exponential Backoff
- Many components in a network can generate errors due to too many requests coming in at the same time (i.e. overloaded)
- Network Switches
- DNS Servers
- Load Balancers
- Etc.
- The usual fix are retries; however, there's also Exponential Backoff, which all AWS SDKs use.
- Progressively longer waits between consecutive retries (e.g. 50ms, 100ms, 200ms) until successful, for improved flow control
- If after 1 minute this doesn't work, your request size may be exceeding the throughput for your read / write capacity. This might necessitate investigating your throughput allocation.
- If you're using reads, you might consisder using DAX or Elasticache.
- Remember this is not just true for the DynamoDB SDK. Exponential Backoff is a feature of every AWS SDK and applies to many services within AWS (e.g. S3 buckets, CloudFormation, SES)