Chapter 13. Programming for the NoSQL database service: DynamoDB
This chapter covers
- Advantages and disadvantages of the NoSQL service DynamoDB
- Creating tables and storing data
- Adding secondary indexes to optimize data retrieval
- Designing a data model optimized for a key-value database
- Tuning performance
Most applications depend on a database where data is stored. Imagine an application that keeps track of a warehouse’s inventory. The more inventory moves through the warehouse, the more requests the application serves, and the more queries the database has to process. Sooner or later, the database becomes too busy and latency increases to a level that limits the warehouse’s productivity. At this point, you have to scale the database to help the business. This can be done in two ways:
- Vertically—You can add more hardware to your database machine; for example, you can add memory or replace the CPU with a more powerful model.
- Horizontally—You can add a second database machine. Both machines then form a database cluster.
Scaling a database vertically is the easier option, but it gets expensive. High-end hardware is more expensive than commodity hardware. Besides that, at some point, you can no longer add faster hardware because nothing faster is available.