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.1.0 "Radegast" 2nd release candidate just released!
Jul 20, 2010 5:23 PM by Manik Surtani
I've just released Infinispan 4.1.0.CR2, codenamed Radegast. Why is this release so important? Because it is very close to the final version of the Hot Rod wire protocol, and the client and server modules that sit on either end of Hot Rod, allowing…
Infinispan 4.1.0.CR1 is now available!
Jul 6, 2010 10:31 AM by Galder Zamarreño
After very busy last few weeks with JUDCon and JBoss World/Red Hat Summit, we're proud to release Infinispan 4.1.0.CR1, the first candidate release of the Infinispan 4.1 series. The release is downloadable in the usual place.A lot of work has gone in…
JBossWorld and JUDCon post-mortem
Jun 28, 2010 12:18 PM by Manik Surtani
Wow, what a week. We all know Infinispan is sexy and gets a lot of attention, but the last week has been unprecedented! The first-ever JUDCon, the developer conference that took place the day before JBoss World and Red Hat Summit, was great and I …
JUDCon and the JBoss Community Awards
Jun 23, 2010 12:56 PM by Manik Surtani
The first-ever JUDCon kicked off on Monday, and was very well received. It was good to see so many from the Infinispan community, and be able to discuss ideas and thoughts in detail. I'm hoping to see even more Infinispan-related activity at future…
Infinispan 4.1Beta2 released
May 28, 2010 11:25 AM by Mircea Markus
Hi,The second and hopefully last Beta for 4.1 has just been released. Thanks to excellent community feedback, several HotRod client/server issues were fixed. Besides this and other bug-fixes (check this for complete list), following new features were…
Infinispan EC2 Demo
May 26, 2010 1:25 AM by Noel O'Connor
Infinispan's distributed mode is well suited to handling large datasets and scaling the clustered cache by adding nodes as required. These days when inexpensive scaling is thought of, cloud computing immediately comes to mind. One of the largest pro…
Client/Server architectures strike back, Infinispan 4.1.0.Beta1 is out!
May 13, 2010 4:13 AM by Galder Zamarreño
I’m delighted to announce the release of Infinispan 4.1.0.BETA1. For this, our first beta release of the 4.1 series, we’ve finished Hot Rod and Memcached protocol based server implementations and a Java-based Hot Rod client has been developed as a re…
Infinispan WebSocket Server
Apr 28, 2010 12:16 PM by Tom Fennelly
The HTML 5 WebSocket Interface seems like a nice way of exposing an Infinispan Cache to web clients that are WebSocket enabled.I just committed a first cut of the new Infinispan WebSocket Server to Subversion.You get a very simple Cache object in …
4.1.0. ALPHA3 is out
Apr 23, 2010 11:35 AM by Manik Surtani
I've just cut Infinispan 4.1.0.ALPHA3, codenamed Radegast. This release contains a number of fixes and bugs reported in 4.0.0 Starobrno as well as earlier alphas, and is quite likely to be the last alpha before a feature-complete 4.1.0.BETA1 is rele…
Boston, are you ready for Infinispan?
Apr 13, 2010 5:06 AM by Manik Surtani
The JBoss World/Red Hat Summit organisers have asked me to put together a short note on what to expect at the conference with regards to Infinispan, and this has been published on the conference website. I thought I'd share this with you as well. …
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, codenamed Radegast - 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.
 

Cloud-TM

 

Infinispan is used in the EU-funded Cloud-TM research project to build a distributed, cloud-scale software transactional memory implementation.  For more information, visit http://www.cloudtm.eu.