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