sebdah / dynamic-dynamodb

Dynamic DynamoDB provides auto scaling for AWS DynamoDB
http://dynamic-dynamodb.readthedocs.org/
Apache License 2.0
617 stars 124 forks source link

Proposal: Extend (min|max)-provisioned-* to (idle|min|max)-provisioned-* #337

Open nigels-com opened 6 years ago

nigels-com commented 6 years ago

We have a lot of dynamo tables, most of which are idle (no consumption) most of the time.

I was considering that if there is no consumption we can provision as low as 1 or 10, but in the event of any comsumption set the min-provisioned to something relatively high like 100 to 1000. The exponential scaling works well beyond that, but it can take a while to get from say, 10 to 1000 even doubling the provisioning each step.

So, as a proposal, in addition to min-provisioned and max-provisioned also support idle-provisioned as an alternative to min-provisioned when there is no consumption. If idle-provisioned is not specified, continue using min-provisioned, as before.

This would allow us to increase our min-provisioned and reduce costs with idle-provisioned at a fraction of min-provisioned.

Any concerns, objections or alternative formulations?

nigels-com commented 6 years ago

Here is a typical scenario where a table update was throttled by capacity, scaling up too slowly.

It would have been nice to go straight from 5 to 100 once consumption was detected.

min-provisioned = 100 idle-provisioned = 5

screen shot 2018-05-18 at 11 02 39 am