In the past few years, we have seen a huge change in trends in the space of databases. A new emerging trend has been the usage of NoSQL ("not only SQL"). NoSQL came into picture when developers realized the need for an agile delivery system which is easily able to process unstructured data. The system needed to be extremely dynamic and relational databases did not quite cut it. A relational database model may not be the best solution for all situations. An alternative, more "cloud-friendly" approach was to employ NoSQL instead. This is where Amazon DynamoDB and MongoDB come in handy.
NoSQL is a whole new way of thinking about databases. It is not a relational database. MongoDB, the most famous of NoSQL offerings, uses a documents model. A MongoDB database holds a collection which is a set of documents. Embedded documents and arrays reduce the requirement for joins, a key parameter for high performance and speed.
In January 2012, Amazon announced their NoSQL service, DynamoDB. While not the first in the league, it is definitely a game changer. Most people think of MongoDB as the epitome of NoSQL because of its ease of use compared to other databases. But it has major drawbacks in terms of data management.
5 features of Amazon DynamoDB that are very compelling as compared to its competitors:
Extending the application of analytics to a database has not been as easy. Ideally, we would just want to send a request to the database and have it send back the result when ready. But every NoSQL database has failed in this aspect. MongoDB has major limitations when running map-reduce jobs.
On the other hand, DynamoDB integrates with Elastic Map Reduce and reduces the complexity of analyzing unstructured data. This is a BIG plus
2. Relaxed vs Strong consistency
With Amazon DynamoDB, there is no need to hardcode replication of values. Once you make a choice, everything works like it should. Like all Amazon product offerings, read and write units can be adjusted based on actual usage. In our opinion, nothing beats this!
3. Ease of getting started
Amazon poses a real threat to competition by offering a hosted solution. If you have an AWS account, getting started with DynamoDB is as simple as making a single API call! With other NoSQL solutions, the developer must have the right servers, installations and configurations. With DynamoDB, they just need to concentrate on the application and let AWS handle the rest.
Amazon, like AWS, provides amazing performance with DynamoDB. They give single digit latency even on very heavy loads. All data is synchronously replicated across all availability zones AND there is NO downtime even while there are throughput updates! The use of SSDs is a real game changer for random reads and updates.
5. Pay for use
Amazon lets you buy operations per second capability rather than CPU hours or storage space. This removes a whole lot of complexity for developers who would otherwise need to tune the database configuration, monitor performance levels, ramp up hardware resources when needed. This provides users a fast and reliable storage space for their needs with costs that scale in direct proportion to the demand.
With all its advantages, even if we consider a few flaws DynamoDB does have, as a product it comes closest to fulfilling the promise of NoSQL compared to its competitors: Easy-to-use structured storage without the complexity of managing SQL servers and the reliability and performance benefits of scaling out.