# The DynamoDB paper

DevFeed: [The DynamoDB paper](<https://devfeed.tech/articles/the-dynamodb-paper-12521.md>)

Original publisher: [Read original article](<http://brooker.co.za/blog/2022/07/12/dynamodb.html>)

Author: Marc Brooker

Published: 2022-07-12T00:00:00Z

Content type: article

Language: en

Sources: [Marc Brooker's Blog](<https://devfeed.tech/sources/marc-brooker-s-blog.md>), [Marc Brooker's Blog](<https://devfeed.tech/sources/marc-brooker-s-blog-2.md>)

Topics: [Amazon DynamoDB](<https://devfeed.tech/topics/amazon-dynamodb.md>), [NoSQL](<https://devfeed.tech/topics/nosql.md>), [Database](<https://devfeed.tech/topics/database.md>), [systems](<https://devfeed.tech/topics/systems.md>), [API](<https://devfeed.tech/topics/api.md>), [Dynamo](<https://devfeed.tech/topics/dynamo.md>), [Amazon Web Services](<https://devfeed.tech/topics/aws.md>)

Tags: [amazon-dynamodb](<https://devfeed.tech/tags/amazon-dynamodb.md>), [api](<https://devfeed.tech/tags/api.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [aws](<https://devfeed.tech/tags/aws.md>), [customers](<https://devfeed.tech/tags/customers.md>), [database](<https://devfeed.tech/tags/database.md>), [dynamo](<https://devfeed.tech/tags/dynamo.md>), [performance](<https://devfeed.tech/tags/performance.md>), [scale](<https://devfeed.tech/tags/scale.md>), [systems](<https://devfeed.tech/tags/systems.md>)

## AI overview

The article discusses the DynamoDB paper, highlighting the database service's massive scale, evolution to meet customer needs, and lessons from real-world distributed-system design. It explains how non-uniform workloads caused partition hot spots and throttling despite sufficient total provisioned throughput, and contrasts DynamoDB's architecture with the earlier Dynamo system.

## Source excerpt

The DynamoDB paper The other database called Dynamo This week at USENIX ATC'22, a group of my colleagues1 from the AWS DynamoDB team are going to be presenting their paper Amazon DynamoDB: A Scalable, Predictably Performant, and Fully Managed NoSQL Database Service. This paper is a rare look at a real-world distributed system that runs at massive scale. From the paper: In 2021, during the 66-hour Amazon Prime Day shopping event, Amazon systems ... made trillions of API calls to DynamoDB, peaking at 89.2 million requests per second 89 million requests per second is a big database by any standards (and that's just Amazon's use of DynamoDB)! What's exciting for me about this paper is that it covers DynamoDB's journey, and how it has changed over time to meet customers' needs. There are relatively few papers that cover this kind of change over time. For example: The uniform distribution of throughput across partitions is based on the assumptions that an application uniformly accesses keys in a table and the splitting a partition for size equally splits the performance. However, we discovered that application workloads frequently have non-uniform access patterns both over time and over key ranges. When the request rate within a table is non-uniform, splitting a partition and dividing performance allocation proportionately can result in the hot portion of the partition having less available performance than it did before the split. Since throughput was allocated statically and enforced at a partition level, these non- uniform workloads occasionally resulted in an application's reads and writes being rejected, called throttling, even though the total provisioned throughput of the table was sufficient to meet its needs. This is the kind of assumption in a system design--that splitting makes performance better--that's really easy to overlook when designing a system, and potentially difficult to fix when you're in production. A lot of what makes systems like DynamoDB so useful is