Review of a video from the 2012 Google I/O developer’s conference

By | July 10, 2012

The topic of this blog is over the video, SQL vs NoSql: Battle of the Backends that I watched among the videos of the 2012 Google I/O developer’s conference at the following link: https://developers.google.com/events/io/sessions

Before I delve into the actual content of the video and its discussion, I like to start going over the concept of Cloud. I think of Cloud as horizontally scaled environments that are available on-demand and get provisioned as it is required. NoSQL came to picture as the success stories of large scale web applications, like Amazon, Facebook, Yahoo and Google, demonstrate NoSQL shines over SQL where scalability is the matter of importance. There are many NoSQL databases in the cloud, among them are Amazon SimpleDB, Google Datastore which are known for their HA and concurrent services running over multiple data centers.

The presenters of this video by going over Google App Engine (GAE) which is a PaaS (platform as a service) for Google started their debate. Based on their presentation, Google App Engine is built upon Google’s infrastructure and easy to build, easy to scale, and easy to maintain as it has the advantages of NoSQL as well as relational database since Google App Engine connects to three main components: datastore, primary cloud SQL and storage APIs.

Google datastore is the Google storage infrastructure, it is built for scale both size and traffic, right now with over 2 Trillion operations per month, it has a fully managed ‘NoSQL’ solution so there won’t be any provisioning or scaling issues. Google Cloud SQL is the distributed relational database in the cloud. It is pure MYSQL in the cloud that supports the international support for database manipulation, SQL.

Based on their debate, Both support queries, transactions, consistency, scalability, management, schema, however Google datastore is great in the area of data scalability, management of solutions, and schema and for the application with the use case scenario of file sharing it can provide the best solution. On the other hand, from the stand point of powerful queries, atomic transactions and consistency Cloud SQL is a better choice and has the full support of off-the-shelf frameworks like Hibernate, JDO/JPA, Spring, Django, wordpress that depend on relational databases and therefore it works best in these use cases.

Obviously, Google App Engine has a sound place in the Internet technology and business, as it has the support for both NoSQL and relational databases. There are still lots of applications built upon relational databases to get benefit of powerful queries and aggregations, ease of use, in-memory operations and in-memory performance of a single machine while so many applications are migrating from a structured schema to a schema-less and move to getting benefit of NoSQL solutions for a bottleneck-free way of scaling out their workloads.