A logistics tracking application named PackTrack records real-time delivery status updates for packages. The underlying Amazon DynamoDB table uses `PackageID` as the partition key and `StatusTimestamp` as the sort key. A fleet monitoring dashboard needs to display all deliveries that are currently delayed. To retrieve this data, the dashboard runs a weekly batch process using a `Scan` operation with a `FilterExpression` on the `DeliveryStatus` attribute where the value equals `DELAYED`. As package volume increases, the scan operation consistently throws `ProvisionedThroughputExceededException` errors, causing the dashboard to load partially or fail entirely, despite the developer scaling up the table's read capacity units (RCUs). Which of the following is the most cost-effective and appropriate solution to resolve this throttling issue?
- Create a Global Secondary Index (GSI) with DeliveryStatus as the partition key and StatusTimestamp as the sort key, and update the dashboard to query the GSI instead of scanning the base table.Answer
- BConfigure AWS Application Auto Scaling to dynamically increase the provisioned Read Capacity Units (RCUs) of the base table to handle the capacity spike.
- CModify the dashboard batch process to run a parallel Scan with multiple segments executing concurrently to distribute the read load across partitions.
- DIntegrate an Amazon SQS queue to buffer the dashboard requests, and set the queue's visibility timeout to be shorter than the processing time to guarantee rapid message delivery.