Skip to content

Releases: b2ihealthcare/snow-owl

Snow Owl v5.1.0

24 Jan 13:55
Compare
Choose a tag to compare

Java 8 support

Snow Owl is now using Java 8 both compile time and runtime. Make sure your execution (and development, if you are developing custom plug-ins for Snow Owl) environment supports and uses Java 8. From 5.1.0, the minimum required Java version is 1.8.0 update 102.

Snow Owl v5.0.0

24 Jan 13:56
Compare
Choose a tag to compare

Breaking changes

This section discusses the changes that you need to be aware of when migrating your application to Snow Owl 5.0.0.

Datasets created before 5.0.0

Snow Owl v5.0.0 no longer supports nested index directory format. The new format is flat, branches do not have their own directories under the corresponding terminology repository's root index folder. Branching and revision information are coded into each document and each terminology component has multiple documents in the index, which is called revision index and the documents are revisions. Additionally with the new index format, Snow Owl moved from Lucene v4.9.0 to v5.5.0. Indexes, that still use the old index API, but depend on the new Lucene version, should be accessible and readable by Lucene v5.5.0.

To support migration of incompatible datasets, Snow Owl v5.0.0 comes with a reindex command, which can be used to create the new index for any dataset based on the contents of the relational database. See updated Admin Console Reference Guide for details.

Java API changes

Due to index format changes, public APIs (generic and/or SNOMED CT terminology related) - that used the old format - become obsolete, and either marked with deprecated annotation or have been completely removed. See the affected public APIs in the Removed section.

Review API changes

In general the Review API still works the same way as in the 4.x versions, but the new, changed, deleted concept ID sets might contain non-Concept identifiers when a member of a Relationship/Description changes, but the corresponding Relationship/Description does not. It is recommended to fetch the container SNOMED CT Concept identifier by querying the source branch for the new or changed Relationship/Descriptions, and extracting the SNOMED CT Concept identifier from either the conceptId or sourceId properties. Querying deleted revisions from the tip of a branch is currently not supported, see next section.

With this change and limited capabilities, Snow Owl will no longer support the current version of the Review API starting from the next release (5.1.0), and it will replace it with a more generic Branch Compare API. This new API will return the new/changed/deleted document identifiers directly without trying to be smart and replace the document identifier with the corresponding container (root resource, like the SNOMED CT Concept) component identifier. API consumers will be responsible for fetching and computing the final compare result based on the actual changes between the branches, if they would like to still show the review in the scope of a SNOMED CT Concept. This enables Snow Owl to use the same Branch Compare API for different terminology implementations and the API will provide access points to query the proper revision of new/changed/deleted components (currently it only supports the latest revision, which returns HTTP 404 Not Found for deleted components).

Added

  • Maintenance commands:
    • snowowl reindex <repositoryId> <failedCommitTimestamp> - Reindexes the currently available database content from scratch, or from the specified commitTimestamp (if a previously initiated reindex process has failed at some point)
    • snowowl optimize <repositoryId> <maxSegments> - Optimizes the underlying index for the repository to have the supplied maximum number of segments (default number is 1)
    • snowowl purge <repositoryId> <branchPath> <purgeStrategy> - optimizes the underlying index by deleting unnecessary documents from the given branch using the given purge strategy (default strategy is LATEST, available strategies are ALL, LATEST, HISTORY)
  • New search options for SNOMED CT Reference Set Members:
    • acceptabilityId
    • characteristicTypeId
    • correlationId
    • descriptionFormat
    • mapCategoryId
    • operatorId
    • targetComponent
    • unitId
    • valueId
  • New revisionCache configuration option in repository section. Enables/Disables CDO revision cache based on its value (default value is true).
  • New index configuration options under repository section:
    • commitInterval - the interval in milliseconds, which specifies how often flush and sync index changes to disk (default is 15000, 15 seconds, minimum allowed value is 1000, 1 second)
    • translogSyncInterval - the interval in milliseconds, which specifies how often the transaction log flushes its changes to disk (default is 5000, 5 seconds, minimum allowed value is 1000, 1 second)
    • queryWarnThreshold - threshold in milliseconds, which specifies when to log a WARN level message in the log file about a slow query (default value is 400)
    • queryInfoThreshold - threshold in milliseconds, which specifies when to log an INFO level message in the log file about a slow query (default value is 300)
    • queryDebugThreshold - threshold in milliseconds, which specifies when to log a DEBUG level message in the log file about a slow query (default value is 100)
    • queryTraceThreshold - threshold in milliseconds, which specifies when to log a TRACE level message in the log file about a slow query (default value is 50)
    • fetchWarnThreshold - threshold in milliseconds, which specifies when to log a WARN level message in the log file about a slow fetch (default value is 200)
    • fetchInfoThreshold - threshold in milliseconds, which specifies when to log an INFO level message in the log file about a slow fetch (default value is 100)
    • fetchDebugThreshold - threshold in milliseconds, which specifies when to log a DEBUG level message in the log file about a slow fetch (default value is 50)
    • fetchTraceThreshold - threshold in milliseconds, which specifies when to log a TRACE level message in the log file about a slow fetch (default value is 10)
  • New modules:
    • com.b2international.index.api - Generic Index API module
    • com.b2international.index.lucene - Lucene based implementation of Generic Index API module
    • com.b2international.index.api.tests - Generic test cases to verify implementation modules of the Index API module
    • com.b2international.index.api.tests.tools - Useful utility classes when writing Index API based test cases
    • com.b2international.collections.jackson - Jackson ser/deser module for com.b2international.collections.api module

