With the onset of my career, RDBMS had been an integral part of all my application development and rightfully so. It was the natural choice for single or multi tiered-architecture till I joined AOL in 2001. Having worked extensively on Sybase, Oracle, SQL Server in the late 90s and not remembering the volume of traffic it served, I can say it pretty much served the need. Only in 2001 when I saw AOL Yellowpages not withstand the traffic with DB2, I came across non-traditional home grown persitent/non-persistent key/value data model. It took me time to comprehend it all then since I had my head wrapped around relational data model. Since 2001-2007, non-relational data model became The Defacto as data sources for web servers in any application that I designed or was part of. We had a data publishing process, conventionally called ETL that took the ingested data from the database and periodically published the data into one of the non-relational data model determined by the need and designed by us.
In 2007 with the Recipedia project that I undertook with my team, we chose LAMP stacked with APC and MemCache as the technology. With MySQL supporting simple replication combining Master/Slaves and geographically distributed over data centers, scaling was never a problem since I came across few products in late 2009 which just seemed complicated MySQL implementation with combination of partitioning and sharding but no cache (Monkey was made Godzilla). Under the stress of complicated solution and having to support it, I turned to my experience Non Relational Data Model and came across few, namely, redis, neo4j and cassandra. I will do my best to adapt one of these non-relational data model based on k/v pair either persistent or non-persistent in coming months. Will I succeed? Well the good word is, Ian Holsman and team are already using few of these as a choice in multi-projects across the organization.
My recommendation: Use non-relational data model and more specifically any k/v solution, combine that with cache as necessary and you will have a good start. cassandra, redis, vertexdb and neo4j are just few of your choices.
check out MongoDB (http://www.mongodb.org/display/DOCS/Home) too, it’s an attempt to combine the best qualities of both types of storage.
Hi Ian,
You are correct. I knew our friend businessinsider.com using it and having a press about it. Starting this week, I will start installing these no-SQL DBs and do some benchmarking between few and time permitting might post here too.
Highly appreciate your interest,
P