8.1.0
RESTHeart 8.1.0
Release Notes
💡 Highlights
- Performance Enhancements: Leveraged virtual threads for GraalVM polyglot context allocation and caching mechanisms for improved performance.
- GraphQL Enhancements: Added configuration options for caching, and made GraphAppsUpdater more efficient, reducing the impact of cache invalidation.
- Native Image Improvements: Enhanced native image support by fixing missing modules, upgrading dependencies, and resolving several build issues.
- Security and Bug Fixes: Addressed thread leaks, unsanitized input vulnerabilities, and other important bug fixes.
🆕 New Features
- Virtual Threads in GraalVM Polyglot: Optimized polyglot context allocation with virtual threads, introducing a queue to reuse contexts, which greatly improves performance ([0832bc9]).
- GQL Cache Toggle: Introduced a configuration option to disable the GraphQL application cache (
/graphql/app-cache-enabled->false
) to facilitate testing and development ([5e58b4c]). - GraphAppsUpdater: Added a new component to periodically revalidate entries in the GraphQL applications cache, ensuring consistency and reducing unnecessary invalidations ([1267a82]).
🚀 Performance Improvements
- Graph App Initialization: Apps are now initialized on separate threads, significantly reducing startup time ([75438cd]).
- Caching Improvements:
- Caffeine Cache Updates: Virtual threads are now used for the Caffeine cache's async methods, contributing to better overall throughput ([d5a8e8d]).
🐛 Bug Fixes
- Thread Leak in ChangeStreamWorker: Fixed a thread leak that occurred due to inactive change streams ([743e169]).
- Missing Modules and Dependencies: Added the missing metrics module to the native image to resolve incomplete builds ([04ddcb5]).
- PolyglotDeployer Bugs:
🧼 Refactoring and Cleanups
- CleanerUtils: Refactored to use virtual threads for resource cleanup ([54c6a7a]).
- URLUtils and RequestLogger:
- JwtAuthentication: Added a method to validate key complexity, improving the robustness of authentication ([e0d8b8b]).
⬆️ Dependency Upgrades
- Truffle: Upgraded to version 24.1.0 ([d4a074f]).
- Undertow: Upgraded to version 2.3.16.Final, followed by a subsequent update to 2.3.17.Final ([88cf353], [db8f15a]).
- MongoDB, Logback, and ClassGraph: Updated to the latest versions to maintain compatibility and security ([b0946a7]).
🚚 Native Image and Docker Improvements
- GraalVM and Native Image Fixes: Resolved multiple issues related to GraalVM native images, including adding dependencies, optimizing polyglot classes, and addressing build breakages caused by transitioning from fat jars to
restheart-core
packaging ([2495713]). - Docker Updates:
👀 Other Noteworthy Changes
- Plugin Deployment Optimization: Optimized plugin deployment by excluding unnecessary JARs from startup scanning ([8911f70]).
- Native Image Debug Logging: Added debug-level logging for JARs found in
/lib
directories to assist in debugging ([e486c73]).
🔥 Breaking Changes
- Packaging Changes: The former
restheart-core.jar
has been renamed torestheart.jar
as part of the ongoing refactoring and modularization effort. Adjust your configurations accordingly if you were referring to the previous artifact name.
🧌 Known Issues
- Standalone Mode: The graph apps initializer has been disabled in standalone mode due to potential startup conflicts ([cc93aa7]).
Full Changelog: 8.0.14...8.1.0