Transactions and Scalability in Cloud Databases—Can’t We Have Both?
summary
Claim: Amazon adds full ACID transactions to DynamoDB without breaking scalability, availability or low latency. Implementation: new one-shot transactions API (transact_get_items, transact_write_items), a fleet of transaction coordinators that write to a persistent ledger (a DynamoDB table), a two‑phase protocol and timestamp ordering for independent serializability. Performance: writes cost ~4× a plain put (tens of ms) and scale with number of items in the transaction, not database size. Limits: no long‑running transactions, no MVCC, some mixed non‑transactional puts can be rejected; multi‑region serializability remains future work.
AI-written summary · about
chapters (22)
- 0:00Intro
- 1:50Cloud Database Services
- 9:28Transaction Properties
- 11:17Example: Money Transfer Statements
- 12:58Money Transfer Transaction
- 13:22Transactions and NoSQL Concerns
- 17:03DynamoDB Transaction Goals
- 18:50Standard Approach
- 24:04Limitations of Single-shot Transactions?
- 25:26Shopping Example
- 27:30DynamoDB Operation Routing
- 31:30DynamoDB Transactions Architecture with
- 35:43Rules for Accepting Transactions
- 38:02Accepting New Write Transactions
- 41:53Accepting Concurrent Write Transactions
- 44:43Ordering Transaction Execution
- 48:31Accepting New Read Transactions
- 51:53Non-transactional Operations
- 52:43Non-transactional Writes
- 54:28Non-transactional Reads
- 57:00Operational Benefits of Timestamp Ordering
- 58:50Scalability Concerns Revisited
related talks
24mDistributed Transactions at Scale in Amazon DynamoDB
20mAmazon DynamoDB: A Scalable, Predictably Performant, and Fully Managed NoSQL...
30mBuild for Scale, Performance With Feature-packed Amazon DynamoDB
37mDynamoDB in an EDA World
47mBeing transactional in 2019 - what does this actually mean?
35mAmazon Aurora DSQL: Scalable, Distributed Relational Databases
01h 00mDistributed transactions implementation trade-offs
01mDon't Drop ACID - Transactions in Distributed NoSQL