Changed

  • Improved change processing performance by loading only the relevant revisions from the index
  • Log entry format of requests has changed to the following
    • The logged entry is now a valid JSON object
    • Format: {"repositoryId":"string", "type":"string", "metrics": {...}, ...request specific properties}
  • Metrics
    • All values are measured in milliseconds
    • Read operations measure their execution time (responseTime)
    • Commit operations measure their execution time (responseTime) and commit subtask execution times (preCommit, preRequest, traceability, indexing, commit)

Removed

  • Deprecated public SNOMED CT APIs that have been replaced by the new Request based APIs
    • SnomedTerminologyBrowser
    • SnomedStatementBrowser
    • SnomedPredicateBrowser
    • SnomedComponentService
    • SnomedTaxonomyService
  • Configuration options:
    • indexTimeout configuration has been removed, because the new index API uses a single index and it does not require disposal of branch specific Index Readers/Writers

v4.4.1

20 Jan 12:48
Compare
Choose a tag to compare

A maintenance release of Snow Owl, based on the v4.4 release.

v4.2.3

18 Jan 14:19
Compare
Choose a tag to compare

A maintenance release of Snow Owl, based on the v4.2 release.

v4.5.0

30 Nov 16:12
Compare
Choose a tag to compare

Added

  • Support for simple and query type reference sets and members in RESTful API
    • GET /:path/refsets
    • GET /:path/refsets/:id
    • GET /:path/refsets/:id/history
    • POST /:path/refsets
    • POST /:path/refsets/:id/actions
    • GET /:path/members
    • GET /:path/members/:id
    • POST /:path/members
    • PUT /:path/members/:id
    • DELETE /:path/members/:id
    • POST /:path/members/:id/actions
  • Integration with Component Identifier Service (CIS), see configuration_guide.adoc for details on how to configure it
  • Indexing term, language code and acceptability values on SNOMED CT Description documents
  • Initial version of the resource expansion API is currently available (expand fsn, pt, descriptions and other nested resources within a single request)
  • numberOfWorkers configuration parameter to tweak worker threads per repository (by default it will be set to 3 × number of cores)

Changed

  • Fixed bug in Accept-Language header by introducing Extended Locales to support language reference set IDs properly (BCP-47 limits the extension to a maximum of 8 characters)
  • Increased asyncTimeout in Tomcat to 60 seconds
  • Performance improvements on some endpoints by utilizing the new resource expansion API
  • Marked a bunch of old APIs as deprecated, they will be removed in upcoming releases

Removed

  • Removed label indexing from SNOMED CT component indexing (using Description term index field to find a label)

Merged pull requests

Known issues

  • CIS is currently unsupported in SNOMED CT RF2 imports (manual synchronization is required)
  • Simple type mapping reference set membership is not tracked properly if there are multiple mappings for a single referenced component

v4.3.0-RC1

18 Sep 14:55
Compare
Choose a tag to compare
[documentation] Removed invalid comment