Memory is the new disk! With disk speeds growing very slowly and memory chip capacities growing exponentially, in-memory software architectures offer the prospect of orders-of-magnitude improvements in the performance of all kinds of data-intensive applications. Small (1U, 2U) rack-mounted servers with a terabyte or more or memory will be available soon, and will change how we think about the balance between memory and disk in server architectures….
… Disk will become the new tape, and will be used in the same way, as a sequential storage medium (streaming from disk is reasonably fast) rather than as a random-access medium (very slow). Tons of opportunities there to develop new products that can offer 10x-100x performance improvements over the existing ones.
It didn’t take long for this vision to become a reality through the work that we’re doing these days with Cisco. By integrating GigaSpaces XAP with the Cisco UCS machine we are demonstrating our ability to easily load hundreds of gigabytes into a single box, and to scale linearly with growing capacity without any performance degradation. This is a great example of how middleware that was built for memory from the ground up, combined with hardware that was equipped to provide terabytes of memory in a single box, can be game changing.
This exciting combination makes it possible to manage 15-20x the amount of data in-memory, per partition. This, in turn, makes it possible to store the entire application data set in‑memory, and gain not only 10x the performance but also great simplicity, because the application no longer needs to deal with a *miss* ratio in the cache; and, at the same time, there are no consistency issues because all the data resides in-memory.
The table below was taken from a recent Stanford research paper — The Case for RAMClouds. It provides estimates of the total storage capacity needed for one-year’s-worth of customer data for a hypothetical online retailer and a hypothetical airline. In each case the total requirements are no more than a few terabytes, which would fit in a modest-sized RAMCloud. The last line provides the estimated cost for purchasing the necessary RAMCloud servers :
As the table illustrates, storing the entire annual data of an online reservations system or an online retailer can be mapped completely into memory. The combination with UCS makes the deployment of such a system simple to manage and economic. The online retailer’s annual data can fit into 4 UCS chassis, and the entire annual data set of the airline reservation system can fit into 2 UCS chassis!
The Next Big Thing -– In-Memory Elastic Database
In one of my recent talks, Elastic Data on the Cloud: Hype or Reality? I also discussed the trend in the context of the cloud database. I spoke about how the addition of elastic middleware — which enables allocation of data service on-demand, sharing that data with other tenants of the application, and provides built-in dynamic scaling as needed — will make this sort of deployment significantly simpler and more economical.
In my last CTO Note I described our current progress with our 7.1 XAP release and our plans toward the future 8.x release:
Here is what we’ve done to take XAP even closer to this vision, in the recent 7.0 release and the upcoming 7.1 release (slated for April 14, 2010):
- Fast network –- XAP 7.1 will make dynamic scaling simple by enabling you to set up distributed system with a single API call. This not only provides a simpler API for developers, but also eliminates manual work for sizing, provisioning, and configuration at the deployment stage, and reduces the maintenance effort by automatically adjusting cluster configuration in response to changing loads, machine failure, and other events.
- Large memory -– XAP can manage terabytes of data in-memory. It can even manage up to 384 GB in a single VM, through its certification for use with Cisco UCS, coming up in version 7.1.
- Multi-core -– as of version 7.1, XAP comes with new concurrent transaction management for better utilization of multi-core processors. This comes on the heels of major improvements in multi-core utilization in version 7.0, which resulted in a 300% performance improvement on the Intel Nehalem processor. New benchmarks will shortly be released showcasing the performance of XAP 7.1 on Cisco UCS, which is based on the latest multi-core technology.
- Virtualization and multi-tenancy –- XAP 7.1 is the first middleware platform with built-in multi-tenancy, making it extremely simple to share applications on the same resources with full isolation and enterprise-grade security. This dramatically cuts the cost per user for software vendors that use XAP for SaaS-enablement, because it enables them to cram more users onto the same hardware resources. Full VMware integration is also available, enabling multi-tenancy throughout the entire virtualized application stack.
Our 8.x release will include more exciting stuff in the same direction, with JPA support and continuation of our work to make our elastic middleware simpler. We will also be releasing a tighter packaging with Cisco UCS that will make large data deployments fully optimized from the application down to the hardware.