Wednesday, 23 March 2016

Javascript client 0.2.0 arrives with Cluster Topology support

Today Infinispan Javascript client version 0.2.0 was released, which includes:

  • Updated README file containing simpler individual examples on each main feature set.
  • Remote execution - Users can now load remote scripts into Infinispan Servers using the addScript method and these scripts can be remotely executed via the execute operation. An example of this can be found in the README file.
  • Server-side statistic can now be retrieved using the stats operation. Again, an example can be found in the README file.
  • The client now supports cluster topology updates, so it can handle remote notifications of server side topology changes, including addition or removal of server-side cluster nodes.
  • Using the cluster topology information and hashing algorithms, the client can now apply the same Consistent-Hash algorithm servers use to distribute data around the cluster, and hence can immediately locate the server where a particular key lives.

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

Tuesday, 8 March 2016

Infinispan 8.2.0.Final is out!

Dear community,

We are proud to announce the release of Infinispan 8.2.0.Final. Download it here and try it out!

This release is highlighted by performance improvements and multiple fixes, and it introduces some new cool features. We emphasize the following:

  • New algorithm for remote reads in distributed mode that reduces the network usage
  • From now on, the consistent hash is shared among caches with the same membership - entries in different caches using the same key will be co-located
  • A new lambda-enabled Cluster Executor which does not require a clustered cache, but can be constructed directly from a DefaultCacheManager.
  • Protostream 3.0.5, Lucene 5.5, Hibernate Search 5.6.0.Alpha2
  • And many tweaks and improvements overall.
Infinispan Server obviously deserves a list of its own:
  • Infinispan Server was gifted with a brand new event logger. Now it is possible to check the last 7 days events like caches starting/stopping, nodes join/leaving, task execution and security audits. In addition, it is based on Wildfly 10.
  • Admin Console improvements
    • Persistent login session which survives browser refresh
    • Deployment / undeployment of user code
    • Management of ProtoBuf schemas for indexing
    • Management of Scripts for task execution
    • Event viewing
    • Much improved cache and template configuration
    • Cache container configuration
    • PatternFly 3.2
We are now preparing the next development cycle and we will introduce new features and improvements. Stay tuned to know what is coming in Infinispan 9.0. 

Check out 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.

Cheers,
The Infinispan team.

Monday, 7 March 2016

Infinispan coming to Voxxed Days Bucharest



This coming Friday, 11th March, I'll be speaking at Voxxed Days Bucharest about Distributed Data Processing with Infinispan and Java Streams. You can find out more about the this talk and other topics in an interview I did with Voxxed Days Bucharest organisers.

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

Cheers,
Galder

Infinispan related presentations on DevConf.cz 2016

DevConf.cz (Developer Conference) is a free annual conference for all Linux and JBoss Community Developers, Admins and Linux users organized by Red Hat Czech Republic in cooperation with the Fedora and JBoss communities. See more details on DevConf's homepage.

Since it's JBoss related conference, Infinispan cannot be missing there! We had two Infinispan related presentantions. First of them was presented by Jiří Holuša focusing on new features in Infinispan 8. The presentation also covers very gentle introduction to Infinispan in general.

The second one, named "From Big Data towards Fast Data",  was given by Vojtěch Juránek and talked about latest trends in Big Data world. The presentation goes through the introduction about Big Data, mentions the problems with it and comes up with the term Fast Data. Some approaches are presented, how to solve this Fast Data phenomenon, ending up with new Infinispan Spark connector as one of the possible solutions.

Please, see the links below.

Presentation "Infinispan 8 - keeping up with the latest trends"
Video: https://www.youtube.com/watch?v=r0__NEgldzI
Slides: bit.ly/1oxAuCM

Presentation "From Big Data towards Fast Data"
Video: https://www.youtube.com/watch?v=TVXeXM2g7So
Slides: bit.ly/1PrQ0ZK

Cheers,
Jiří 

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 !