Skip to content
This repository has been archived by the owner on Nov 9, 2020. It is now read-only.

Releases And Support

Kenneth Jung edited this page May 24, 2017 · 14 revisions

Releases

Xenon is under active development, and new versions are released regularly. Releases can be found on the GitHub releases page, and artifacts can be found on Maven Central and Sonatype. Release numbers follow Semantic Versioning. For more information on the release process, see the Cutting a Release page.

Since the framework is still fairly early in its lifecycle, releases come at a fast cadence -- we aim to release once every two weeks, with specific point releases sometimes more frequent than that. Each release is subject to the same set of test and reliability requirements imposed by the Xenon CI environment. For more information on the test requirements for each release, see the Testing section of the developer guide.

Long-Term Support

The following releases are supported by the development team, including the creation of new critical releases as issues are identified, for a period of one year following initial release.

Releases

v1.5.0

Xenon 1.5.0 contains dependency updates, performance enhancements, and bug fixes.

  • Dependency updates -- Xenon 1.5.0 depends on Lucene 6.5.0 (from 6.0.0), GSON 2.8.0 (from 2.3.1), and Netty 4.1.10 (from 4.1.6). These changes should not have impact to Xenon consumers.

Notable Bug Fixes

  • Document expiration is now reported correctly to continuous queries, including continuous COUNT queries.

  • Fields which are inherited by a ServiceDocument type can now be used in SELECT_LINKS queries.

  • EXPAND, FIXED_ITEM_NAME, and SORT indexing options can now be specified for the same map or collection field in a ServiceDocument without causing indexing failures.

Breaking Changes

  • Process Management Service -- the process management service (/core/processes) is no longer started as a default service. Xenon consumers who need this service must start it manually. Note this is a different service than the service host management service (/core/management), which provides remote management capabilities for Xenon.

  • Sort Fields -- The naming scheme used for sorted DocValues fields (required for sorting and GroupBy queries) has changed in Xenon 1.5.0 so that multiple ServiceDocument types can contain fields with identical names and different indexing attributes. This is transparent during normal operation, but may be a breaking change for upgrade scenarios which depend on reusing a Lucene index generated by a previous version of Xenon. Callers in this situation can disable the new naming scheme using a JVM flag.

  • Query Page Links -- Query page links (nextPageLink and prevPageLink in a ServiceDocumentQueryResult) use forwarding to direct requests to the correct host in a node group. However, in some circumstances, exposing the forwarding service to general callers can be a security vulnerability. To remedy this, Xenon 1.5.0 contains a new dedicated forwarding service for query pages (at /core/query-page-forwarding) and provides query page links relative to this new forwarding service. This should be transparent in most circumstances, but can be a breaking change for callers who depend on the existing format. Callers in this situation can disable the new naming scheme using a JVM flag.

v1.4.2

Xenon 1.4.2 contains new features, performance enhancements, and bug fixes.

Major Changes

  • In-memory Lucene index -- The new InMemoryLuceneDocumentIndexService uses the same code as the existing LuceneDocumentIndexService, but uses the Lucene RAMDirectory index store for document storage instead of using memory-mapped files. The in-memory index is significantly faster than the disk-based index, supports Xenon's existing replication and indexing, and supports disk-based backup and restore, but does not otherwise persist documents (so they can be lost across host restarts).

  • Incremental backup -- Xenon now supports incremental backup to a local directory. Incremental backup copies only new and modified files and deletes unused index files in the backup directory to reflect the most recent state of the index.

  • Field selection in queries -- Xenon now supports the EXPAND_SELECTED_FIELDS option which returns only a set of caller-specified fields when expanding results documents.

  • Continuous COUNT queries -- Xenon now supports the COUNT option for continuous queries. When a continuous COUNT query is created, the continuous results will track the number of service creation, update, and deletion operations which match the specified query.

Breaking Changes

  • All variants of ServiceHost.initialize have been updated to avoid calling setProcessOwner(true), which means that your Java process will no longer exit when a DELETE is sent to /core/management. To reenable this behavior, it is necessary to manually call setProcessOwner after calling initialize.

  • Document signature calculation has changed. If document signatures are stored to disk somehow (unlikely) then this may cause issues.

For a full description of the changes in this release, please consult the changelog.

v1.4.1

Xenon 1.4.1 contains minor changes and bug fixes.

For a full description of the changes in this release, please consult the changelog.

v1.3.7

Xenon 1.3.7 contains new features, performance enhancements, and bug fixes.

For a full description of the changes in this release, please consult the changelog.

