RAMClouds – an evolutionary concept in Cloud Computing

Image from http://www.flickr.com/photos/chrisdag/

If you ask an architect or a performance engineer for ways to speed up any application, caching is most likely to be the first response. In this, an application in its entirety or at least the most frequently executed part is cached in the RAM of a server leading to faster response and hence faster throughput. This of course becomes difficult as applications become large and loads increase. RAMCloud, a concept promoted in this paper by Stanford Computer Science Dept, offers an evolutionary solution. Essentially it argues for putting together large number of DRAM units and using cloud computing techniques to provide scalability and reliability in spite of failures. The performance gain is revolutionary at 100 – 1000x. All large websites would benefit substantially from such an approach. However, as costs also go up 50 – 100x, the overall impact is only evolutionary.

To put things in perspective, let’s consider Facebook which has been repeatedly cited in the paper. Would the users like to have the pages load 10x faster – maybe yes but would it be discernible from 1000x? My guess is No. Furthermore, speedup at the server doesn’t always translate to better experience for the user due to network issues. So the gains in user experience seem doubtful. Facebook would certainly also gain from the increased throughput but that needs to be compared with the cost. This is where the argument for RAMCloud comes apart. A RAMCloud is 50 – 100X costlier on a per bit served basis. This means that the cost increases even after taking into account the throughput jump. On the whole Facebook would probably stick with its disks.

So why do I call this evolutionary? Using caching to speed up performance is a standard technique and more of it would happen as DRAM sizes increases and costs drop. Disks would still be relevant but increasingly the load would shift towards RAM. This means that cloud computing providers have to offer more RAM per computing unit. This has already been happening – look at the Large instance from Amazon. This trend is likely to continue and sooner or later, an Amazon service may start offering just RAM – a RAMCloud.

Image courtesy Chrisdag

Interesting Reads

Challenges to India’s growth story

India’s path to being an economic superpower and the challenges on way are commonly discussed topics. The most frequently cited challenge is the poor infrastructure. Somehow another one, social inequity and internal strife, is seldom discussed in spite of it being stated as a larger challenge by many reports. Its easy to understand why not, as most of the urban people and urban media look at only what is around them – out of sight, out of mind. At best we celebrate a Bihar when it nearly tops the GDP growth charts or moan the loss of lives when massacres happen . Arundhati Roy’s long article in Oulook gives a much needed perspective from the other side. This also helps explain why there are divergent views within the Government on tackling Maoists. I think this is a macro trend that all of us should pay attention to.

Wall Street as cloud computing vendor

Here is an intriguing story on Wall Street looking at sub letting their data centers during off hours to cloud computing providers. Its intriguing because it is silent on the supply side concerns of security. Its also intriguing from a demand side; why would a cloud computing provider want fluctuations in its capacity during a single day? I don’t know these firms but this sounds like a dream many CIOs have: turn a cost center into profit center. Most of the times, they fail to win CEO approval as RoI numbers never measure up and also because a cultural change is required.

While you are on that site, do check out the feature on World’s largest Data Centers. Microsoft has 3 in the top 10 while Google and Amazon have none.

New Computing Technology

HP Labs has used memristors, that they discovered about 2 years ago, to develop memory that can compute too. They’ve also been able to demonstrate switching times that make this technology more practical. A memristor, to put simply, is a device that uses presence/absence of resistance instead of electric charge for computing/memory. The article speculates on some usage. An interesting implication is that computers/devices made of memristors can be just switched off/switched on like a light bulb. However, its not clear what changes would be required in software designs of today for this to work. A disruptive tech to watch out for in the next decade.