XNAT 1.8.9 contains a wide-ranging set of performance improvements and related issues, driven primarily by the need to support increased scalability and modern authentication methods.
Note: Plugin Compatibility
This release is coupled with the release of Container Service 3.4.0, but does not include breaking changes or change version compatibility for other plugins.
As XNAT use cases continue to grow in scale as well as breadth, we recognize the need to support data on previously unimagined magnitudes. XNAT 1.8.9 introduces performance optimizations that were made to be able to support millions of image sessions stored in thousands of projects without affecting the performance of the application itself. While users of large XNAT systems may notice dramatic changes, all users should notice improved response times in these areas.
- XNAT-7299: Improve performance of XNAT data listings at scale
- XNAT-7311 & XNAT-7845: Improve performance of Project listing API calls on large systems
- XNAT-7312: Improve performance of Project-specific experiment listings for label validation
- XNAT-7316: Improve performance of Subject selector on Edit Experiment pages on large systems
- XNAT-7331: Enable users to create subjects and experiments concurrently in up to 10 threads without degrading performance
- XNAT-7703: Add paging support to site-wide APIs used for data listings
- XNAT-7796: Improve performance of scan count calculations on large systems
- XNAT-7831: Improve synchronization in Direct-to-Archive importers when importing many image sessions at once
- XNAT-7832: Eliminate unnecessary caching requests in database queries
- XNAT-7833: Prevent application stalls when creating 100,000 image sessions in a project
- XNAT-7857: Improve performance of Edit Subject page on large systems by eliminating unnecessary access confirmations
- XNAT-7859: Improve performance of permissions service when checking project access
Improved Support for Managing Login Methods
Via plugins such as the XNAT LDAP Authentication Plugin and the XNAT OpenID Plugin, and via the enabledProviders configuration setting in the site Admin UI, administrators can add additional authentication methods and determine which should be available to users. XNAT 1.8.9 adds several improvements to this capability.
- XNAT-7666: Improve identification of auth providers by using provider ID rather than auth method
- XNAT-7750: Create an API endpoint accessible to all users that lists enabled authentication providers
- XNAT-7789: Hide "Forgot Password" functionality if local XNAT authentication is disabled
- XNAT-7822 & XNAT-7843: Improve appearance of login page when only non-local authentication methods are enabled
Search Engine and other UI Improvements
Search tables should display more quickly overall thanks to the performance improvements listed above. However, other search functionality and display issues were addressed as well.
- XNAT-7371: Prevent over-aggressive deletion of cached searches
- XNAT-7749: Enable filtering on column headers in project-level search listings – originally addressed in XNAT 126.96.36.199
- XNAT-7782: Fix rendering of HTML in data table listings – originally addressed in XNAT 188.8.131.52
- XNAT-7784: Prevent search results from improperly truncating fractional time components
- XNAT-7786: Fix errors when using date/time filters in the search engine
- XNAT-7798: Address inconsistencies in case sensitivity in cached searches
Other UI Issues
- XNAT-7827: Fix CSS conflicts and collisions on the Project page introduced by Bootstrap styles in Custom Forms code
- XNAT-7846: Fix bug affecting reliability of subject and experiment counts
- XNAT-7850: Fix display bugs affecting redirection of previously logged-in users from the login page to the home page
In addition to these issues, a critical issue affecting stored search permissions was addressed.
Test Support and other Backend Improvements
As a part of overall performance improvements, our development and QA teams discovered the need for improved test support. Several other backend tickets may not have been directly related to large-scale performance, but were addressed as a part of this release.
- XNAT-7716: Fix bug in custom form REST tests
- XNAT-7726: Add test support for legacy plugin versions
- XNAT-7763: Improve reliability of SimpleEntityServiceTest
- XNAT-7801: Address unit test failures when evaluating certain Hibernate tables
Other Backend Issues
- XNAT-6064: Add support for very long values extracted from DICOM fields to xnat:field elements such as (0032,0040) Study Comments
- XNAT-6357: Address backend limitation preventing Download Images menu item from loading on large projects
- XNAT-7794: Fixed a bug in resource survey reports regarding non-actionable duplicates, which could cause an endless loop of "survey and mitigate" with no action. See the DICOM Survey and Mitigation User Guide for details – originally addressed in XNAT 184.108.40.206
- XNAT-7799: Modify XFTItem and OM classes to be serializable
- XNAT-7825: Improve BaseElement.getJSONProperty(0 method to check for null values
A note on XNAT-6357 and large downloads: Additional work will be required to address the capability of downloading 10,000+ image sessions via the Download Images page and the XNAT Desktop Client