exam questions

Exam AWS Certified Solutions Architect - Professional All Questions

View all questions & answers for the AWS Certified Solutions Architect - Professional exam

Exam AWS Certified Solutions Architect - Professional topic 1 question 89 discussion

You need a persistent and durable storage to trace call activity of an IVR (Interactive Voice Response) system. Call duration is mostly in the 2-3 minutes timeframe. Each traced call can be either active or terminated. An external application needs to know each minute the list of currently active calls. Usually there are a few calls/second, but once per month there is a periodic peak up to 1000 calls/second for a few hours. The system is open 24/7 and any downtime should be avoided. Historical data is periodically archived to files. Cost saving is a priority for this project.
What database implementation would better fit this scenario, keeping costs as low as possible?

  • A. Use DynamoDB with a "Calls" table and a Global Secondary Index on a "State" attribute that can equal to "active" or "terminated". In this way the Global Secondary Index can be used for all items in the table.
  • B. Use RDS Multi-AZ with a "CALLS" table and an indexed "STATE" field that can be equal to "ACTIVE" or 'TERMINATED". In this way the SQL query is optimized by the use of the Index.
  • C. Use RDS Multi-AZ with two tables, one for "ACTIVE_CALLS" and one for "TERMINATED_CALLS". In this way the "ACTIVE_CALLS" table is always small and effective to access.
  • D. Use DynamoDB with a "Calls" table and a Global Secondary Index on a "IsActive" attribute that is present for active calls only. In this way the Global Secondary Index is sparse and more effective.
Show Suggested Answer Hide Answer
Suggested Answer: D 🗳️
Q: Can a global secondary index key be defined on non-unique attributes?
Yes. Unlike the primary key on a table, a GSI index does not require the indexed attributes to be unique.
Q: Are GSI key attributes required in all items of a DynamoDB table?
No. GSIs are sparse indexes. Unlike the requirement of having a primary key, an item in a DynamoDB table does not have to contain any of the GSI keys. If a GSI key has both hash and range elements, and a table item omits either of them, then that item will not be indexed by the corresponding GSI. In such cases, a GSI can be very useful in efficiently locating items that have an uncommon attribute.
Reference:
https://aws.amazon.com/dynamodb/faqs/

Comments

Chosen Answer:
This is a voting comment (?). It is better to Upvote an existing comment if you don't have anything to add.
Switch to a voting comment New
amministrazione
8 months, 3 weeks ago
D. Use DynamoDB with a "Calls" table and a Global Secondary Index on a "IsActive" attribute that is present for active calls only. In this way the Global Secondary Index is sparse and more effective.
upvoted 1 times
...
SkyZeroZx
1 year, 10 months ago
Selected Answer: D
The best database implementation for this scenario is D. This implementation uses DynamoDB with a "Calls" table and a Global Secondary Index on a "IsActive" attribute that is present for active calls only. This ensures that the Global Secondary Index is sparse and more effective.
upvoted 1 times
SkyZeroZx
1 year, 10 months ago
The other implementations are not as suitable for this scenario. For example, implementation A uses a Global Secondary Index on the "State" attribute. This means that all calls are indexed, even the terminated calls. This can make the index large and inefficient. Implementation B uses a relational database. Relational databases are not as scalable as DynamoDB. They can also be more complex to manage. Implementation C uses two tables. This can make it more difficult to manage the data. It can also be more expensive than using a single table.
upvoted 1 times
...
SkyZeroZx
1 year, 10 months ago
Here are the reasons why this implementation is the best choice: DynamoDB is a good choice for this scenario because it is a highly scalable and durable database. It can handle the periodic peak of 1000 calls/second without any problems. The Global Secondary Index on the "IsActive" attribute ensures that only the active calls are indexed. This helps to keep the index small and efficient. The "IsActive" attribute is a sparse attribute. This means that only the active calls have a value for this attribute. This helps to keep the index even smaller and more efficient. The historical data can be periodically archived to files. This helps to reduce the cost of storing the data
upvoted 2 times
...
...
hollie
2 years, 4 months ago
why not B?
upvoted 1 times
...
cldy
3 years, 4 months ago
D. Use DynamoDB with a "Calls" table and a Global Secondary Index on a "IsActive" attribute that is present for active calls only. In this way the Global Secondary Index is sparse and more effective.
upvoted 1 times
...
01037
3 years, 7 months ago
Davis correct
upvoted 1 times
01037
3 years, 6 months ago
D is correct
upvoted 3 times
...
...
Community vote distribution
A (35%)
C (25%)
B (20%)
Other
Most Voted
A voting comment increases the vote count for the chosen answer by one.

Upvoting a comment with a selected answer will also increase the vote count towards that answer by one. So if you see a comment that you already agree with, you can upvote it instead of posting a new comment.

SaveCancel
Loading ...
exam
Someone Bought Contributor Access for:
SY0-701
London, 1 minute ago