Search code examples
amazon-web-servicesamazon-dynamodbdynamodb-queries

Is DynamoDB Adaptive Capacity only for provisioned table?


I have read the Amazon DynamoDB documentation and I was wondering:

  • is DynamoDB Adaptive Capacity only for provisioned table ? (and not for on-demand mode) ?

if I create a DynamoDB table with on-demand mode, DynamoDB will scale the partitions by splitting an existing partition (if the 10GB max capacity AND/OR the 3000RCU and 1000WCU hard limit of any partition is reached).

In that situation, I don't understand how adaptive capacity would work (it is not possible to exceed the hard limit of a partition, DynamoDB HAS to split the partition).

The split behavior based on the RCUs / WCUs hard limit of a partition seems the be called "split for heat" ?

From this blog post: https://aws.amazon.com/blogs/database/part-3-scaling-dynamodb-how-partitions-hot-keys-and-split-for-heat-impact-performance/

Adaptive capacity capabilities including split for heat and burst capacity work on both base tables and GSIs.

So the DynamoDB splitting behavior based on the hard limit of a partition (="split for heat") seems to be a subset of the Adaptive Capacity feature ? I am a bit confused, to me, these are 2 different concepts.


Solution

  • You are correct, Adaptive Capacity comes with multiple features.

    1. Direct capacity to unbalanced consumption (The core feature for provisioned mode, which eliminates partition dilution)

    2. Split for Heat -> Partitions which are deemed "hot", when capacity exceeds a defined threshold for a sustained period of time, are split into multiple partitions.

    3. Split for Size -> Partitions which begin to scale towards 10GB of storage are split into multiple partitions.