DynamoDB Functionality Queries

0

I had been running the load test on dynamodb with provisioned throughput to identify the exact break point at different loads but I ran into several problems during the test , can you please clarify the same?

    1)While creating DynamoDB tabled I can see that some cloud watch alarms are also created with it by default, Is it fine if we delete those alarms? Is it having any relevance in OnDemand or when autoscaling is enabled?
2) What time will it take the change in rcu (eg: from 1 to 2) will take to reflect in db calls?
3)How often can we change the RCU/WCU values in provisioned mode and between provisioned and ondemand modes, if there is a limit what happens if I try to change more that the threshold? (Asking since i saw mode demand/provisioned can be changed only once in 24 hrs)
4) Why same number of concurrent request failing after hitting table consecutively? I tried setting the RCU at 1 with autoscaling off and then using Jmeter I made concurrent request by calling 200  read operation simultaneously the first two times it succeeded but the third time it failed why is that so?
5) Also once we get the ProvisionedThroughputExceededException then even on smaller loads dynamodb throws ProvisionedThroughputExceededException, why is that so? For Example  I tried setting the RCU at 1 with autoscaling off and then using Jmeter I made concurrent request by calling 300  read operation simultaneously around 30% of total request got throttled, then there after for some time even if I make 30 concurrent request(which have succeeded earlier) will throw some part of the request to being throttled why is that so ?
asked 2 years ago244 views
1 Answer
0

You are not going to find a "break point" in DynamoDB. You are going to find a "you ran out of configured capacity" point, and you can always raise the capacity (or go to On Demand).

The key concept you should research here to understand your seemingly odd results is "burst capacity" whereby a table may provide you with up to 5 minutes worth of unused provisioned capacity. If you provision a table to just 1 RCU and don't use it then after 5 minutes your table will have accumulated 300 RCUs worth of burst capacity, which the table may let you consume before throttling you. Will it let you consume all 300 the first second? Maybe, maybe not. Once you're above your provisioned capacity the table might throttle you, but if you've got burst capacity it probably won't always throttle you.

Burst capacity is a great feature for temporary spikes above a provisioned capacity limit, but it isn't a guarantee. If you want to handle a certain workload, provision at or above that workload.

I suggest you put the table in On Demand mode (so you don't have to think about capacity and can trust the table to handle what you throw at it), proceed with writing your app using good design practices, then if the cost is non-trivial you can look to CloudWatch to see how you might switch to Provisioned mode with auto-scaling as a cost savings mechanism.

AWS
answered 2 years ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions