[This article was written by dewayne]
Gigaspaces XAP has long set the standard for in-memory computing and high performance, horizontally scalable data storage. The most recent major release, XAP 10, takes In Memory Computing to another level by adding native flash memory integration, as well as several other important enhancements, outlined below. Most importantly, with XAP 10, another category of random access memory is added to the mix, which allows for the construction of high performing systems at a scale previously not possible.
Off Heap Flash Storage Add-on– XAP MemoryXtend
XAP users are familiar with the ability of XAP to interface with conventional disk based storage via its pluggable space synchronization technology. In this model, active data is hosted in RAM by XAP, and a backing data store (relational or NoSQL) is updated asynchronously via a read-through/write-behind algorithm.
XAP 10 is another beast entirely. It enables usage of flash memory as off-heap storage (We call it XAP MemoryXtend add-on). On a per-space basis, data in the XAP grid is actually stored in flash, whereas only indexes are stored in memory in order to enable ultra fast searching. Also, a portion of RAM can be designated as an LRU cache for flash.
The net result of this integration is to permit scaling previously not possible for in-memory grid technology. Previous practical limits that were in the tens of gigabytes per node are now in the multi-terabyte per node range, with no impact on the JVM garbage collector. Flash memory is accessed on the node local to the indexes for the data, providing another tier of storage between RAM and Disk. In fact, for many applications, the need for a backing database is eliminated entirely.
An added benefit is the greatly enhanced load times for large grids by eliminating contention and network traffic to a centralized data store. Now systems can be architected with the proper storage in the proper role, consisting of ultra fast RAM for ultra low latency needs, flash for slight slower but more cost effective storage, and disk based data (SQL or NoSQL) if needed for everything else. GigaSpaces has partnered with Sandisk for this revolutionary solution and is providing attractive hardware incentives for those who POC the technology. MemoryXtendbasically allows you to Accelerate enterprise apps and store, process & analyze your big data in real time at a reduced TCO and with less commodity hardware. Read more about XAP MemoryXtend
Global HTTP Session Sharing
XAP 10 now supports using highly available, ultra low latency, and elastic data grid technology for session storage. Through a no-code configuration step, your existing JEE and .Net web containers can benefit from distributed session storage. This makes the web tier perform better, and eliminates the need to pin sessions to nodes so it can scale better. Not only does this blow the lid off the scale of RAM/Flash based storage of sessions, it does so at blazing speed—not to mention has support for delta updates, kryo serialization, compression, and SSO support. Read more about Global HTTP Session Sharing
XAP users are used to being able to perform distributed task execution to run code in parallel across the cluster. One application of this feature is to perform a map/reduce style operation to aggregate values across many partitions. In such an operation, for example to sum a field across object instances, a task might be broadcasted to all nodes to fetch all values on each partition, sum the partition, and then send the sum back to the caller to produce a final sum (the “reduce”). Alternatively, the XAP JDBC query might be enlisted to perform essentially the same operation. In XAP 10, aggregations get a big boost in performance and programmability. Now cluster-wide aggregations can be performed with a simple API call, and only the result returned to the caller. On the server side, aggregations are optimized by eliminating materialization of target objects. Standard SQL style aggregations are supported (e.g. min, max, average, count, and more), as well as compound aggregations (multiple simultaneous aggregations), and the “group by” operator.
Out of the box aggregation operators not sufficient for you? Not to worry. XAP 10 supports custom aggregation operators that you can write to fulfill your needs—available for both Java and .Net. Read more about Query Aggregations
XAP Deployment Management and automation
XAP 10 introduces a Cloudify recipe for managing and scaling XAP on virtual and physical hardware. Being a Cloudify recipe, it means that XAP can be easily run on the Cloud, and XAP can be managed along with other stack members. XAP 10 lets you scale, manage, monitor, and operate XAP and your entire stack with single web-based dashboard.
Prior to XAP 10, the standard initial load from a centralized data store required a fetch of the entire database to each partition, with irrelevant data discarded. This caused unneeded load on the data store, and slowed the initial load process. In XAP 10, the initial load can be configured on a class-by-class basis to only retrieve data relevant for the local partition. Read more about Initial Loads
The XAP 10 regex search capability has been enhanced to use indexes, greatly improving performance for text searches. For more details, see here: Read more about Query Free Text Search
The last new feature (there are others) I’ll mention is the addition of custom change operations. Rather than select from a prescribed list of operations, server side changes are now fully programmable, allowing the most efficient updates possible. Read more about Custom Change APIs
For other exciting new features not mentioned (and all the links above), go here: Read more about whats new
The lid of in-memory computing has truly been blown off with XAP 10, providing unparalleled scalability and cost effective use of different tiers of storage, all while adding industry leading in-memory compute capabilities for the highest performance possible. Download XAP 10 now and give it a test drive to see for yourself what it can do for you.