Question

Difficulty: MediumOptimizing Performance with Caching and DAX

A retail e-commerce company uses an Amazon DynamoDB table to store product inventory details. During a flash sale event, the product detail page experiences a huge spike in read traffic, resulting in `ProvisionedThroughputExceededException` errors on the DynamoDB table. To resolve this and reduce read latency, a developer deploys an Amazon DynamoDB Accelerator (DAX) cluster. However, despite deploying the DAX cluster, the table continues to experience throttling and read latency remains high. Analysis reveals that the DAX cache hit rate is 0%0\%.

Which two actions should the developer take to ensure the application successfully uses the DAX cache and resolves the throttling? (Select two.)

  1. Configure the application to use the DAX client SDK and point it to the DAX cluster endpoint instead of the standard DynamoDB endpoint.Answer
  2. Ensure the application performs eventually consistent read requests rather than strongly consistent read requests.Answer
  3. C
    Convert the application's Query operations into Scan operations to allow DAX to pre-fetch and store the entire table dataset in its query cache.
  4. D
    Increase the provisioned Read Capacity Units (RCUs) on the DynamoDB table and enable auto-scaling to absorb the read spikes.
  5. E
    Configure the application to authenticate with the DAX cluster by hardcoding the AWS access key and secret access key in the DAX client initialization code.

Answer

To resolve the issue, the developer must configure the application to use the DAX client SDK pointing to the DAX cluster endpoint, and ensure that read requests are eventually consistent rather than strongly consistent.
The correct options state that the application should be configured to use the DAX client SDK pointed to the DAX cluster endpoint and perform eventually consistent read requests. Because DAX operates as a write-through cache, applications must actively direct their API calls to the DAX cluster endpoint using the API-compatible DAX SDK. Additionally, DAX only caches eventually consistent reads. Strongly consistent reads are always passed through to the DynamoDB table directly, which continues to consume table RCUs and leads to throttling if not changed.

Step-by-Step Solution

1
Redirect traffic to the cache.
The application sends API calls to the DAX cluster endpoint using the DAX SDK client instead of querying the DynamoDB endpoint directly.
If the application continues to call the standard DynamoDB endpoint, the caching layer is bypassed entirely.
2
Review the consistency model of the read requests.
The application's queries are updated to use eventual consistency instead of strong consistency.
Strongly consistent reads bypass the DAX cache and are forwarded to the underlying DynamoDB table, causing continued resource consumption and throttling.

Key Concept

DAX endpoint configuration and consistency caching rules
Rate this question