Releases: b2ihealthcare/snow-owl
Snow Owl v5.1.0
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
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 isLATEST
, available strategies areALL
,LATEST
,HISTORY
)
- New search options for SNOMED CT Reference Set Members:
acceptabilityId
characteristicTypeId
correlationId
descriptionFormat
mapCategoryId
operatorId
targetComponent
unitId
valueId
- New
revisionCache
configuration option inrepository
section. Enables/Disables CDO revision cache based on its value (default value istrue
). - New
index
configuration options underrepository
section:commitInterval
- the interval in milliseconds, which specifies how often flush and sync index changes to disk (default is15000
, 15 seconds, minimum allowed value is1000
, 1 second)translogSyncInterval
- the interval in milliseconds, which specifies how often the transaction log flushes its changes to disk (default is5000
, 5 seconds, minimum allowed value is1000
, 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 is400
)queryInfoThreshold
- threshold in milliseconds, which specifies when to log an INFO level message in the log file about a slow query (default value is300
)queryDebugThreshold
- threshold in milliseconds, which specifies when to log a DEBUG level message in the log file about a slow query (default value is100
)queryTraceThreshold
- threshold in milliseconds, which specifies when to log a TRACE level message in the log file about a slow query (default value is50
)fetchWarnThreshold
- threshold in milliseconds, which specifies when to log a WARN level message in the log file about a slow fetch (default value is200
)fetchInfoThreshold
- threshold in milliseconds, which specifies when to log an INFO level message in the log file about a slow fetch (default value is100
)fetchDebugThreshold
- threshold in milliseconds, which specifies when to log a DEBUG level message in the log file about a slow fetch (default value is50
)fetchTraceThreshold
- threshold in milliseconds, which specifies when to log a TRACE level message in the log file about a slow fetch (default value is10
)
- New modules:
com.b2international.index.api
- Generic Index API modulecom.b2international.index.lucene
- Lucene based implementation of Generic Index API modulecom.b2international.index.api.tests
- Generic test cases to verify implementation modules of the Index API modulecom.b2international.index.api.tests.tools
- Useful utility classes when writing Index API based test casescom.b2international.collections.jackson
- Jackson ser/deser module forcom.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
v4.2.3
v4.5.0
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 to3 × 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
[documentation] Removed invalid comment