In-memory data grids (IMDG) have been around for over a decade now and there are commercial and Open-Source Software (OSS) versions of them. IBM WebSphere eXtreme Scale (WXS) is IBM’s in-memory data grid (IMDG) product. Recently, I had a chance to compare WXS to Oracle Coherence and Infinispan (open-source-software IMDG). Here are some high-level differences I was able to identify:
Efficient use of machine resources by WXS
WXS is very efficient at consuming CPU and keeps the creation of threads to a minimum. For example, setting the maximum number of user processes to 1024 was more than enough to run a large test with WXS. What I noticed with Infinispan is that this number had to be significantly increased to be able to successfully bring up 6 instances of clustered Infinispan servers. This may as well be the case with Oracle Coherence since, like Infinispan, they both use a very similar architecture for their cluster design (more about this below). Lower CPU consumption and number of user processes means that you will need less hardware resources and less software licenses/subscriptions when using WXS to handle the same load.
Fast Object Serialization
eXtreme Data Format (XDF) is WXS language-independent serialization format and POF (Portable Object Format) is Oracle Coherence equivalent. To enable XDF, you just need to set a flag in the data grid configuration file. On the other hand, with Oracle Coherence, you need to modify the Java classes you want to serialize (whether by writing code or using annotations) as well as register them in the data grid environment in addition to setting a flag for the Coherence server to enable POF. This implies that the resulting POF class is different from the original class effectively affecting your code design and making it difficult to maintain or undo any POF modifications resulting in vendor lock-in. Taking advantage of optimized object serialization takes the setting of a single parameter at server startup with WXS whereas with Oracle Coherence it takes a laundry list of activities lengthening the development cycle.
WXS uses a cache container/catalog server approach where the dedicated catalog server(s) keep track of the health and members of the grid (the cache servers). This results in less traffic on your network as well as more efficient use of machine resources. IBM’s competitors that do not use catalog servers effectively treat every member of the grid as a potential catalog server. This design requires each member to keep track of the master(s) in the grid in case it goes down and it needs to take over the master role. This causes more traffic on your network and also the consumption of more machine resources.
In my experience, in installing, running, developing and administering Infinispan, I found that their documentation was riddled with inaccuracies (old info that was no longer applicable or relevant and had not been removed or updated) that can cause you to “spin your wheels” trying to figure out the product. Also, the documentation has a lot of “TBD” entries. So, tread the OSS waters at your own risk!
Lastly, IBM offers an IMDG in an appliance form factor, namely the IBM DataPower XC10, for those customers that prefer to have WXS capabilities in a security-hardened appliance. DataPower can be deployed as either a hardware or virtual appliance giving it the flexibility customers demand. Its security capabilities are second to none and it has native connections to other IBM Middleware products and technologies.
In summary, WebSphere eXtreme Scale offers clear benefits when compared to Oracle Coherence and Infinispan. Less machine resources translates into lower data center costs, easier maintenance and administration increases the productivity of your IT department, and lower development cycles allows your business to have a faster time-to-market.