There are many in-memory data grid (IMDG) products in the market with a wide variety of capabilities and functionality. One of the challenges that IMDG products have to deal with is the management of server RAM, i.e. memory management. As objects are allocated and de-allocated in RAM, the IMDG must keep track of them and free the associated memory as it becomes available. One advantage of using Java (and one of its original top selling points) was that a developer using the language to write a program no longer had to deal with memory management since Java took care of that automatically via the JVM garbage collection mechanism. However, one drawback of Java garbage collection is that as the Java heap grows, garbage collections take longer and so do JVM pauses, thus affecting and slowing down all Java threads.
To address this drawback, WebSphere eXtreme Scale (WXS) provides the ability to allocate machine RAM (memory outside the Java heap) as the data grid. This means that the Java heap is not used to cache data and instead real machine memory, i.e. native memory, is used. Java heap sizes can be kept small and Java JVM pauses, due to garbage collection, have minimal effect on the overall performance of WXS. This feature is called eXtreme Memory or just XM.
XM offers many other benefits like:
- Data stored in the WXS IMDG is kept in native memory
- WXS provides the most complete implementation of in memory storage for IMDG
- stores keys, values, and indexes
- many operations are performed almost entirely within native memory
- It allows large (48G or larger in size) native heaps per process
- stores the same amount of data with fewer processes
- While avoiding response time spikes of garbage collection
- Data can spill over to disk
- This can be fast if you have fast SSD – less expensive option to RAM
- It may also be useful in development environments
- Available on x86-Linux
- Available now on the Power Systems platform: POWER8 running LE (Little Endian) Linux
- Available soon for POWER7 and POWER8 running AIX or BE (Big Endian) Linux — try it out in December 2015
In addition, WXS supports x86-Linux (Asianux, RHEL, SUSE, Ubuntu), Windows, z/OS, HP-UX, Solaris Sparc, x86-Solaris, AIX. No other IMDG product in the market supports this many platforms. In addition, not only does WXS performance excel when compared to other IMDG products (WebSphere eXtreme Scale – a better choice than Infinispan), but also IBM Java has been enhanced to exploit features in the Power chip to improve its performance. WXS is already very fast on x86 but it’s even faster on Power! As a quick sample of how fast WXS XM performance can be, here is a graph showing WXS XM performance on a Power S824 machine:
The graph shows the number of transactions per second for different message sizes. For 1k-byte messages, the server can handle 692,880 transactions per second and for 100k-byte messages, 267,528. It is worth mentioning that the 100k results were network-bound at 40% CPU consumption.
WebSphere eXtreme Scale is a tremendously fast IMDG technology on any of its supported platforms. Moreover, WXS eXtreme Memory allows you to break through the performance limitations of using the Java heap for object caching. Finally, the Power platform offers very high performance execution of IBM Java, which no competitors can provide, making it an excellent platform to run WebSphere eXtreme Scale.