Fundamental advantages of RAMCloud for an application
- Any data access other than local RAM will be faster with RAMCloud (even ~75-85us with SSD)
- Enables very high rates of queries, at least an order of magnitude faster than MySQL per box
- People have reported O(20,000) for MySQL, probably really basic cached queries
- More complex will likely be significantly slower, and if anything has to come from disk your of course hosed
- As a consequence of the above, app writers can feel free to write dependent sequential queries if needed and it will still be fast
- _Potentially_ no need to name every one of your queries and deal with synchronization when interacting with a cache layer like Memcached
- Able to get this speed across your entire dataset, not just areas with locality
Lets consider some application categories that run in a datacenter/cloud setting:
- Synthesizing Hardware (Cisco, Nvidia)
- cpu bound?
- Rendering (Pixar, ILM, Disney)
- cpu bound?
- Simulation (weather, nuclear)
- cpu bound?
- Transactional (stock exchange, banks, credit card processing)
- Must be a 'to disk' component here including sync, could be a win
- MapReduce, batch processing
- Could be interesting, depending on the dataset size
- Web related
- Content Delivery (CDN)
- Pages requiring many low-locality queries returning small (define) sized data (Facebook, Myspace, Google, Yahoo, Ebay, etc)
- Pages requiring many high-locality (or small dataset) queries returning small (define) sized data (CNN, Slashdot)