Help

I'm working in the Hibernate and Infinispan teams at JBoss, caring about Lucene integration in products we support, striving to make it easier to use and to integrate in well known APIs and patterns, and finally to make it scale better; I love clean and well performing code.

I've been an early adopter of cloud deployments scaling Lucene to a huge number of requests on EC2 using Hibernate Search, and after that I worked with Sourcesense to make JIRA clusterable via Infinispan. Have been trainer on Seam and Hibernate courses.

Location: Newcastle, UK
Occupation: Doing stuff at JBoss, a Division of Red Hat Inc
Archive

Hibernate Search version 4.1.0.Beta1 was tagged; the most essential change compared to January's release 4.1.0.Alpha1 was HSEARCH-1034, made to allow Infinispan Query to use the fluent Programmatic Mapping API as already available to Hibernate users.

More changes are being developed: stay tuned for new MassIndexer improvements, some new performance improving tricks, and a fierce discussion is going on to provide a new pragmatic way to define index mappings starting from the Query use cases.

Integrations with Infinispan

The Infinispan project released a new milestone version 5.1.1.FINAL, which is relevant to Hibernate Search users in many ways:

  • Hibernate Search can use Infinispan to distribute the index among several clustered nodes.
  • JBoss AS 7.1 will use this version as the fundamental clustering technology.
  • Hibernate OGM can map JPA entities to Infinispan instead of a database, and use Hibernate Search as query engine and replicate the indexes storing them in Infinispan.
  • Infinispan Query uses the Hibernate Search Engine component to make it possible to search across the values stored in Infinispan. All you need to do is add the dependency to infinispan-query, enable indexing in the configuration and either annotate the objects you store in the grid like you would do with Hibernate Search entitites, or define the mappings using the programmatic API.

More details on Infinispan Query can be found in the Infinispan reference, but if you're familiar with Hibernate Search there's not much to learn as they share most features and configuration options as defined on the Hibernate Search reference manual.

18. Jan 2012, 10:33 CET, by Sanne Grinovero

We tagged Hibernate Search 4.1.0.Alpha1, and artifacts are now ready to be downloaded. 4.1 is meant to mainly upgrade the core dependencies and will have a quick development cycle.

Upgraded dependencies

  • Apache Lucene 3.5
  • Infinispan 5.1
  • JGroups 3.0

To use the above versions, upgrading is required as each of the mentioned projects changed some of its API used by Hibernate Search. Of course Hibernate Search shields you from these changes being fully backwards compatible.

MassIndexer performance

The MassIndexer is quick again! To be honest this is not an improvement but is a bugfix of a performance regression. If you noticed a performance drop in mass indexing using 4.0.0.Final, please try again with this new release and you will see a significant improvement. While working towards 4.1 final we're going to improve it's features and possibly performance even more, finally taking advantage of the new internal design provided by 4.0.

Great contributions

Guillaume Smet identified and fixed a regression for which dirty collections would not be re-indexed when having a custom FieldBridge instead of the standard @IndexedEmbedded.

Davide D'Alto improved the algorithm identifying the elements which need to be loaded and re-indexed: it's now able to avoid some unnecessary database loads in specific use cases having complex relations, consequently also reducing the index size.

The usual links

As always distribution bundles are available from Sourceforge, or you can get it via Maven artifacts. User questions are welcome on the forums, bugs and improvements can be discussed on the mailing list or posted to JIRA directly, possibly with unit tests.

Complete details of all changes are tracked on JIRA.

06. Dec 2011, 16:20 CET, by Sanne Grinovero

Infinispan team at Devoxx

Two weeks ago we where at Devoxx, with Pete Muir and Mircea Markus we had a three hours long workshop about using Infinispan in a real world JEE application. All our notes for the presentation are available here, and it includes the source code used for the demo and all slides.
The instructions contain both a zip of the source code or pointers to a Git repository; if you're familiar with Git the history contains each step from the guide so you can try follow the workshop chapter by chapter: we hope it's clear enough for anyone not familiar with Infinispan, if not questions and suggestions for improvements are welcome.

Hibernate OGM and Search updates

At the same conference as a member of the Hibernate OGM team we met Greg Luck from EHCache fame and we started some concrete plans to support EHCache as a data store for Hibernate OGM. If anyone wants to write a custom module for OGM, please note that we have now an experimental integration layer and Infinispan is no longer a dependency: we have instead an example implementation using a HashMap, so it should be easy to integrate with any other NoSQL database. Some interest was shown around Neo4J, MongoDB and HBase integration, but we need a volunteer to start working on it... feel free to join!

In a different area, same conference we met Karel Maesen of Hibernate Spatial, so stay tuned for a better integration in that area; if you're interested in geolocation you might want to have a look at the draft for integration in Hibernate Search being proposed by Emmanuel and Nicholas Helleringer at HSEARCH-923.

Next week: Arquillian at JBug Newcastle

Next week I'll be in the Newcastle office introducing Arquillian and Shrinkwrap together with Paul Robinson, the lead of the Web Service Transactions project. The talk is named Testing JEE Applications in the container using Arquillian: after an introduction on the coolest testing tools we plan to run a workshop and have everyone try it out.

The workshop is scheduled for Tuesday 13th December in the University of Newcastle, and as always discussions and questions are welcome on any JBoss technology. Full details of the event can be found here.

The OpenBlend conference in Ljubljana, Slovenia will be held the 15th September in the fabulous setting of the Ljubljana Castle.

Since it was incredibly complex to plan my travel to get there, I'll make it worth the effort by having two talks:

  1. Introducing Hibernate OGM: porting JPA applications to NoSQL
  2. Introduction to Byteman and The Jokre

Both projects are very young, in fact I think this is going to be the first time we reveal (1) the Jokre - a very innovative optimisation engine - and Hibernate OGM is definitely a hot topic.

I also look forward to see the other talks of the day, meet team mates such as Bela Ban from JGroups and Infinispan, Adam Warski the creator of Hibernate Envers (but presenting Torquebox & CDI), Aleš Justin the Weld lead and master of the conference, and everyone else meeting there: above all, it's always nice to hear what people do or would like to do with the tools we build, and meeting more people willing to join the open source effort.

1- please don't cheat by downloading the source code yet: it's pointless, you won't understand it. If you do, please add some comments to the code.

While our focus has been on the exciting new improvements in Hibernate Search 4, since the release of the last stable release 3.4.0.Final we had much interesting feedback from the community, including bugreports and patches.

Since some contributors have asked for a bugfix release, here comes Hibernate Search 3.4.1.Final!

What's new

  • Some tricky indexing issues with @IndexedEmbedded entities in a @ManyToOne relation fixed
  • Faceting was a new feature, several bugs where fixed
  • 3.4 introduced dirty checking of collections: both a bug was solved and performance was improved even more

All details are tracked on JIRA.

A sad warning

As we now mention on the documentation too, Java 7 is not a recommended VM to use yet.

The usual links

As always distribution bundles are available from Sourceforge, or you can get it via Maven artifact. Questions can be posted on the forums, bugs can be discussed with us or posted to JIRA directly, possibly with unit tests.

Many thanks to Mathieu Perez, Nikita D, Kyrill Alyoshin, Elmer van Chastelet, Guillaume Smet and Samppa Saarela for their code analysis, tests and fixes.

Showing 1 to 5 of 12 blog entries