This repository has been archived by the owner on Jun 10, 2024. It is now read-only.
Releases: odpi/egeria-connector-xtdb
Releases · odpi/egeria-connector-xtdb
Consumability
🎉 New features
- Extends the sample high availability Helm chart to use a JDBC-based configuration for the document store
- The
jar-with-dependencies.jar
file that is used for the connector now includes all of its potential runtime dependencies for various pluggable persistence options so that these do not need to be found and downloaded separately. The only exception is JDBC drivers themselves (e.g. to PostreSQL, Oracle, etc): if you choose to use a JDBC-based back-end you will still need to download the database driver itself and make that jar file available in theLOADER_PATH
(same location as the connector jar itself). - Adds a configuration option to directly specify the Crux configuration as an EDN string rather than a JSON structure. This is expected to be used rarely, and requires you to explicitly configure certain Lucene settings if you opt to use it, but may be necessary in certain rare cases.
🧑🔧 Migration
- Given the migration to the new Crux-native Lucene index, you should allow Crux to re-index itself by following Crux's instructions for rebuilding indexes
- Any metadata in an existing 2.8 Crux repository will need to be migrated (see the Migration Guide); this step is not necessary for a repository already at version 2.9, 2.10, 2.11, 3.0, nor for a new repository on 3.1
⚠️ Note
- Note that as the configuration for Lucene is now using Crux's built-in support, your configuration document should no longer use the
egeria.crux.lucene/lucene-store
module but instead should now use thecrux.lucene/lucene-store
module. If all you've defined is thedb-dir
parameter that can remain the same (though note need to re-index above); however, with the native Crux Lucene index you should now have additional options for configuring Lucene as well.
🔨 Dependencies
Performance
🎉 New features
- General update to include latest versions of dependent libraries
- Updates Crux to the latest available release (1.18.1):
- now uses Crux's native Lucene index, allowing other features there to be used (e.g. checkpointing)
- further improves performance of most operations
- Replaces all error / warning logging with the audit logging of Egeria itself
- Updated website for providing documentation of the connector and its usage (based on MkDocs)
🧑🔧 Migration
- Given the migration to the new Crux-native Lucene index, you should allow Crux to re-index itself by following Crux's instructions for rebuilding indexes
- Any metadata in an existing 2.8 Crux repository will need to be migrated (see the Migration Guide); this step is not necessary for a repository already at version 2.9, 2.10, or 2.11, nor for a new repository on 3.0
⚠️ Note
- Note that as the configuration for Lucene is now using Crux's built-in support, your configuration document should no longer use the
egeria.crux.lucene/lucene-store
module but instead should now use thecrux.lucene/lucene-store
module. If all you've defined is thedb-dir
parameter that can remain the same (though note need to re-index above); however, with the native Crux Lucene index you should now have additional options for configuring Lucene as well.
🔨 Dependencies
Maintenance
🎉 New features
- General update to include latest versions of dependent libraries
- Now uses Crux dependencies straight from Maven Central rather than clojars
- Updates Crux to the latest available release (1.17.1)
🧑🔧 Migration
- Any metadata in an existing 2.8 Crux repository will need to be migrated (see the Migration Guide); this step is not necessary for a repository already at version 2.9 or 2.10, nor for a new repository on 2.11
🔨 Dependencies
Bug fixes and HA
🎉 New features
- Adds a sample Helm chart for setting up a high availability (HA) configuration of the connector, as well as a guide explaining how to do so
- Updates Crux to the latest available release (21.05-1.17.0), which adds its own query optimization that in turn appears to significantly improve the
getRelatedEntities
graph query (now 3-4x faster) - Adds a suite of unit tests to provide code coverage and automated testing during build process (uncovering various bugs fixed below)
🐞Bug fixes
- Adds null-handling in various locations to address potential
NullPointerException
s - Corrects a bug in the deserialization of Classification details (#115)
- Corrects a bug in the persistence layer migration utilities to provide idempotency (#117)
- Corrects a bug that would have prevented searching from working against multiple subtypes (#118)
- Corrects a bug that would have prevented searching from working against multiple statuses (#119)
- Corrects a bug where certain MetadataCollection methods (i.e.
deleteEntity
) were doing a number of persistent operations without being wrapped within a single transaction for atomicity (#120) - Corrects a bug that would have still attempted a Lucene-based query even if Lucene is not enabled and configured (#123)
- Corrects a bug that would have prevented a particular style of nested query to fail (#125)
- Corrects a bug where the
maintainedBy
field was not updated during a restore operation (#128) - Corrects a bug where the version of a classification was double-incremented during an update (#130)
- Corrects a bug where the entity undo operation could undo a classification rather than the last entity update (#131)
- Corrects a bug where saving a reference copy classification updated the underlying entity's version (#132)
- Corrects a bug where attempting to remove a non-existent reference copy classification would have thrown a TypeErrorException (should instead be a no-op) (#146)
- Corrects a bug where the default retrieval behavior (non-deleted instances only) was not being applied to the various graph queries (#149)
- Cascades deletions and purges in line with the logic discussed in odpi/egeria#5183
🧑🔧 Migration
- Any metadata in an existing 2.8 Crux repository will need to be migrated (see the Migration Guide); this step is not necessary for a repository already at version 2.9, nor for a new repository on 2.10
🔨 Dependencies
Performance enhancements
🎉 New features
- Significantly improves the speed of the various
find...
operations: now significantly better than linear scaling as volumes grow, and in general are at least twice as fast (in some cases 10x faster) than in the 2.8 release - These improvements have also benefited some other non-search operations (
reIdentifyEntity
,deleteEntity
), which are now approximately 3x faster than in the 2.8 release - The
getRelatedEntities
graph query is now approximately twice as fast as in the 2.8 release - Adds a set of migration utilities for migrating any existing (2.8 release) repository to a later release (see below)
- Sets the
reIdentifiedFromGUID
property on all instances that have been re-identified, to provide full historical provenance of the instance even where it's GUID has changed over time - Improves retrieval of entity classifications for federated searches, aligned with odpi/egeria#5076
🧑🔧 Migration
- Any metadata in an existing 2.8 Crux repository will need to be migrated to 2.9 (see the Migration Guide); this step is not necessary for a new repository on 2.9
🔨 Dependencies
Initial release
This is the initial release of the Crux Plugin Repository Connector.
🎉 New features
- First repository for Egeria that fully supports metadata history: point-in-time retrieval, search, graph queries, etc.
- Built to fully support Crux's own pluggable back-ends and configurability
- Provides its own Lucene-based index for optimal text searches