JBoss Community

Infinispan is an extremely scalable, highly available data grid platform - 100% open source, and written in Java.  The purpose of Infinispan is to expose a data structure that is highly concurrent, designed ground-up to make the most of modern multi-processor/multi-core architectures while at the same time providing distributed cache capabilities.  At its core Infinispan exposes a JSR-107 (JCACHE) compatible Cache interface (which in turn extends java.util.Map).  It is also optionally is backed by a peer-to-peer network architecture to distribute state efficiently around a data grid.

Offering high availability via making replicas of state across a network as well as optionally persisting state to configurable cache stores, Infinispan offers enterprise features such as efficient eviction algorithms to control memory usage as well as JTA compatibility.

In addition to the peer-to-peer architecture of Infinispan, on the roadmap is the ability to run farms of Infinispan instances as servers and connecting to them using a plethora of clients - both written in Java as well as other popular platforms.

Why is Infinispan sexy?

State-of-the-art core - Infinispan's core is a specialised data structure, tuned to and geared for a great degree of concurrency - especially on multi-CPU/multi-core architectures. Most of the internals are essentially lock- and synchronization-free, favouring state-of-the-art non-blocking algorithms and techniques wherever possible.  Even though non-clustered caching (LOCAL mode) is not its primary goal, Infinispan still is very competitive here.

Massive heap - If you have 100 blade servers, and each node has 2GB of space to dedicate to a replicated cache, you end up with 2 GB of total data. Every server is just a copy. On the other hand, with a distributed grid - assuming you want 1 copy per data item - you get a 100 GB memory backed virtual heap that is efficiently accessible from anywhere in the grid. Session affinity is not required, so you don't need fancy load balancing policies. Of course you can still use them for further optimisation. If a server fails, the grid simply creates new copies of the lost data, and puts them on other servers. This means that applications looking for ultimate performance are no longer forced to delegate the majority of their data lookups to a large single database server - that massive bottleneck that exists in over 80% of enterprise applications!

Extreme scalability - Since data is evenly distributed, there is essentially no major limit to the size of the grid, except group communication on the network - which is minimised to just discovery of new nodes. All data access patterns use peer-to-peer communication where nodes directly speak to each other, which scales very well.

Not Just for Java (PHP, Python, Ruby, C, etc.) - The roadmap has a plan for a language-independent server module. This will support both the popular memcached protocol - with existing clients for almost every popular programming language - as well as an optimised Infinispan-specific protocol. This means that Infinispan is not just useful to Java. Any major website or application that wants to take advantage of a fast data grid will be able to do so.

Support for Compute Grids - Also on the roadmap is the ability to pass a Runnable around the grid. You will be able to push complex processing towards the server where data is local, and pull back results using a Future. This map/reduce style paradigm is common in applications where a large amount of data is needed to compute relatively small results.

Management is key! - When you start thinking about running a grid on several hundred servers, management is no longer an extra, it becomes a necessity. This is on Infinispan's roadmap. We aim to provide rich tooling in this area, with many integration opportunities.

Recent blog posts

Infinispan 4.0.0.Final has landed!
Feb 23, 2010 11:14 AM by Manik Surtani
It is with great pleasure that I'd like to announce the availability of the final release of Infinispan 4.0.0. Infinispan is an open source, Java-based data grid platform that I first announced last April, and since then the codebase has been throug…
Benchmarking Infinispan and other Data Grid software
Feb 17, 2010 2:23 AM by Mircea Markus
Why benchmarking?Benchmarking is an important aspect for us: we want to monitor our performance improvements between releases and compare ourselves with other products as well. Benchmarking a data grid product such as Infinispan is not a trivial task…
Infinispan/Jopr flash movies released
Feb 12, 2010 10:56 AM by Galder Zamarreño
Back in December we announced the release of a screen cast showing how to monitor Infinispan with Jopr. Today we've just added 3 detailed flash movies on how to install Jopr and Infinispan Jopr plugin, and also how to monitor Infinispan instances tha…
Poll: How do you interact with Infinispan?
Feb 12, 2010 10:28 AM by Galder Zamarreño
While discussing the different ways to interact with Infinispan, we decided to open up a poll so that people tell us how they expect to be using Infinispan. Do you use Infinispan directly on the same VM? Or do you use REST? Are you planning to intera…
Infinispan and storage in the cloud
Feb 4, 2010 12:16 PM by Manik Surtani
I will be presenting on Infinispan and its role in cloud storage, at Red Hat's Cloud Computing Forum on the 10th of February 2010.This is a virtual event, where you get to attend from the comfort of your desk. And although it is free, you do need to…
Infinispan 4.0.0.CR4
Feb 2, 2010 12:22 PM by Manik Surtani
In the run-up to preparing Infinispan for a public release, we've been busy on a number of interesting things, which have led to a decision to release another CR instead. The main driver behind this is that we've finally managed to get our hands on …
Infinispan as a LOCAL cache
Feb 2, 2010 11:09 AM by Manik Surtani
While Infinispan has got the distributed, in-memory data grid market firmly it in its sight, there is also another aspect of Infinispan which I feel people would find interesting.At its heart Infinispan is a highly concurrent, extremely performant da…
Video on Devoxx 09 presentation
Jan 7, 2010 8:38 AM by Manik Surtani
So the people at Devoxx have recorded my presentation on Infinispan and the future of Data Grids at Devoxx 2009, and have uploaded it for online viewing. For those of you who were not able to attend the talk, the recording can be accessed on http://…
JBoss Asylum PODCast on Infinispan
Dec 22, 2009 7:10 AM by Manik Surtani
So for those hankering to hear my voice again, check out JBoss Asylum Eposide 7 - a PODCast of yours truly talking about Infinispan and my views on cloud data storage. This was recorded at Devoxx 2009 in Antwerp, with Max Andersen and Emmanuel Berna…
New video demo: Monitoring Infinispan with Jopr console
Dec 18, 2009 10:43 AM by Galder Zamarreño
Over the past few weeks, I've been working on improving how Infinispan is managed and/or monitored and I can finally share some of the results of that effort with you. In the coming weeks, I'll be sharing some in-depth flash movies explaining everyth…
View more recent blog posts

Current Releases

Infinispan 4.0.0.FINAL, codenamed Starobrno, has been released and is available for download.  (Wondering why our first release is 4.0.0?)

Our next release is 4.1.0 - follow it on our roadmap!  

Unstable betas and release candidates, are also available for download.  Remember, participation in the project begins with downloading and trying out unstable releases and providing feedback.

Like eye-candy?

Then check out the bin/runGuiDemo.sh script in the infinispan-X.Y.Z-bin.zip and infinispan-X.Y.Z-all.zip distributions!

What are Data Grids?

Data grids are highly concurrent distributed data structures. They typically allow you to address a large amount of memory and store data in a way that it is quick to access. They also tend to feature low latency retrieval, and maintain adequate copies across a network to provide resilience to server failure.