Dynamodb hard
In modern DynamoDB architecture, how does 'Adaptive Capacity' respond to an imbalanced workload where 90% of traffic hits 1% of the physical partitions?
- A It automatically re-hashes the entire table to a new Partition Key to spread the load.
- B Dynamic Redistribution: It allows a 'Hot' partition to consume unused capacity from other idle partitions within the same table, permitting it to exceed the 1,000 WCU/3,000 RCU limit as long as the total table throughput is available.
- C It migrates the hot partition data into a dedicated DAX cluster memory space automatically.
- D It rejects all writes to the hot partition for 60 seconds to allow the SSDs to cool down.
Answer: B. Dynamic Redistribution: It allows a 'Hot' partition to consume unused capacity from other idle partitions within the same table, permitting it to exceed the 1,000 WCU/3,000 RCU limit as long as the total table throughput is available.
Historically, 'Hot Partitions' were a hard ceiling (3,000 RCU / 1,000 WCU). Adaptive Capacity solves this by decoupling the physical capacity from the logical throughput. It can shift 'budget' from idle shards to the hot one, allowing for skewed traffic patterns. However, it is not a silver bullet for 'Extreme Hot Keys' that exceed the physical limits of a single SSD server.
One system design question a day, with spaced repetition so the ones you miss come back.
Get the appRelated questions
- DynamoDB has a strict 400KB limit on the size of a single item. What is the recommended design pattern if you need to store larger documents (e.g., 5MB PDFs)?
- What is the primary role of the 'Partition Key' in ensuring DynamoDB's infinite horizontal scalability?
- Why is the `Query` operation generally preferred over `Scan` for production workloads in DynamoDB?
- DynamoDB is a 'fully managed' serverless database. What is a primary operational benefit of this model for an engineering team?
- In 'Provisioned Capacity' mode, how is the performance budget of a DynamoDB table defined?
- When would an architect choose to implement DAX (DynamoDB Accelerator) in front of an existing DynamoDB table?