People have begun to realize the enormous gap between the relational database abstraction and the way people actually think about information. To be clear, I am not suggesting that relational databases will stop being used or that they are going to go away, but that developers are going to stop thinking of their data in relational database terms.
Everyone from regular users to sophisticated developers thinks about information in a pretty simple way. There are objects, and there are connections or relationships between objects. For example if you have two objects, a cup and a table, the relationship between them might be “sitting on”, indicating that the cup is sitting on the table.
What makes this model so sturdy is that we can continuously add new objects: tables, cups, chairs, floors, table cloths, etc. And we can add infinite relationships, such as sitting on, sitting under, covering, etc. Computer scientists, and now, thanks to Facebook, everybody else, refers to this structure as a graph. New data models such as the graph provide new ways to think about persisting data.
The death of the relational database means the death of the relational database *abstraction* as a way that programmers think about data. What programmers need is to model data in the most natural way possible, and we are starting to see storage abstractions that are closer to how humans think instead of how computers need to.
Faced with the costs of vertically scaling their relational database systems, developers are increasingly turning to Apache Cassandra as an alternative. Cassandra solves the scaling problem by partitioning data, expanding horizontally and promising replication consistency. Effectively utilizing Cassandra requires that developers take different approaches to the ways they model data used in their applications. This presentation will explain how Cassandra achieves scale and reliability, and give an example of porting a SQL schema to Cassandra.
11th–15th March 2011