Thursday, 18 February 2016

Infinispan Javascript client 0.1.0 is out!

Over the past few months we've been working on a Javascript client based on Node.js which can talk to Infinispan Server instances and today we can announce the first public release, version 0.1.0 which can easily be installed with the following command:

$ npm install infinispan

The client is still under heavy development but here's a summary of its current capabilities:

  • Full CRUD operation support, e.g. put, get, remove, containsKey...etc.
  • Compare-And-Swap operation support, e.g. putIfAbsent, getWithVersion/getWithMetadata, replace, replaceWithVersion, removeWithVersion...etc.
  • Expiration with absolute lifespan or relative maximum idle time is supported. This expiration parameters as passed as optional parameters to create/update methods and they support multiple time units, e.g. {lifespan: '1m', maxIdle: '1d'}.
  • Update and remove operations can optionally return previous values by passing in{previous: true} option.
  • Bulk store/retrieve/delete operations are supported, e.g. putAll, getAll, getBulk, getBulkKeys, clear...etc.
  • Cache contents can be iterated over using the iterator method.
  • Cache size can be determined using the size method.
  • Remote cache listeners can be plugged using the addListener method, which takes the event type (create, modify, remove or expiry) and the function callback as parameter.
Sample code showing how to use the Infinispan Javascript client can be found in the client's README file.

In future versions we'll be adding remote execution support as well as cluster topology handling, including consistent-hash based request routing.

If you're a Javascript user and want to store data remotely in Infinispan Server instances, please give the client a go and tell us what you think of it via our forum, via our issue tracker or via IRC on the #infinispan channel on Freenode.

Cheers,
Galder

Wednesday, 17 February 2016

Infinispan 8.2.0.Beta2 and 8.1.2.Final

Dear Infinispan community,

we're proud to announce two fresh releases today.
First off is 8.2.0.Beta2, from our development branch. It is packed with a bunch of goodies:

  • lots of enhancements and additions to the administration console for Infinispan Server, such as cluster event views, task management, container administration and deployments. Some of these will be further refined before the upcoming Final release. If you prefer to manage your servers from the good ol' command-line, the CLI commands have also been similarly enhanced.
  • performance improvements for clustered reads, bulk and stream ops, and a sensible reduction in memory allocation rate. More improvements will come as we are rewriting some parts of the core to allow further optimizations.
  • a new distributed executor, ClusterExecutor which does not require an existing distributed cache and which comes complete with Java 8 goodness such as CompletableFutures and lambda support. This nicely complements our existing Streams support.
  • a new, experimental index manager to store indexes on Infinispan with better scalability and indexing throughput. Additionally we've upgraded Lucene to 5.4.1 and Hibernate Search to 5.6.0.Alpha1
  • the ability to indicate a number of nodes for initial cluster formation
  • lots of bug fixes
We're still on track for a Final release at the end of the month.

We've also been fixing bugs in our stable 8.1 stream, which means we have a freshly released 8.1.2.Final.

Check out the development release notes, the stable release notes, download the releases and tell us all about it on the forum, on our issue tracker or on IRC on the #infinispan channel on Freenode.

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.

Configuration

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.

Limitations

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 https://issues.jboss.org/browse/ISPN-3202.

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


Monday, 1 February 2016

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!

Cheers,
Galder




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!! :)

Cheers,
Galder

Tuesday, 8 December 2015

Infinispan 8.1.0.Final is out!

Dear all,

We are proud to announce the release of Infinispan 8.1.0.Final, codenamed “Mahou”, the culmination of four months of active development.

This release brings many enhancements but most of all we would like to highlight the new Infinispan Web Management Console which is finally ready for prime time. We have gone through quite a few iterations in UI/UIX design to make sure the majority of use case scenarios are covered. In 8.2 release we are going to add further enhancements to configuring and managing endpoints, server tasks, cache containers and others. Until then, have a look, try it out and do not forget to provide us with your feedback. As a teaser, we provide you with the following video showcasing the new admin console.

Discover all the cool new features here or read the full release notes here. You can get this release from our download page as usual. If you are new to Infinispan you can learn how to use it and help us continually improve it.

Enjoy and stay tuned for more posts covering the new features!

The Infinispan team