Major Changes

  • Purge all document versions for recreation -- When deleted self link is recreated with POST + PRAGMA_FORCE_INDEX_UPDATE, the index service will purge all previous documents. This avoids duplicate versions, for the same self link appearing in the index, which can happen due to synchronization or migration (even if the runtime does do a best effort to increment the version when a self is recreated)

  • Support for QueryOption#TIME_SNAPSHOT -- The new query option will return results that contain latest versions of documents as on a given time. QuerySpecification#timeSnapshotBoundaryMicros will allow specifying the time.

  • Remove LuceneBlobIndexService -- The service was originally used for binary serializing service context in pause / resume, which now uses a custom file based service (since 1.2.0)

v1.3.6

Xenon 1.3.6 contains new features, performance enhancements, and bug fixes.

For a full description of the changes in this release, please consult the changelog.

Major Changes

  • Support for Operation Tracing in Xenon UI -- Introduce "Operation Tracing" feature to Xenon UI that allows users to trace operations sent or received by a service host instance via an interactive query builder and examine results visually.

  • GroupBy query fixes for Numeric Fields -- Fix groupBy on numeric fields. When annotated with PropertyIndexingOption.SORT, add a SortedDocValuesField for the numeric property. The change has no impact on how query specification is written. However a blue-green update is necessary in order for previously indexed documents to be queried using groupBy on a numeric field. Documents which match the query but have the groupBy term missing are returned under a special group "DocumentsWithoutResults".

  • Index upgrade support for Xenon v1.1.1 and older -- Added support for index upgrade from pre 1.1.1 version. Should be used only as a last resort. If the xenon.kryo.handleBuiltInCollections system property is set to false, index contents can be read back ONLY from pre-1.1.1 created indeces. If documents don't hold instances created by Collections.emptyList() and friends upgrade will still be possible without using this property.

v1.3.5

Xenon 1.3.5 contains new features, performance enhancements, and bug fixes.

For a full description of the changes in this release, please consult the changelog.

Major Changes

  • Support for HTTP/2 over TLS -- this release supports HTTP/2 connection sharing to secure endpoints. Making use of this feature requires that client projects make use of OpenSSL for ALPN support through inclusion of a Netty tcnative library in the classpath; without this library, the system will fall back to HTTP 1.1 for connections to secure endpoints. For details, see the wiki page.

  • Gateway service —- this release adds a native gateway service which can be used to facilitate blue/green upgrades of Xenon node groups. The gateway service can be used during upgrades to pause incoming traffic while data is being migrated to the new node group. Once data has been migrated, the gateway can be resumed to point all incoming traffic to the new node group.

  • Version lookup caching -- this release implements version lookup caching inside the document index service. This is a significant optimization for general queries which return many of results over documents with multiple versions. This change is transparent to clients and does not change the document query API.

v1.3.4

Xenon 1.3.4 contains new features, performance enhancements, and bug fixes. Notably, this change adds an implicit result limit for queries.

For a full description of the changes in this release, please consult the changelog.

Major Changes

  • Implicit Query Result Limits -- this release adds an implicit result limit to Lucene index queries which are not paginated and do not specify an explicit result limit. The default value is 10,000 results. Well-behaved clients should not be impacted, but queries which return more results than the implicit limit will be failed by the framework. For more details, see the tracker issue.

v1.3.3

Xenon 1.3.3 contains bug fixes.

For a full description of the changes in this release, please consult the changelog.

v1.3.2

Xenon 1.3.2 contains performance enhancements and bug fixes.

For a full description of the changes in this release, please consult the changelog.

v1.3.1

Xenon 1.3.1 contains new features, performance enhancements, and bug fixes. Notably, this change adds support for delegating authentication to an external service.

For a full description of the changes in this release, please consult the changelog.

Major Changes

  • Delegated authentication -- this release adds support for redirection of un-authenticated API requests to an external service for authentication, as well as verification of access tokens generated by such a service. For full documentation, see the external authentication page.

  • Sort by multiple fields -- this release adds support for queries to specify multiple fields to use when sorting results. For full documentation, see the query task service page.

Breaking Changes

  • Removal of OperationOption.SEND_WITH_CALLBACK -- SEND_WITH_CALLBACK was an experimental protocol which allowed the re-use of an HTTP connection for multiple requests. This functionality has largely been supplanted by HTTP/2 in Xenon with the caveat that HTTP/2 does not currently support TLS; this is forthcoming in a subsequent release.

Previous Releases

For releases prior to v1.3.1, please consult the changelog.

Clone this wiki locally