Help

Inactive Bloggers

If you are around in London the evening of the 14th of January, I would love to see you at our monthly JBUG event.

We'll start the evening with an introduction to Hibernate Search, including basics of concepts from Apache Lucene, and then discuss the novelties you'll find in Hibernate Search 5.0, before discussing the more advanced features. That should be interesting both for those of you already familiar with the technology, and for those who never heard of it and are now wondering how and if it could help you.

The event will be at Skills Matters, organized by our partner C2B2, and after the demo we'll have plenty of time for pizza, beers and face to face discussions about all things Hibernate.

Please find all venue details on meetup.com and don't forget to register here.

Today we're releasing two maintenance versions of Hibernate Search:

Backporting performance improvements

Normally we would not backport new features to maintenance releases, but some of the great performance improvements of the new indexing engine of upcoming Hibernate Search 5 such as {HSEARCH-1693, HSEARCH-1699, HSEARCH-1725} seem to be very desirable. These are not introducing any API or functionality change, so we could backport them at virtually no risk.

This means you can now easily upgrade your Hibernate Search 4.4.x and 4.5.x applications without necessarily needing to migrate to Hibernate Search 5. Remember though: there are a lot more improvements coming in 5! If you want all the nice improvements you'll have to eventually migrate.

What was not backported

These new backends were created because performance testing of the Infinispan indexing engine highlighted some problems in our backend when using an Infinispan Directory; so while these patches provide an impressive boost on their own, they will be far more effective when paired up with latest Infinispan 7 as some changes where applied to Infinispan too. But we're not upgrading these maintenance branches of Hibernate Search 4 to Infinispan 7 as that would break all of your configurations. To take benefit of the updated Infinispan integration you'll need Hibernate Search 5. Another great reason to move to Hibernate Search 5 is of course the update to latest Apache Lucene; so these updates announced today should be a nice an easy performance boost but if you are serious about needing the highest speed please keep testing version 5.

Feedback needed!

While these impressive improvements were created after specific diagnostics work on Infinispan, the benefits are not Infinispan specific: you should be able to experience a significant throughput boost with any storage. The exception is if you were using the NRT backend: I don't expect you to see any benefit in that case. Although if you were forced to use NRT because of throughput needs but didn't like the tradeoffs, you might no longer need to use NRT as the new non-NRT backend could be nearly as efficient.

You can now upgrade to Version 5.0.0.Beta3 of Hibernate Search, and benefit from the following improvements:

Indexing Performance

We did some further polishing of the shiny new backend improvements introduced by last week. I would be really happy to get some feedback on this, as you should be able to get a very significant performance boost on index writing - whatever the storage technology you're using. We're preparing some large scale tests, but the environments we can test on are limited so I'd be happy if you could send us a note on what your experience with it looks like.

The new design should have a significant improvement in throughput, but also requires less locking, needs less threads and will result into less pressure on GC as it has a lower allocation rate.

JDK9 compatibility

We now have continuous integration running for Java 9 (preview builds) running as well. Except the OSGi integration tests running in Apache Karaf, everything else seems to work fine.

API changes

We're now polishing the API, and it's possible that this might be the last Beta. Two very frequently used interfaces were renamed; please don't miss the Migration Guide.

As always, looking forward for your experience with it! ideas and suggestions on the mailing list or via IRC.

Sanne

I am happy keep the Hibernate Search 5 release train rolling by announcing Hibernate Search 5.0.0.Beta2. Download it from the JBoss Maven Repository using the GAV org.hibernate:hibernate-search:5.0.0.Beta2 or from SourceForge. The full change log is available via the JIRA release notes.

As Sanne mentioned on the Beta1 release blog, it is all about getting the final release of Search 5 over the finish line. The resolved issues are mostly minor and center around polishing API and documentation. In particular the geospatial support got a bit of an overhaul. One issue, however, stands out of the crowd - HSEARCH-1699. It deals with how synchronous index updates are applied. You as user are probably only interested in the indexing performance you gain (our initial tests show they are considerable and we will follow up with some numbers). Still, in case you want to know more, refer to the JIRA issue which outlines the gory details.

Make your voice heard and give us your feedback, for example via the mailing list or on IRC.

Enjoy!

For more information, please see:

Most changes applied to both versions. Of note are:

  • HHH-9312 fixed a database connection leak with JTA transaction tracking caused by a transaction timeout detected by a background thread with the transaction rolled back immediately; the background thread was not closing the database connection when Synchronization.afterCompletion(int status) was called; instead, the database connection was not closed until the next application request that used the affected Hibernate session.
  • HHH-9387, HHH-9389, and HHH-9390 fixed some bugs in generated table and foreign key column names for collections when JPA annotations were used. Because these fixes could break existing applications (that rely on the incorrectly generated table and column names) they are not fixed by default. A new API (NamingStrategyDelegator) was added (HHH-9388) to enable these fixes because the NamingStrategy API was too inflexible to allow making changes without causing regressions when a custom NamingStrategy is used. NamingStrategy has been deprecated (HHH-7079 in favor of this new API. Documentation for the NamingStrategyDelegator API has not been added to the manual yet, and the API is not supported in the standalone schema tools yet. Both will be added in 4.3.8 and 4.2.17. For now, you can see details about enabling the fix in the Jira issues.
  • HHH-9305 fixed various bugs in SQL generated for HQL queries that contain an implicit join. The following are examples of HQL affected by this bug are:
       // e.department is implicitly joined in the "select" clause, and is explicitly joined in the "from" clause
       select e.department from Employee e inner join e.department

       // a.zoo is implicitly joined in the "select", "where", and "order by" clauses
       select distinct a.zoo from Animal a where a.zoo is not null order by a.zoo.name

There were several fixes made to 4.3.7 (only):

  • HHH-8839 fixed a bug that caused an IllegalStateException when rendering the SQL for loading an entity with an eager map having an entity key.
  • HHH-8895 fixed a bug that caused a SQLGrammarException when enabling a filter that is defined on a @MappedSuperclass hierarchy because the filter condition was getting applied to all tables in the hierarchy, instead of just one where the filter is defined.
  • HHH-3868 fixed a bug that caused NullPointerException when merging an entity Merging transient entity with an @Embeddable property containing a @org.hibernate.annotations.Parent mapping.

JBoss Nexus: https://repository.jboss.org/nexus/content/groups/public/org/hibernate
Maven Central: http://repo1.maven.org/maven2/org/hibernate/hibernate-core (should update in a couple of days)

SourceForge: https://sourceforge.net/projects/hibernate/files/hibernate4
4.3.7.Final Downloads: 4.3.7.Final ZIP, 4.3.7.Final TGZ
4.2.16.Final Downloads: 4.2.16.Final ZIP, 4.2.16.Final TGZ

Showing 6 to 10 of 1232 blog entries