One of the biggest killer-arguments in favour of NoSQL databases is that they are supposed to natively scale horizontally, unlike traditional relational databases. Personally, I believe that you still have to be an excellent architect, in order to actually take advantage of this “native feature” of some NoSQL databases. You can still design a system that goes terribly wrong. On the other hand, it’s nice to read a success story of a medium-scale application (25 photos, 90 likes per second) that achieves horizontal scaling using sharding techniques on a Postgres SQL database. After all, it is possible. Read the full success story here:
“The Cloud” is probably the biggest IT buzzword in 2011. It may as well be as meaningless and as short-lived as its predecessors “web 2.0” and “dotcom”, but clearly, the big companies are aiming for “The Cloud” right now. After Microsoft’s all-out marketing campaign for Windows Azure and its sub-product SQL Azure, there is now a comparable Google offensive on Google Labs:
OK, marketing-wise, the term “offensive” is way over the top: Google Labs products often look quite geeky and by far less professional than those by Microsoft. But the approach is interesting, especially the choice of using MySQL as a SQL platform in the cloud. NoSQL was a response to traditional SQL’s inability to scale horizontally. If you buy a big box for your Oracle database, you’ll add memory and CPU power to make it scale vertically as your application grows. You’ll fine-tune your SQL, preferably with jOOQ ;-), to prevent performance bottlenecks in single queries. You’ll pay expensive DBA’s for the job.
When SQL goes to the cloud, however, horizontal scaling might become more realistic… I’m very curious to see where this goes. Clearly, jOOQ should be one of the first Java database abstraction tools to fully support Google Cloud SQL as well as SQL Azure.