eXist-db 2.2RC2

The second release candidate for eXist 2.2 is available for download.

RC2 contains numerous bug fixes, enhancements and performance improvements. The new range index - introduced with RC1 - has seen a lot of real-world testing and bug fixing to make sure it is properly used by queries, so they benefit from the superior performance of this new index.

Beyond the new range index, a number of other performance bottlenecks have been identified. Each of those can have a huge effect on particular queries: for example, the removal of unnecessary type checks on index-assisted functions and redundant cleanup cycles in the query engine increased performance in some cases by factor 10 or more. NGram indexes have also seen a huge speed up with respect to indexing as well as query times. Finally, the query optimizer missed to descend into some types of expressions, causing them to run without optimization.

Using the NGram index to search Sanskrit texts

Noteworthy other changes include, but are not limited to:

  • Fix: a caching issue led to random index failures for data sets large enough to fill the entire caching space.
  • Fix: faster addition or insertion of nodes using update extensions. In particular, the time to append a node should not increase with the size of the document anymore.
  • Fix: removing a collection containing a large number of documents or subcollections resulted in a huge recovery log being written, which does not only consume disk space, but may eventually also lead to recovery failures.
  • Enhancement: faster consistency checks and thus backups.
  • Enhancement: allow queries to be terminated by user: now effectively stops all types of expressions that have blocked db shutdown before.
Query profiling with Monex

Nearly all apps shipping with eXist have been enhanced as well. There were so many changes and additions that we will need to cover them in a separate article during the next days, so please stand by.

The final release of eXist 2.2 is scheduled for the first half of August.

LTS 2.1.6 Released

New Monitoring and Profiling Interface

eXist Solutions GmbH today released eXist LTS version 2.1.6. Since the introduction of Long Term Support (LTS) in January 2014 this is already the 6th quality release of cherry-picked improvements. LTS releases contain all important fixes and enhancements from the develop branch of eXist while maintaining full backwards compatibility within the 2.1 production-ready branch. 

eXist LTS addresses the needs of enterprise-scale users that require a reliable and supported version of the open source version. With LTS, customers can easily stay up to date without taking the risk of building from the development branch, which may break existing code or introduce untested features.

Apart from various bug fixes, LTS 2.1.6 focuses on query performance and improvements to the backup system. 

eXist LTS is available as a subscription at http://exist-db.org. Subscribers may download version 2.1.6 from the Customer Portal.

eXist 2.2.RC1 and 2.1.2-LTS

We are very proud to announce the first release candidate for the next version of eXist, 2.2. The release candidate is feature complete, but not yet recommended for production use. Please let us know of any issues that you encounter so that we may resolve any unexpected bugs and finalise the release within the next month or so.

eXist 2.2 provides a new Range Index, which can accelerate your XQuery code and has proven to be upto 100 times faster than previous versions. This is the fastest release of eXist ever!

You can download the release from sourceforge.

eXist 2.2.RC1

New Range Index

2.2 features a reimplementation of the range index, the most important user-configurable index in eXist. As reported by users, some types of queries can run up to 100 times faster. The most dramatic performance increases have been observed on large data sets (with millions of documents) and queries on frequent strings. However, the new Lucene based index also brings many benefits for those working with smaller data sets.

While updates on the previous index system did not scale well with increasing collection sizes, the new index removes those limitations, thus allowing queries and updates to scale up. As previously reported by some users, problems with slow updates and increased memory usage have disappeared since switching to the new index.

Please refer to the documentation for more information.

Improved Crash Recovery

The new version also features a largely rewritten and simplified crash recovery, leading to a more robust recovery procedure and smaller transaction logs.


eXist 2.2.RC1 further extends it's Unix permission model, and now includes setUid and setGid bits. This both allows stored XQuerys to escalate permissions and enables the controlled sharing of Collection documents with groups os users. This is extremely important as it now makes it possible to call a query as an unpriviledged user and have it switch to a different effective user without providing a target for attacks.

Bug Fixes

2.2.RC1 includes numerous bug fixes, some of the highlights are:

  • Crash Recovery - Exceptions during transaction rollback no longer cause the database recovery to be aborted; Previously this was commonly seen as page not initialized errors.
  • Java Service Wrapper - No longer kills eXist if it takes longer than expected to shut down or start up.
  • Concurrency - Removed consequtive query invocation lockups, and many other small fixes.
  • Memory - Memory Leaks in the full text index were fixed.
  • Optimizer - Now descends into XQuery Update expressions.
  • Java Admin Client - It is no longer possible to accidentally lock out the admin user by mis-changing her password.

eXist 2.1.2 LTS Edition

For those commercial customers running eXist in production, eXist Solutions have updated the LTS (Long Term Support) edition of eXist to version 2.1.2. That release contains all critical bug fixes from 2.2.RC1, but without the new features, which still require more testing. 2.1.2 LTS is fully backwards compatible with 2.1 LTS.

XML Prague eXist Preconference

We are happy to announce the annual eXist-db users group meeting at the 'official' pre-conference day of the XML Prague 2014 conference!

The users meetup became a tradition during the past years. It is the best opportunity to meet the eXist-db developers and the eXist-db community.

For more information, head over to our preconference page.

eXist-db Subscription and Support Packages

eXist Solutions is happy to announce a new subscription offer of eXist-db along with complementary support packages, which are now available for order through the eXist-db homepage. The subscription - called eXist-db LTS - is a quality-assured distribution of eXist-db which is guaranteed to be maintained for at least 2 years for each major release.

While it is based on exactly the same Open Source code base, we want to make sure our customers build their applications on a stable foundation and benefit from the latest bug fixes and improvements without the risks of using a development version. LTS releases are provided at a higher frequency than the major releases and include cherry picked changes from the development branch. LTS versions within a major branch will all be backwards compatible.

The new support packages extend the LTS Subscription with a Service Level Agreement to guarantee a quick resolution of any issues or questions which may arise. Support covers all aspects of the application lifecycle from development via deployment to production.

The new services are backed by a larger team, which now also includes the developers of betterFORM, thus comprising the best competence available in backend and frontend development of XML-based applications.

With this announcement, eXist 2.1.1 LTS is made available to all subscribers. As part of the LTS service, we will continue to port critical changes back to the 2.1.x LTS branch for two years.