Wednesday, 6 April 2011

First 5.0 beta now available!

We've just released our first beta version of Infinispan 5.0 "Pagoa". The main highlight in this release is the introduction of our brand new Map/Reduce API to compliment the existing distributed executor API release in a previous alpha version. We had countless discussions around these APIs and the result can be see in our javadocs and this wiki which explains the distributed executor and Map/Reduce framework. Please download the 5.0.0.BETA1 distribution and play with it! Your feedback is invaluable at this stage as we start to aim towards CR and Final release.

In other news, the query API has received a major overhaul and apart from providing a more intuitive and powerful API, it hooks into Hibernate Search new SPI making it easier to maintain. Infinispan users now get access to Faceting via Hibernate Search as well. A revision of the Infinispan Querying wiki is on its way, but the javadocs available here are full pointers to get you going.

Finally, here's a few notes on other interesting improvements:
  • Distribution uses now MurmurHash3 hash function which is more performant and provides more even spread.
  • EmbeddedCacheManager has been enhanced with some new methods that allow caches to be removed all together. That is, remove the contents of a cache cluster wide and in the persistent store. A couple of other methods to go along with this have been added such as cacheExists() and a conditional getCache() that can inform the user when the cache has been completely been removed the system.
  • Increased performance of Hot Rod client/server architectures as a result of fixing a couple of issues, one in the Hot Rod client and another in the server, so if you're a Hot Rod user, make sure you upgrade!
There's some other minor API changes and fixes as show in the release notes. As always, please use the user forums to report back, grab the release here, enjoy and keep the feedback coming.



  1. Hello

    I've searched around but couldn't find an answer to this, so hopefully you might be able to help me out (admittedly I'm an Infinispan noob):

    Does Infinispan offer support for differet object versions? Ie. if I have a class Cv1 and I put these types of objects into my (clustered) cache and then a new version of the software puts Cv2 objects into the same clustered cache (which adds a new field to Cv1 for example), will old/new clients be able to get the old/new version of the object? I'm trying to ascertain if a hot upgrade scenario (where the system as a whole is never down) is possible with Infinispan.

    Maybe you could point me to some relevant docs.

    Thank you.

  2. cdman83, we had a discussion about this use case recently on how to make this type of scenarios more user friendly - for example, have a @ClassVersion(x) annotation to version objects. In reply to your question, e have not yet tested the scenario mentioned with different serialization mechanism either implementing Serializable, Externalizable or via Infinispan's Externalizer framework but we'll be doing in the near future and will be giving you more specific answer.

  3. Thank you for the quick reply.