Today we have a guest editorial from Phil Factor as Steve is on vacation.
I’m a fan of Ayende Rahien’s series of blog posts entitled ‘World’s Smallest No SQL Database’, a ‘fully functional, scale out capable, sharding enabled No SQL Key/Value store in less than 60 lines of code’ (he had to fit both client and server code into a single PPT slide)
He describes the development of this project as ‘literally just me throwing stuff off the top of my head’ to provide ‘very much a poor man’s solution’. It is hard to read it without smiling. Ayende (a pen-name of Oren Eini) knows a great deal about databases, being the power behind NHibernate and the creator of RavenDB. Besides this, he is a master of satire, and a great communicator.
There is no better way of illustrating the fundamental processes of a database by sketching them out in code. Ayende walks the reader through initial amazement and mirth through some interesting illustrations of the challenges involved in building real world databases. How do you make your database atomic, consistent and isolated? Ayende walks you through the processes. What is involved in dealing with concurrency? Click, click click, it is all done. Soon one gets the feeling that anyone can knock together a NoSQL database, and my goodness, you wouldn’t be the first to get that idea.
It is great fun, rather like building a working car out of lego bricks, and it is a powerful tuition aid. It reminds me of the ‘Small C’ compiler written by Ron Cain and James Hendrix (not the guitarist, sadly) and published by Dr Dobbs in 1980. It was a perfect way of learning how compilers worked, and a C in particular. It was an inspiration to a generation of programmers.