Capacity modes, RCU & WCU

Think of earlier analogy of electric billing. A houselhold customer pays for the kWH units of electricity used. The lines that connect the consumer to the main electricity distribution point can handle a fixed maximum load e.g., a maximum of 10 kW. If the usage goes beyond the maximum, the circuit trips!!

Large industrial complexes have a much higher capacity circuit as they consume more power and want to avoid disruptions. Households on the other end most of the time are OK with smaller capacity circuits. So what that means is that consumer can get the load capacity adjusted based on their estimated usage.

The model is similar in DynamoDB, there is a maximum amount of reads and writes you can carry out per second.

In Provisioned Capacity Mode user of the tables estimates the IO and sets the maximum reads/sec and writes/sec for the table.

RCU-WCU

But unlike electricity companies, DynamoDB also allows you a no-limit reads/writes per second mode. This option of using a DynamoDB table with no limit on read/write throughput is referred to as On-demand Capacity Mode.

Maximum partition throughput?

Partition-throughput

Maximum table throughput?

The maximum available capacity for the table depends on the total number of partitions. The number of partitions is controlled by DynamoDB for optimal/uniform distribution of your data.

In the on-demand mode DynamoDB continuously monitors the capacity usage and adjusts the number of partitions seamlessly to accomodate demands of the workload.

When a user requests for higher throughput in provisioned mode, DynamoDB adjusts the number of partitions seamlessly.

table-throughput-capacity

Throttling

Applications experience rejection of read/write requests if the usage exceeds available capacity.

throttling