Over the last eighteen months as part of my day to day software development activities I have been thinking more and more about application storage requirements and how these are satisfied. For most application developers, myself included until recently, when we need to persist data, an almost reflex reaction has been to use a relational database. With the developments over the last few years and now maturity of alternative storage solutions it is now my firm opinion that there are many potentially more appropriate alternatives. SQL databases have remained unchallenged and the only adopted storage solution for too long.
Some of the alternatives, such as Redis, MongoDB, Cassandra, neo4j are already widely in use and provide, in the correct context, better storage solutions than SQL databases. In adition there are the storage solutions from cloud computing providers such as Amazon, Google and Microsoft who offer variations of big table storage and blob storage for example.
There are many reasons these type of solutions are more appropriate in certain situations. For example, the sheer scale of the data, the data maybe document oriented, the relationships between the data such as social graphs may not be best suited to storing in a relational database. In addition much of this data is read only, not requiring the transactional integrity that comes with traditional database servers. The likes of Google, Amazon, Microsoft, Facebook, Twitter use a range of storage solutions, not always because of performance/scale, but because of suitability. In the UK, guardian.co.uk moved to MongoDB from a relational database and have reported many many benefits in doing so.
It will be interesting over the next year or two to see how this plays out. We have seen programming languages change over the last 30 years but not data storage. My belief is that the time has come for application architects and developers to consider alternative storage solutions for their applications and include them when appropriate. SQL database will still have a role to play but certainly not the almost exclusive role they have today.