Releases: eXist-db/exist
eXist-db v3.1.0
eXist-db v3.0
eXist-db 3.0.RC2
(There were no release notes for this pre-release.)
First Release Candidate for eXist 3.0
It is our great pleasure to announce the first release candidate for eXist 3.0.
As always, the purpose of this release candidate is to collect
feedback on performance and compatibility. Whilst it is considered
feature complete, we would not yet recommend it for production
environments.
eXist 3.0.RC1 is the culmination of over 550 changes made in the last
six months. The main focus has been on fixing bugs, migrating to Java
8 and improving the performance of eXist. The move to Java 8 alone has
bought many internal improvements in eXist, enabling us to work with a
leaner and safer code base; Resulting in better resource and lock
management, and improved performance for our users.
New Features
- Support for XQuery 3.1, including the array and map data types,
serialisation and JSON parsing - Support for Braced URI Literals from XQuery 3.0
- Facility to boost attributes in the Lucene full text index
- eXist version detection for EXPath Packages. Packages, should
explicitly specify which versions of eXist they are compatible with;
eXist 2.2 is assumed by default. - Prototype support for Portable EXPath XQuery Extension Functions written in Haxe
Improved Performance
- Sequence type checking on recursive function parameters has been
drastically sped up - Lucene full-text and range indexes have been switched to "near
realtime" behaviour. This improves query performance on frequently
updated documents - Improved optimization of wildcard steps in path expressions, e.g.
prefix:* and *:name - Better performance for util:eval
- Optimisation of fn:fold-left and fn:fold-right
Mission Critical Bug Fixes
There have been numerous bug fixes and enhancements since eXist 2.2,
the most critical are:
- Patched a memory leak in the Java service wrapper that occurred on
certain Linux systems - Solved a potential deadlock which manifested when storing XQuery
files into the database under certain conditions - Fixed a memory leak when storing query results into the HTTP
session; Web applications making use of the HTTP session should now
consume less memory and scale further - Fixed an occasional deadlock when shutting down the database
- Fixes to match highlighting with the Lucene full text index
- Lucene range index now correctly handles != comparisons
Clean up and Refactoring
- Rewritten HTML5 Serializer
- Removed the legacy SOAP API and SOAP Server
- Removed the legacy Full Text Index
- Removed the Versioning extension; Will be made available as a
separate app package. - Rewritten XML:DB and XML-RPC APIs
- Updated to the latest version of RESTXQ
- Improved Java Admin Client document viewing and editing
- Clean up of eXist's Test suite
- Extensive internal refactoring to exploit new Java 8 features
Backwards Compatibility issues
- eXist-3.0.RC1 is not binary compatible with previous version of
eXist; The on-disk database file format has been updated, Users should
perform a full backup and restore to migrate their data. - eXist 3.0.RC1 and subsequent versions now require Java 8; Users must
update to Java 8! - There have been some small changes to some of the internal APIs.
e.g. XQueryService has been moved from DBBroker to BrokerPool. - EXPath packages that incorporate Java libraries may no longer work
with eXist 3.0 and may need to be recompiled for our API changes;
Packages should now explicitly specify the eXist versions that they
are compatible with.
eXist-3.0.RC1 is available for download below. The older Sourceforge download page is no longer updated. Maven artifacts for eXist-3.0.RC1 are available from our mvn-repo.
eXist-db v2.2
Release notes: https://exist-db.org/exist/apps/wiki/blogs/eXist/eXist22
See also:
- eXist-db 2.2RC2 Release notes: https://exist-db.org/exist/apps/wiki/blogs/eXist/eXist22RC2
- eXist-db 2.2RC1 Release notes: https://exist-db.org/exist/apps/wiki/blogs/eXist/eXist22RC1
eXist-db v2.1
eXist-db v2.0
Adapted from https://sourceforge.net/projects/exist/files/Stable/2.0/:
eXist-db 2.0 (final version)
The final release the eXist-db 2.0 version
A lot has changed on the surface compared to the tech preview: the new launcher integrates with the desktop and installs a system tray icon (on those systems which support it, i.e. Windows, Mac and some Unix flavors).
The dashboard is now the central hub of eXist-db and replaces the old home screen, featuring a range of plugins and apps. The entire web content has been modularised and moved into self-contained, installable apps. Creating your own apps should be rather painless using eXide's app wizard.
We'll be happy to hear any feedback on the product.
Summary
2.0 contains numerous new features and improvements. The most notable changes since the 1.4.x series are:
- Faster structural index (complete redesign)
- XQuery 3.0 features (e.g. try-catch, switch, higher-order functions - more to come soon)
- Tightened security model with multiple realms (LDAP/AD/OpenID...)
- Access control lists
- Improvements to XQuery optimization: more automatic rewrites
- Hot deployment of apps into a db from the application repository
- Simplified creation, setup and distribution of self-contained XQuery apps
- XQuery IDE (eXide)
- Efficient indexing of binary resources (PDF and co)
- Less memory use when processing binary values (streaming)
- New REST API based on XQuery 3.0 Annotations (project "Sleepy")
2.0 has been branched off from the development tree ("trunk"). Only bug fixes and selected improvements will be ported to the stable branch while development continues in trunk.
Please note that the security model has changed. Applications which worked on 1.4/1.5 might fail due to wrong permission settings (in particular, you now need execute permissions on a collection to see its contents). Make sure to check the documentation: http://exist-db.org/exist/security.xml
eXist-db v1.4.3
Adapted from: https://sourceforge.net/projects/exist/files/Stable/1.4.3/
Hello,
We are happy to announce the availability of eXist-db release 1.4.3. This version is a maintenance release and contains mainly bug fixes and (stability & performance) improvements. A detailed list of changes is included in this mail.
The software can be downloaded from Sourceforge: https://sourceforge.net/projects/exist/files/Stable/1.4.3/ . We recommend everybody to upgrade to this latest version.
Kind regards
The eXist-db development team.
Summary per SVN revision:
16460 - [bugfix]
Reindex operation needs to lock the collection tree or there might be index corruptions if concurrent threads are uploading data. Port of rev 16414 from trunk.
16601 - [performance]
Optimizer did not analyze typeswitch/switch and except/union/intersect, so expressions below those were not optimized.
Port of rev 16599.
16837 - [performance]
Collection cache was not scaling up properly to the limits set in conf.xml. This was a severe performance issue on databases with lots of collections (> 10000) and documents. The cache has been fixed to scale up to the defined memory limit almost immediately if required.
Port of rev 16836.
16975 - [bugfix]
Avoid unnecessary recovery runs: if a long-running query had to be killed during shutdown, eXist started a recovery run upon next startup - even though all transactions might have been committed. Recovery runs are always risky, so it is better to avoid them. I thus changed the transaction manager to keep track of uncommitted transactions. If there are no uncommitted transactions, a checkpoint will be written and the system will not attempt a recovery. This should improve overall stability.
16976 - [bugfix]
Further improvement on crash recovery: ignore a started transaction, which is otherwise empty (i.e. no write operations were done).
16985 - [bugfix]
Added more checks on the XQuery watchdog and thus allow a long running query to be aborted properly.
17021 - [bugfix]
Set correct module load path for modules imported from URI.
17116 - [feature]
Added configuration option enforce-index-use=strict|always to control how range range indexes will be used if only parts of the collection hierarchy define a matching index or indexes are inconsistent across collections. Experience showed that new users often have problems with the "strict" behavior, which was previously the default. With setting "always" the query engine relies on the user to define the correct indexes. It is easier to see why a certain collection is missing in the result than to understand why a query is breaking down due to inconsistencies in the indexing.
Port of revs 15780, 15781 and 17114 from trunk.
17127 - [bugfix]
Fix lucene match highlighting for phrase queries.
Port of rev 17126
17131 - [bugfix]
Updated mondial.dtd to match mondial XML file
eXist-db v1.4.1
eXist-db v1.4
Release notes: https://exist-db.org/exist/apps/wiki/blogs/eXist/Release14
See also:
- eXist-db 1.4RC Release notes: https://exist-db.org/exist/apps/wiki/blogs/eXist/Release14rc