Wednesday, 3 February 2016

The return of the Cassandra CacheStore

Ever since we spruced up our Cache Store SPI in Infinispan 6.0, some of our "extra" cache stores have lied in a state of semi-abandonment, waiting for a kind soul with time and determination to bring them back to life.
I'm glad to announce that such a kind soul, in the form of Jakub Markos, had the necessary qualities to accomplish the resurrection of the Cassandra Cache Store.

Apache Cassandra is a database with a distributed architecture which can be used to provide a virtually unlimited, horizontally scalable persistent store for Infinispan's caches. The new Cassandra Cache Store leverages the Datastax Cassandra client driver instead of the old Thrift client approach, which makes it much more robust and reliable.


In order to use this cache store you need to add the following dependency to your project:
You will also need to create an appropriate keyspace on your Cassandra database, or configure the auto-create-keyspace to create it automatically.
The following CQL commands show how to configure the keyspace manually (using cqlsh for example):

You then need to add an appropriate cache declaration to your `infinispan.xml`
(or whichever file you use to configure Infinispan):

It is important the the shared property on the cassandra-store element is set to true
because all the Infinispan nodes will share the same Cassandra cluster.


The cache store uses Cassandra's own expiration mechanisms (time to live = TTL) to handle expiration of entries. Since TTL is specified in seconds, expiration lifespan and maxIdle values are handled only with seconds-precision.

In addition to this, when both lifespan and maxIdle are used, entries in the cache store effectively behave as if their lifespan = maxIdle, due to an existing bug

So, try it out and let us know about your experience !

Monday, 1 February 2016

'Infinispan 8 Tour' video available

The recording of the talk presented last Wednesday in London is available! Thanks to everyone who joined and to the London JBUG organizers for the awesome new venue!


Infinispan 8.2.0.Beta1 and 8.1.1.Final are out!

Dear all,

We are proud to announce two releases today:

Infinispan 8.2.0.Beta1 is the first release in the 8.2 cycle. It doesn't have big new features, but there are a few significant changes in addition to the usual bug fixes:
  • SyncConsistentHashFactory is now the default consistent hash factory (ISPN-4851). This means the owners of a key are going to be the same in all the caches, as long as the caches have the same members and the same number of owners.
  • We now have a new way for applications to determine the location of keys: the KeyPartitioner interface (ISPN-5465). In spirit it is very similar to the existing Grouper interface, but it is segment-aware. Note that none of the HotRod clients support Keypartitioner in this release.
  • We improved the rolling upgrade performance (ISPN-6046).
  • We added a new event logger that records cluster membership, cache topology, and cache availability changes (ISPN-5816). In the next release, it will also be accessible through the server's management console.
Infinispan 8.1.1.Final includes a number of bug fixes. All users of 8.1.0.Final are encouraged to upgrade.

You can get both releases from our download page. If you are new to Infinispan, you can learn how to use it, and help us continually improve it.

Thursday, 28 January 2016

Infinispan at Snowcamp 2016

Last week the first ever Snowcamp was held in Grenoble where I presented about "Distributed Data Processing with Infinispan and Java Streams".

The conference was very enjoyable with multiple tracks focused on Big Data, web technologies (with a big emphasis on Javascript), devops, and software development. Emmanuel, Mickael and the rest of the team did an awesome job at organising the conference in record time with very good attendance numbers :)

The talk went well and fortunately the demo gods were with me that day :). The code of the demo can be found in this Github repository. The slides will be available soon.

Of the presentations I attended, I was particularly impressed with the Apache Zeppelin talk that Saad Ansari presented where he demonstrated how to do interactive data analysis on top of Apache Spark, very cool!

It was a pleasure being selected to talk at Snowcamp and hope that next year I can speak there too!


Thursday, 21 January 2016

Infinispan 8 talk on JBUG London

In the next Wednesday, 27th January, the London JBUG will host the talk "Infinispan 8 tour", presented by Gustavo Fernandes. It's the chance to catch up with all the features introduced by Infinispan 8, in a session packed with samples and demos!

Attendance is free, but places are limited. Full details on

Wednesday, 13 January 2016

SnowCamp and Voxxed Days Bucharest, here I come!!

I'll be presenting about Infinispan's in a couple of conferences over the next few months:

First up is SnowCamp 2016, a conference taking place in Grenoble from 21st to 23rd January. The talk I'm presenting is titled "Distributed Data Processing with Infinispan and Java Streams". Java 8 has made data processing easier than ever and with the help of Infinispan, that data processing can easily be done in a distributed manner. This talk is focused on showing how to use Java Streams to do distributed data processing with Infinispan, and how this approach compares with other data processing APIs Infinispan exposes.

Next, on the 11th of March I'll be in Bucharest to speak at Voxxed Days Bucharest where I'll again be talking about Distributed Data Processing with Infinispan and Java Streams.

So, if you're in Grenoble or Bucharest, make sure you come to SnowCamp or Voxxed Days Bucharest to learn about Infinispan!! :)


Wednesday, 9 December 2015

Infinispan Spark connector 0.2 released!

The connector allows the Infinispan Server to become a data source for Apache Spark, for both batch jobs and stream processing, including read and write.

In this release, the highlight is the addition of two new operators to the RDD that support filtering using native capabilities of Infinispan. The first one is filterByQuery:

The second operator was introduced to replace the previous configuration based filter factory name, and was extended to support arbitrary parameters:

The connector has also been updated to be compatible with Spark 1.5.2 and Infinispan 8.1.0.Final.

For more details including full list of changes and download info please visit the Connectors Download section.  The project Github contains up-to-date info on how to get started with the connector, also make sure to try the included docker based demo. To report any issue or to request new features, use the new dedicated issue tracker. We'd love to get your feedback!