We've got to maintain a certain level of 'street-cred'.

How NoSQL and RDBMS Complement Each Other

The IT world more or less has traditionally run on Oracle, MySQL, SQL Server, Postgres, and many more relational databases that we are omitting for the sake of space. The relational database model is certainly not going to go away any time soon and there is no reason to assume that it would. This would be like expecting posters bearing samples of C and Fortran to be occupying space in a computing museum a few sections down from burnt-out vacuum tubes. These languages, of course, are the main choices in applications such as an embedded OS or aerospace-level math routine.

Similarly, the RDBMS model is foundational. It was designed the way it was as it was optimal for inter-office enterprise scale, and of course became the default choice for web sites and web applications. Applications at moderate scale (and even smaller ones that use bare-bones solutions such as SQLite) do quite well with an RDBMS.

However, there is a transition point with many web applications and high transaction volume technologies in which NoSQL (such as Cassandra or MongoDB) can yield a better solution. This, of course, is not like simply replacing a bulb – it is a major undertaking that needs assessment in terms of its long term value. Furthermore, it requires a staged approach and often some clever engineering.

To illustrate, let us discuss Netflix’s relationship with non-relational data as it made the transition to being a cloud-oriented company. Netflix transitioned from an Oracle-based central store to Amazon SimpleDB and eventually brought Cassandra into the picture.

Slides 36 and 37 of this presentation discuss Netflix's need for NoSQL. The central database model is looked upon as one of many “anti-patterns” and is marked by the lack of redundancy and the need for downtime to support schema changes. This is in contrast to the use of distributed key-value stores. Of course, when SimpleDB came into the fold, as illustrated on slide 54, its purpose was to serve the essential application data as part of the newer, more scalable AWS-based infrastructure. Oracle, however, still existed within the Netflix Data Center for purposes that still mapped over better to the RDBMS model.

What we can take away from this is that NoSQL should be thought of as an expansion of the development toolset and a way to make previously impossible solutions possible. Of course, many organizations are leaning towards applications that favor NoSQL, but there will almost always be a place for an RDBMS somewhere in the architecture.