Question

Difficulty: MediumHigh-Performing Database Solutions

A solutions architect is designing the database layer for a global IoT tracking system. The system must ingest 60,000 write operations per second with sub-millisecond database response times, and handle 150,000 read operations per second for active trackers. The read traffic is highly repetitive as users frequently check the status of the same package. The write traffic consists of location updates associated with a monotonically increasing batch sequence number. Which database architecture should the solutions architect choose to meet these performance requirements while preventing write throttling and minimizing read latency?

  1. Use Amazon DynamoDB with a partition key based on a unique tracker ID (UUID) and a sort key of the timestamp, and deploy an Amazon ElastiCache for Redis cluster to offload repetitive read traffic.Answer
  2. B
    Use Amazon DynamoDB with a partition key based on the batch sequence number to ensure data is written sequentially, and deploy Amazon DynamoDB Accelerator (DAX) to cache all write operations.
  3. C
    Use Amazon Aurora PostgreSQL, configure RDS Read Replicas to scale the read operations, and configure the application client to automatically failover write operations to the read replicas if the primary instance experiences high utilization.
  4. D
    Use Amazon DynamoDB with a partition key based on a unique tracker ID (UUID), and configure a Global Secondary Index (GSI) with the batch sequence number as the partition key to handle the write traffic directly.

Answer

Use Amazon DynamoDB with a partition key based on a unique tracker ID (UUID) and a sort key of the timestamp, and deploy an Amazon ElastiCache for Redis cluster to offload repetitive read traffic.
The correct architecture uses Amazon DynamoDB with a high-cardinality partition key (tracker ID UUID) to distribute writes evenly across partitions and prevent throttling. It also uses an Amazon ElastiCache for Redis cluster to cache highly repetitive read requests, delivering microsecond response times and lowering overall database resource consumption.

Step-by-Step Solution

1
Analyze the access pattern and write volume requirements.
The application requires ingesting 60,000 writes per second, which requires distributing the load across multiple partitions to avoid throttling.
DynamoDB partitions data based on the partition key. A uniform distribution prevents hot partitions.
2
Select the correct partition key strategy for DynamoDB.
Using a unique tracker ID (UUID) ensures high cardinality, while a sequential batch number would concentrate all writes on a single partition key.
Monotonically increasing keys are a well-known anti-pattern that limits throughput to a single partition's maximum capacity.
3
Evaluate read optimization for repetitive queries.
Caching repetitive reads using ElastiCache for Redis offloads the traffic from the database layer, offering microsecond response times.
Caching repetitive reads protects the primary database from read scaling bottlenecks and reduces operational costs.

Key Concept

Partition key cardinality and caching strategies for high-throughput database workloads.
Rate this question