Newbie question here. What does the unit actually measure in this case? In other words "1 unit of read capacity", does that refer to: 1 user? 1 request? 1 Mb of data? 1Gb?
I found the answer actually, so for anyone else with this question: A read capacity unit represents one strongly consistent read per second, or two eventually consistent reads per second, for an item up to 4 KB in size. A write capacity unit represents one write per second, for an item up to 1 KB in size. Source: docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughput.html
AWS Simplified A personal request for if you ever have time: How to use Pipeline, S3 and Cloud Formation to deploy / redeploy lambda functions when I push to a repository - there’s really not much on RUclips about these topics
From AWS "The scaling policy also contains a target utilization-the percentage of consumed provisioned throughput at a point in time. Application Auto Scaling uses a target tracking algorithm to adjust the provisioned throughput of the table (or index) upward or downward in response to actual workloads, so that the actual capacity utilization remains at or near your target utilization." This means that if the Provisioned Capacity reaches 80% Then RCU utilization is 80 and Dynamo will make sure that target Utilization stays at around 80% of the max Capacity unit all the time.
Thank you so much for the video! Also, I have a question: at 10:05 didn't you actually mean the buffer is between 20% - 30%? and not the target utilization?
Splendid! Im just not sure it was referred to what is the tradeoff for do using dynamic scaling vs fixed. (What are the drawbacks for dynamic is the price for same unit usage higher in dynamic vs the same units in fixed).
I have read that each partition in a DynamDB table can have max 3000RCUs and 1000WCUs. If the autoscaling we set causes the RCUs to increase beyond 3000RCUs, then does DynamoDB create additional partition? If additional partition is added then throughput will be distributed equally amongst all partitons. Will this not affect performance after autoscaling scales down RCUs after the peak load goes away? Please explain. Thank you
Have a question, for example there is multiple indexes for a dynamodb table and one index RCU is 400 and autoscaling set as Target utilization : 80% , minimum :10 units and maximum : 100 units. During peak if RCU for the index goes to 2000 (which is more 5 units the actual). In this case Autoscaling will go max to 400 units +100 units = 500 units right ? How to handle to support 2000 RCUsc and waiting for ur response.
Hi Srini, I think you may be misunderstanding how autoscaling works. In the scenario you described (minimum 10, maximum 100, target utilization 80%). Your table would maintain a floor of 10 units. That is, it will never scale BELOW 10 units of capacity. If your target utilization is 80%, you are telling dynamo that you always want a 20% buffer (100-80) of provisioned capacity. For example, if your CONSUMED capacity goes to 80 RCU and stays there, autoscaling will raise your PROVISIONED capacity to ~96 (20% of 80). In this example, the maximum your table will scale up to is 100 units. Any traffic that exceeds this usage will result in throttles. If you want your table to be capable of scaling up to serve 2000 RCU of traffic, you need to set your maximum provisioned capacity to 2000 or higher. Hope this helps.
@Zanity The explanation @Be A Better Dev for Target Utilization is quite different from what is on the AWS page. From AWS "The scaling policy also contains a target utilization-the percentage of consumed provisioned throughput at a point in time. Application Auto Scaling uses a target tracking algorithm to adjust the provisioned throughput of the table (or index) upward or downward in response to actual workloads, so that the actual capacity utilization remains at or near your target utilization." This means that if the Provisioned Capacity reaches 80% Then RCU utilization is 80 and Dynamo will make sure that target Utilization stays at around 80% of the max Capacity unit all the time.
can someone share a use case where there is no auto-scaling required. where the data is predictable over a longer horizon and absolutely sure AS is not needed in Dynamod DB.. This is for some college assignment we have ..Prashant
Maybe you create an app for booking tables at restaurants. This app might, by an automated function, get a read of the database every 10 minutes or so to offer the customer a somewhat accurate representation of available time slots to choose from.
10:00 I think you meant 70% or 80% (instead of 20% or 30%)
Newbie question here. What does the unit actually measure in this case? In other words "1 unit of read capacity", does that refer to: 1 user? 1 request? 1 Mb of data? 1Gb?
I found the answer actually, so for anyone else with this question:
A read capacity unit represents one strongly consistent read per second, or two eventually consistent reads per second, for an item up to 4 KB in size. A write capacity unit represents one write per second, for an item up to 1 KB in size.
Source: docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughput.html
@@DavidRichardsDC thank you! : D
Great video!
Really well explained and clear concepts.
Your videos are great, you deserve more subs, thank you
Thank you so much for your kind words!
AWS Simplified A personal request for if you ever have time: How to use Pipeline, S3 and Cloud Formation to deploy / redeploy lambda functions when I push to a repository - there’s really not much on RUclips about these topics
@@ChronicWhale Hi! Give a try to Pulumi instead of CloudFormation
From AWS "The scaling policy also contains a target utilization-the percentage of consumed provisioned throughput at a point in time. Application Auto Scaling uses a target tracking algorithm to adjust the provisioned throughput of the table (or index) upward or downward in response to actual workloads, so that the actual capacity utilization remains at or near your target utilization." This means that if the Provisioned Capacity reaches 80% Then RCU utilization is 80 and Dynamo will make sure that target Utilization stays at around 80% of the max Capacity unit all the time.
Thank you so much for the video! Also, I have a question: at 10:05 didn't you actually mean the buffer is between 20% - 30%? and not the target utilization?
Splendid! Im just not sure it was referred to what is the tradeoff for do using dynamic scaling vs fixed. (What are the drawbacks for dynamic is the price for same unit usage higher in dynamic vs the same units in fixed).
How flexible ist burst? I have the scenario of ca 1 RCU which may/sould increase in a second to 1000 RCU. Would this work?
Just great stuff !
dynamodb can scale automatically right?
Absolutely!
Thanks for your video.
You are very welcome!
I have read that each partition in a DynamDB table can have max 3000RCUs and 1000WCUs. If the autoscaling we set causes the RCUs to increase beyond 3000RCUs, then does DynamoDB create additional partition?
If additional partition is added then throughput will be distributed equally amongst all partitons. Will this not affect performance after autoscaling scales down RCUs after the peak load goes away?
Please explain.
Thank you
You can submit quota change in your aws account regarding the max RCU and WCU
Have a question, for example there is multiple indexes for a dynamodb table and one index RCU is 400 and autoscaling set as Target utilization : 80% , minimum :10 units and maximum : 100 units. During peak if RCU for the index goes to 2000 (which is more 5 units the actual). In this case Autoscaling will go max to 400 units +100 units = 500 units right ? How to handle to support 2000 RCUsc and waiting for ur response.
Hi Srini, I think you may be misunderstanding how autoscaling works.
In the scenario you described (minimum 10, maximum 100, target utilization 80%). Your table would maintain a floor of 10 units. That is, it will never scale BELOW 10 units of capacity. If your target utilization is 80%, you are telling dynamo that you always want a 20% buffer (100-80) of provisioned capacity. For example, if your CONSUMED capacity goes to 80 RCU and stays there, autoscaling will raise your PROVISIONED capacity to ~96 (20% of 80). In this example, the maximum your table will scale up to is 100 units. Any traffic that exceeds this usage will result in throttles.
If you want your table to be capable of scaling up to serve 2000 RCU of traffic, you need to set your maximum provisioned capacity to 2000 or higher.
Hope this helps.
@Zanity The explanation @Be A Better Dev for Target Utilization is quite different from what is on the AWS page. From AWS "The scaling policy also contains a target utilization-the percentage of consumed provisioned throughput at a point in time. Application Auto Scaling uses a target tracking algorithm to adjust the provisioned throughput of the table (or index) upward or downward in response to actual workloads, so that the actual capacity utilization remains at or near your target utilization." This means that if the Provisioned Capacity reaches 80% Then RCU utilization is 80 and Dynamo will make sure that target Utilization stays at around 80% of the max Capacity unit all the time.
can someone share a use case where there is no auto-scaling required. where the data is predictable over a longer horizon and absolutely sure AS is not needed in Dynamod DB.. This is for some college assignment we have ..Prashant
Thanks so much for the kind words Sam. This is a great idea. I'll start thinking about ways to bring more organization to the content.
Daniel
Maybe you create an app for booking tables at restaurants. This app might, by an automated function, get a read of the database every 10 minutes or so to offer the customer a somewhat accurate representation of available time slots to choose from.