Archive for February 19th, 2008

Compass 2.0.0 M2 Released

Tuesday, February 19th, 2008

Compass version 2.0.0 M2 has just been released. This is another great milestone in the 2.0 release train.

Main feature in this release include support for Lucene 2.3 version. A lot of work has gone into integrating new Lucene features into Compass in the best, simple and performant way. This release should see some very nice performance improvements.

The main enhancement in this release is in the area of transactions. Compass now makes use of Lucene transaction API, with a completely rewritten Read Committed transaction isolation support. Also, the batch insert transaction isolation level has been renamed to lucene transaction isolation level, and it now fully transactional as well as all the allowing all different operations (CRUD as well as search).

The main difference now between the two transaction isolation levels is the visibility of changes done during an on going transaction to the on going transaction operations. With Read Committed, if for example something is deleted from the index, then within the same transaction it will no longer show up. With Lucene transaction isolation level, the deletion will still be visible to search operations done within the same transaction.

In most cases, the lucene transaction isolation level is more than enough, but for systems that work with Compass as the main API (as oppose to working with ORM integration) the Lucene transaction can be easily used as well.

There are new parameters that can control different aspects of the two transaction isolations, so I highly recommend reading this section again.

I was debating with myself which transaction isolation should now be the default one. Currently, Compass still has the read committed isolation level as the default one (since it seems to yield slightly better performance), but the lucene transaction isolation level can certainly yield better performance under certain conditions. For long running transactions, lucene transaction isolation level is preferred. It would be great for people who try out the new version to give both of them a go and maybe post back some numbers?

There are more features in this release, which can be found in the release notes. Enjoy!.

Great quote from Dune

Tuesday, February 19th, 2008

I am reading the wonderful Dune book again and wanted to share the following quote:

Many have marked the speed with which the Muad’Dib learned the necessities of Arrakis. The Bene Gesserit, of course, know the basis of the speed. For the others, we can say that Muad’Dib learned rapidly because his first training was in how to learn. And the first lesson of all was the basic trust that he could learn. It is shocking to find how many people do not believe they can learn, and how many more believe learning to be difficult. Muad’Dib knew that every experience carries a lesson.

So true…