GigaSpaces XAP version 10, the latest release of the industry leading in-memory computing platform, introduces several new significant features of which MemoryXtend™ is the most ground breaking. This post covers a real world example of an application of MemoryXtend, and how it can reduce TCO and even save lives.
XAP MemoryXtend merges the traditional RAM based storage used by data grids with the non-volatile storage and performance offered by flash memory. With MemoryXtend, data can be stored in RAM, flash, or any combination of both, to maximize return on investment and apply the proper kind of storage to the appropriate system need. Previously for systems with data storage needs beyond the practical scale of the data grid, persistent storage has been the job of the disk based data store, either SQL or NoSQL. This left a significant price/performance gap, with RAM being at the high end, and disk at the very low end. XAP MemoryXtend seamlessly bridges this gap by adding a new storage tier (flash) that fills the gap between these two extremes.
XAP MemoryXtend doesn’t simply treat a flash device as a disk or database replacement, it integrates flash on a per node level as a form of off heap storage. GigaSpaces has done this by partnering with SanDisk and leveraging the SanDisk ZetaScale software to provide a highly optimized, vendor neutral interface to flash memory. When a space is running in MemoryXtend mode, reads/queries and writes are transparently forwarded to flash memory, whereas object metadata, including indexes, is kept in RAM. The result is a fully distributed persistent memory model, that keeps in-memory speeds for searching, delegates data storage to local flash memory, and provides much higher (terabytes per node) vertical scale without garbage collection issues. Further performance tuning is possible by designating a portion of RAM to serve as an LRU cache for flash.
Some important effects of the new architecture:
* Scale: vertical scale per node greatly increase (10x or more)
* Persistence: first native persistence for XAP without an external database.
* Performance: 10x faster than a typical database for storage. Initial load vastly improved.
* Availability: persistent data replicated on multiple physical nodes.
* Features: all XAP features (transaction, event processing, HA, etc..) are available and unaffected.
Real World Use Case
Recently, Wolters Kluwer evaluated XAP MemoryXtend as a way to solve a business problem that has a real impact on people’s lives. They provide a system that evaluates patient treatment using a distributed rule based system hosted in XAP and backed by a relational database. The system has been operational for years with great success, currently serving one out of every 3 hospitals in the US. You can read the full case study about how Wolters Kluwer implemented XAP MemoryXtend here.
An aspect of any system is upgrades. Unlike XAP itself, the deployed system cannot be upgraded in place, causing periodic system downtime. Since the system is providing real time patient recommendations and alerts, any downtime can effect patient outcomes. Because of this, the company came to MemoryXtend for the purpose of reducing downtime, rather than scaling (although that will also be of value).
As mentioned earlier, one benefit of MemoryXtend is reduced system initial load time. This is a by-product of the elimination of the relational database as the source of data for the load. Note that for other reasons it was desirable that the database not be eliminated from the architecture, a configuration fully supported by MemoryXtend. When a large grid loads from a relational database, the database becomes a bottleneck as all partitions read from it simultaneously. In the case of our subject company, the scale of the grid was 2 terabytes, and the initial load was taking over 40 minutes. With a MemoryXtend configuration, holding 2 terabytes of flash memory, the load time was reduced to under 2 minutes. This dramatic improvement on such a system can literally save lives, not to mention the more mundane concerns such as high availability.
GigaSpaces XAP 10 adds the ability to utilize flash memory, in addition to (or in replacement of) the traditional disk storage backed RAM data grid. Flash fills a huge price/performance gap between disk and RAM, and enables XAP to scale vertically far beyond previous limits. This new capability enables architectures that can be finely tuned based on data requirements and storage price/performance to an unprecedented level. All while maintaining XAPs elasticity, transactionality, and high availability.