Why noSQL ?
From past few years (after 2009) we are seeing high trend towards noSQL databases. Many big enterprises are exploring option for moving services to noSQL databases and many already did.
Its not that existing Oracle databases cannot support the system. We have many rich features and products from Oracle which can be made to work together to support huge internet applications. But there are many vantage points to consider when we are designing a data store for a system. Among those include availability, cost, performance, scalability etc.
Every system is made of many small services and when system grows bigger, design is made decentralized and service oriented. Data stores are sharded to store information related to service rather than entire system. With this change in architecture even small data store solutions to support individual service is good enough. System will look like having many small services with there own data stores and services can talk to each other via independent API. This way we achieve a goal of isolated services and at the same time make sure data is exchanged to represent business flow.
With such architecture in mind, every services can design and choose the database solution depending on the type of data it supports. Representing every type of data into relational form and storing them in relational database is not a efficient option. That is why enterprises are analyzing data and choosing data store wisely to support there data. More over with smaller data store requirement to support only the required service (rather than entire system), one can always look for cheaper data storage solution especially for tire 2 or tire 3 services.
Few more reasons for considering noSQL data storage solution would be:
- Data Velocity – Huge data getting generated in less time
- Data Variety – Structured, semi-structures and unstructured
- Data Volume – Terabytes and petabytes of data
- Dynamic Schema – Flexible data model
- Auto-sharding – Horizontal scalability
- Continuous Availability
- Integrated Caching
- Replication – Automatic replication to support high availability
- Dynamic provisioned throughput
This is one of the simplest form of data storage solution where data is stored in the form of key-value pair
I have presented the dynamoDB architecture, features and limitation.
You can view the presentation on slideshare - www.slideshare.net/advaitdeo/dynamodb-presentation-31000206
Hope this helps !!