Tuesday, 23 April 2013
Give Java Caching Standard API a go using Infinispan 5.3.0.Alpha1!
As part of the recent Infinispan 5.3.0.Alpha1, the first Infinispan JCache implementation was released which implements version 0.6 of the JCache specification as defined by JSR-107. It passes 100% the mandatory TCK including optional transactions TCK.
A document on how to use Infinispan JCache implementation has just been released, which explains the basics of using JCache, how it differs with existing APIs provided by the JDK, and how to cluster JCache based cache instances. More information will be added to the document, including quickstarts, as we make further progress in the Infinispan 5.3 series.
Please note that the CDI and annotations part of JCache 0.6 specification is still in flux, and we’re not yet able to provide an implementation for it, but we expect the issues stopping the implementation to be resolved in the near future.
Finally, as it’s expected from first releases, some bugs might be present, so if you encounter any misbehaviour, check the list of issues associated with the JCache component to see if the issue has already been resolved, or if not, please report it so that it can be fixed ASAP :).
Cheers, Galder
Tags: jsr 107 cdi jcache alpha
Tuesday, 09 April 2013
Infinispan 5.3.0.Alpha1 is out!
With a code name hard to match - Tactical Nuclear Penguin - and besides almost 50 bug fixes, this release contains several important features:
-
Total Order (TO) transaction protocol developed within the scope of the CloudTM project. The TO exhibits very good throughput in scenarios in which multiple transactions modify the same key set concurrently (high contention)
-
support for JSR-107 (Java Caching API) implementation, allowing Infinispan to be used as a cache provider
-
A new implementation of the Lucene Directory for Infinispan based on Lucene 4. Compatible now with all versions of Apache Lucene from 2.4 to 4.2.
-
A new packaging for the Infinispan server modules, based on the JBoss AS
Please stay tuned for blogs detailing all these features. For a complete list of features included in this release refer to the release notes.
Visit our downloads section to find the latest release and if you have any questions please check our forums, our mailing lists or ping us directly on IRC.
Cheers,
Mircea
Tags: release alpha
Saturday, 01 September 2012
Infinispan 5.2.0.Alpha3 is out!
There are releases and releases. And this one is a big one, containing a bran new state transfer functionality. Designed and implemented by Dan Berindei and Adrian Nistor, the new Non Blocking State Transfer (NBST) has the following goals:
-
Minimize the interval(s) where the entire cluster can’t respond to requests because of a state transfer in progress.
-
Minimize the interval(s) where an existing member stops responding to requests because of a state transfer in progress.
-
Allow the performance of the cluster to drop during state transfer, but it should not throw any exception
Curious to see the magic behind it? This document is here to explain you NBST’s internal.
Besides NBST this release brings some other goodies:
-
A new IGNORE_RETURN_VALUES flag to help reduce the number of RPC calls and increasing performance (to be discussed at large by Galder Zamarreño in a following blog post)
-
A revamped and much nicer configuration for submodules such as cache loaders. More about it in Tristan Tarrant’s blog
-
for a complete list of the fixes/enhancements refer to JIRA
Another new thing this release brings is a change in versioning: we’ve aligned to JBoss' release versioning pattern. So the name is now Alpha3 vs ALPHA3(as per the old naming pattern). More about the reason for doing that in this blog post.
The complete list of issues/improvements addressed in this release is available in JIRA. As always, please give it a try and let us know what you think on the forums, irc or mailing lists!
Cheers,
Mircea
Tags: release alpha state transfer
Monday, 23 July 2012
Infinispan 5.2.0.ALPHA2 is here!
Infinispan 5.2.0.ALPHA2 was released last Friday with several additions for those that like to test Infinispan’s bleeding edge capabilities. In this case, it’s out Map/Reduce functionality that’s the star of the show:
Vladimir Blagojevic, one of our Infinispan developers, will be explaining all about these features in a blog post coming right up, so stay tuned! :)
Finally Adrian Nistor, the latest addition to the Infinispan team, has been working on reducing the size of our distribution files by avoiding duplication of jars.
Cheers,
Galder
Tags: release alpha map reduce cache store
Friday, 22 June 2012
Infinispan 5.2 alpha out now with Command Line Inteface!
Infinispan 5.2.0.ALPHA1 has just been released and it comes with a load of new goodies, here’s a summary:
-
Command Line Interface! See Tristan’s blog post for more information.
-
Infinispan based Lucene directory has been upgraded to Apache Lucene 3.6.
-
Make @ProvidedId annotation on @Indexed objects optional.
-
Upgrade to JGroups 3.1.x.
-
Upgrade to Berkeley DB 5.x
-
HBase cache store plugin
Full details of all the rest enhancements can be found here. If you have feedback, please visit our forums. Finally, as always, you can download the release from here.
Cheers,
Galder
Tags: release hbase alpha lucene jgroups berkeleydb cli
Tuesday, 29 March 2011
The final 5.0 alpha is out!
The final alpha release, 5.0.0.ALPHA4, has just been released with plenty of goodies to play with:
-
For end users, the biggest change is a further refinement of the fluent API first introduced in ALPHA3. We’ve basically worked hard to make it even more fluent and make it easier to quickly read and write programmatic configuration. The end result can be found in this example test file. Note that this changes are not compatible with 5.0.0.ALPHA3 fluent API.
-
For those service providers who are extending Infinispan to provide their own functionality, you can know extend Infinispan so that your own commands can be sent to other Infinispan nodes. This helps solve problems such as HHH-3818 in more elegant way without needing to rely on listeners and special types of objects. You can find examples of how to extend Infinispan to build your own commands here, and please note that as with any SPI, it requires a high understand of the code involved, so use it with care.
There’s some other minor API changes and fixes as show in the release notes. As always, please use the user forums to report back, grab the release here, enjoy and keep the feedback coming.
Finally, the release for the first Beta in the 5.0 series will be very short, so keep an eye for an announcement very soon!
Cheers,
Galder
Tags: release alpha
Friday, 18 February 2011
5.0.0.ALPHA3 is here with more goodies!
For those who can’t wait to get hold on the newest Infinispan features, we’ve just released the third alpha release of the 5.0 series, called 5.0.0.ALPHA3.
Apart from including fixes in 4.2.1.CR2, it allows users to prefetch data in advance in parallel thanks to the new getAsync() method. Why is this useful? Imagine the following scenario: A cache is configured with distribution and an app that requires values associated with k1, k2, and k3 in order to do its job. In the worst case scenario assume that all these keys located in remote nodes. Previously, before 5.0.0.ALPHA3, you’d have written something like this:
Value v1 = cache.get("k1");
Value v2 = cache.get("k2");
Value v3 = cache.get("k3");
The problem with this code is that each get() is sequential, so the second get() call must wait for first get() to retrieve data from the remote node before it can execute. This is clearly not very optimal. From 5.0.0.ALPHA3 onwards, you can do this instead:
NotifyingFuture<Value> f1 = cache.getAsync("k1");
NotifyingFuture<Value> f2 = cache.getAsync("k2");
NotifyingFuture<Value> f3 = cache.getAsync("k3");
...
Value v1 = f1.get(); // blocks until value has been returned
Value v2 = f2.get();
Value v3 = f3.get();
The clear advantage here is that the get requests, via getAsync(), can be fired in parallel and they don’t need to wait for each other. Afterwards, when the value is needed, simply call get() on the future received.
Amongst other API enhancements, such as RemoteCache implementing size() and isEmpty(), or the ability to delete AtomicMap instances via AtomicMapLookup, it’s worth highlighting that we’ve taken your feedback on board with regards to how Infinispan is configured programmatically, and from 5.0.0.ALPHA3 onwards, we provide a more fluent way of configuring Infinispan. For example:
GlobalConfiguration gc = new GlobalConfiguration();
GlobalJmxStatisticsConfig jmxStatistics = gc.configureGlobalJmxStatistics();
jmxStatistics.allowDuplicateDomains(true).enabled(true);
TransportConfig transport = gc.configureTransport();
transport.clusterName("blah").machineId("id").rackId("rack").strictPeerToPeer(true);
You can find more examples of this new configuration here. Note that this fluent API is likely to evolve further before we go final with 5.0.0 as shown in this forum discussion, but please keep your feedback coming! Finally, details of what’s fixed is in the release notes. As always, please use the user forums to report back, grab the release here, enjoy and keep the feedback coming.
Cheers, Galder
Tags: asynchronous alpha configuration
Tuesday, 18 January 2011
Distributed executors come to Infinispan 5.0.0.ALPHA2
I’m delighted to announce the release of Infinispan 5.0.0.ALPHA2 that includes the very first version of Infinispan’s Distributed Executor Framework. Make sure you have a look at the javadocs for the distributed executor package and the map/reduce package. Watch out for a forthcoming blog entry from Vladimir with plenty more information and examples!
On top of this, the mechanism to plug user-defined externalizers has changed for ALPHA2 based on invaluable feedback from the community, making it easier for third party applications to abstract Infinispan’s Externalizer framework and hide it from end users. From ALPHA2 onwards, Infinispan Lucene directory provides its own Externalizer implementations and so expect a performance improvement in the RPC calls it mades.
As usual Infinispan 5.0.0.ALPHA2 is available for download from here, issues fixed can be found here, and provide feedback here.
Cheers,
Galder
Tags: release distributed executors alpha
Friday, 17 December 2010
Xmas arrives early for Infinispan users! 5.0.0.ALPHA1 is out!
Just in time for Christmas, the first release in the 5.x series called 5.0.0.ALPHA1 is out. This release implements one of the most demanded features which is the ability to store non-Serializable objects into Infinispan data grids! You can now do so thanks to the ability to plug Infinispan with Externalizer implementations that know how to marshall/unmarshall a particular type. To find out more on how to implement this Externalizers and how to plug them, check the following article that explain this in great detail.
A very important benefit of using Infinispan’s Externalizer framework is that user classes now benefit from a lightning fast marshalling framework based on JBoss Marshalling. Back in the 4.0.0 days when we switched from JDK serialization to JBoss Marshalling, we saw a performance improvement of around 10-15% and we’re confident that 5.x user applications will see a similar performance increase once they start providing Externalizer implementations for their own types.
At this stage, it’s very important that Infinispan users have a go at implementing their own Externalizer implementations so that we have enough time to make adjustments based on feedback provided. Your input is crucial!!
Staying with the marshalling topic, another novelty included in this release is the ability to plug Hot Rod clients with portable serialization thanks to Apache Avro. This is not tremendously important right now, but once Hot Rod protocol clients have been written in other languages, they’d be able to seamlessly share data even if they’re written in different languages! In case you’re not aware, a Python Hot Rod client is already in the making…
Finally, details of all issues fixed can be found here, the download is here, and please report issues here. :-)
Enjoy and Merry Christmas to all :)
Galder
Tags: release alpha
Friday, 22 October 2010
Infinispan 4.2.0.ALPHA4 "Ursus" is out!
Tags: alpha release