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

Posted by Galder Zamarreño on 2013-04-23
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

Posted by Mircea Markus on 2013-04-09
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 

Posted by Mircea Markus on 2012-09-01
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

Posted by Galder Zamarreño on 2012-07-23
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:

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

Posted by Galder Zamarreño on 2012-06-22
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

Posted by Galder Zamarreño on 2011-03-29
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

Posted by Galder Zamarreño on 2011-02-18
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

Posted by Galder Zamarreño on 2011-01-18
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

Posted by Galder Zamarreño on 2010-12-17
Tags: release alpha

Friday, 22 October 2010

Infinispan 4.2.0.ALPHA4 "Ursus" is out!

Hi,

You can find the release notes here.

Try it and let us know what you think!

Cheers,

Mircea

Posted by Mircea Markus on 2010-10-22
Tags: alpha release

News

Tags

JUGs alpha as7 asymmetric clusters asynchronous beta c++ cdi chat clustering community conference configuration console data grids data-as-a-service database devoxx distributed executors docker event functional grouping and aggregation hotrod infinispan java 8 jboss cache jcache jclouds jcp jdg jpa judcon kubernetes listeners meetup minor release off-heap openshift performance presentations product protostream radargun radegast recruit release release 8.2 9.0 final release candidate remote query replication queue rest query security spring streams transactions vert.x workshop 8.1.0 API DSL Hibernate-Search Ickle Infinispan Query JP-QL JSON JUGs JavaOne LGPL License NoSQL Open Source Protobuf SCM administration affinity algorithms alpha amazon anchored keys annotations announcement archetype archetypes as5 as7 asl2 asynchronous atomic maps atomic objects availability aws beer benchmark benchmarks berkeleydb beta beta release blogger book breizh camp buddy replication bugfix c# c++ c3p0 cache benchmark framework cache store cache stores cachestore cassandra cdi cep certification cli cloud storage clustered cache configuration clustered counters clustered locks codemotion codename colocation command line interface community comparison compose concurrency conference conferences configuration console counter cpp-client cpu creative cross site replication csharp custom commands daas data container data entry data grids data structures data-as-a-service deadlock detection demo deployment dev-preview development devnation devoxx distributed executors distributed queries distribution docker documentation domain mode dotnet-client dzone refcard ec2 ehcache embedded embedded query equivalence event eviction example externalizers failover faq final fine grained flags flink full-text functional future garbage collection geecon getAll gigaspaces git github gke google graalvm greach conf gsoc hackergarten hadoop hbase health hibernate hibernate ogm hibernate search hot rod hotrod hql http/2 ide index indexing india infinispan infinispan 8 infoq internationalization interoperability interview introduction iteration javascript jboss as 5 jboss asylum jboss cache jbossworld jbug jcache jclouds jcp jdbc jdg jgroups jopr jpa js-client jsr 107 jsr 347 jta judcon kafka kubernetes lambda language learning leveldb license listeners loader local mode lock striping locking logging lucene mac management map reduce marshalling maven memcached memory migration minikube minishift minor release modules mongodb monitoring multi-tenancy nashorn native near caching netty node.js nodejs non-blocking nosqlunit off-heap openshift operator oracle osgi overhead paas paid support partition handling partitioning performance persistence podcast presentation presentations protostream public speaking push api putAll python quarkus query quick start radargun radegast react reactive red hat redis rehashing releaase release release candidate remote remote events remote query replication rest rest query roadmap rocksdb ruby s3 scattered cache scripting second level cache provider security segmented server shell site snowcamp spark split brain spring spring boot spring-session stable standards state transfer statistics storage store store by reference store by value streams substratevm synchronization syntax highlighting tdc testing tomcat transactions tutorial uneven load user groups user guide vagrant versioning vert.x video videos virtual nodes vote voxxed voxxed days milano wallpaper websocket websockets wildfly workshop xsd xsite yarn zulip

back to top