Release Notes¶
GraphDB release notes provide information about the features and improvements in each release, as well as various bug fixes. GraphDB’s versioning scheme is based on semantic versioning. The full version is composed of three components:
major
.minor
.patch
e.g., 9.11.2
where the major version is 9
, the minor version is 11
and the patch version is 2
.
Occasional versions may include a modifier after a hyphen, e.g., 10.0.0-RC1
to signal additional information, e.g.,
a test release (TR1, TR2 and so on), a release candidate (RC1, RC2 and so on), a milestone release (M1, M2 and so on),
or other relevant information.
Note
Releases with the same major and minor versions do not contain any new features. Releases with different patch versions contain fixes for bugs discovered since the previous minor. New or significantly changed features are released with a higher major or minor version.
GraphDB 10 includes the following components with their version numbers:
RDF4J
GraphDB Connectors
GraphDB Workbench
Their versions use the same semantic versioning scheme as the whole product, and their values are provided only as a reference.
GraphDB 10.0.3¶
Released: 18 October 2022
Component versions¶
RDF4J |
Connectors |
Workbench |
4.1.3 |
16.0.1 |
2.0.3 |
GraphDB 10.0.3 is a patch release that addresses various bugs identified in the 10.0 series. RDF4J was upgraded to 4.1.3, which contains important bug fixes too.
We recommend everyone to upgrade.
GraphDB Engine & Cluster¶
New features and improvements¶
GDB-7372 Upgrade RDF4J to 4.1.3
Bug fixing¶
GDB-7462 Cluster node cannot recover if last transaction is not processed in snapshot
GDB-7357 External proxy does not return the WWW-Authenticate header
GDB-7320 Partial data is imported from OntoRefine via SPARQL SERVICE
GDB-7246 GraphDB 9.X repositories with SHACL enabled get migrated to non-SHACL repositories in GraphDB 10
GraphDB 10.0.2¶
Released: 1 August 2022
Component versions¶
RDF4J |
Connectors |
Workbench |
4.0.3 |
16.0.1 |
2.0.2 |
GraphDB 10.0.2 is a patch release that addresses an issue with migrating existing connectors created in GraphDB 9.x.
If you have already migrated from 9.x to 10.0.1, there is no need to update to 10.0.2.
GraphDB 10.0.1¶
Released: 26 July 2022
Component versions¶
RDF4J |
Connectors |
Workbench |
4.0.3 |
16.0.0 |
2.0.2 |
GraphDB 10.0.1 is a patch release that fixes some of the issues identified in GraphDB 10.0.0, provides minor improvements, and version upgrades of various libraries to address security vulnerabilities.
It is recommended for everyone to upgrade.
GraphDB Engine & Cluster¶
New features and improvements¶
GDB-7153 Provide a user-friendly error message when the configured SSL certificate cannot be loaded
GDB-7132 As a user, I want my license to be checked when creating a cluster
Bug fixing¶
GDB-7207 Error in implicit cluster transactions leaves stale transactions
GDB-7184 Out-of-sync node will become follower if verification of entry is synchronous
GDB-7172 Cluster failed quorum transaction does not always release transaction log lock
GDB-7171 Named graph not shown by
getContexts()
when it contains an owl:sameAs statementGDB-7165 The external proxy fails when you try using it for a PATCH request to the /rest/cluster/config api
GDB-7164 The external proxy fails to read the cluster status when GraphDB basic security is enabled
GDB-7158 Cluster follower does not replicate after out-of-sync
GDB-7148 Starting a new transaction from the transactions API returns wrong Location header
GDB-7104 GraphDB fails to restore from snapshot upon initialization
GDB-7094 Cluster report shows an error in the log file
GDB-7088 Cannot add a node that was previously removed and has more than one entry in its transaction log
GDB-7074 Removed cluster nodes cannot be added back in some cases
GDB-7059 GraphDB no longer allows variables over grouped value as a valid query projection
GDB-7048 Cannot add a node that was previously unsuccessfully added without a license
GDB-7033 Cluster node not responsive after all cluster nodes were stopped and some nodes were restarted
GDB-6952 Restoring a backup more than once may lead to stale cache and some operations not working
GDB-6755 Rapid cluster topology changes may lead to
OverlappingFileLockException
GraphDB Workbench¶
Bug fixing¶
GDB-7187 Followers should be able to import files from the server
GDB-7168 Download SPARQL results not working for certain queries
GDB-7146 Workbench shows stale username after login
GDB-7145 Workbench login form not showing after expired login
GDB-7068 When in cluster, a follower Workbench shows the repositories (and locations) of the leader
GraphDB Connectors & Plugins¶
New features and improvements¶
GDB-6954 Improved memory usage for the MongoDB connector
GraphDB Distributions & Deployment¶
New features and improvements¶
GDB-7191 External proxy returns its internal address with explicit transactions and when deployed with the Helm chart
GDB-7138 Make the developer examples use remote GraphDB and graphdb-client-api
GDB-7117 Upgraded RDF4J, Spring, and various other libraries to latest stable versions
GDB-7110 Removed the obsolete
adapter
directory from the distributionGDB-7109 Removed the obsolete
benchmarks
directory from the distributionGDB-6524 Implement cluster scalability for the Helm chart
Bug fixing¶
GDB-7161 GraphDB cannot be deployed with enabled security using the Helm chart
GDB-7160 GraphDB cannot be migrated when security is on and deployed with the Helm chart
GraphDB 10.0.0¶
Released: 30 June 2022
Component versions¶
RDF4J |
Connectors |
Workbench |
4.0.2 |
16.0.0 |
2.0.0 |
GraphDB 10.0.0 is the first major release since GraphDB 9.0 was released in September 2019 and introduces numerous improvements and changes that make GraphDB better than ever, including a new cluster implementation.
Important
- New high-availability cluster
This GraphDB 10 release introduces the new high-availability cluster based on the Raft consensus algorithm. In the new cluster, any node can be either a leader or a follower. The leader is akin to the master node in the old cluster, while a follower is similar to a worker. Unlike the old cluster, each node in the new cluster contains a replica of the data.
The Raft consensus algorithm uses majority voting to determine the current leader, and consensus to confirm every write operation. This ensures a high uptime, zero data loss, fault tolerance, and smooth recovery from unexpected situations and scenarios.
While the old cluster needed to be defined at the repository level, the new cluster is defined per entire GraphDB instance, which means that once a repository is created in the cluster, it automatically becomes part of the cluster.
The new cluster also handles transactions differently, in a manner that is very similar to how transactions are handled in a non-cluster environment. This makes it possible for every transaction to see its own changes before commit and unlocks some new use cases, such as using the Sequences plugin, that were not possible with the old cluster.
- Single distribution and repository type
Unlike previous versions of GraphDB, version 10 is a single distribution that can run in Free, SE, or EE mode, depending on the currently set license. In line with that, we refactored the existing GraphDB repository types (Free, SE, and EE worker) into a single new repository called simply “GraphDB repository”. It is now simpler than ever to create a repository using a GraphDB Free license and upgrade to SE or EE at any time without even a restart.
The single GraphDB distribution requires at least Java 11.
- Licensing and parallelism
We changed how we handle licenses to ensure that you get the optimal performance for the purchased number of cores and we made it possible to export a repository even with an expired license so you never get locked out of your own data.
The graph path search can now run in parallel mode (depending on the number of licensed cores) so that complex path searches run 5 to 10 times faster than before. Parallel mode must be explicitly requested as part of the query. This is just one of the optimizations we are working on in order to let customers who purchased a larger number of cores benefit not only from handling a big number of concurrent requests, but also get advantage in terms of faster processing of a single complex query.
- Connector filtering redesign
We listened to our users and did a major redesign of the connector filtering mechanism to allow for very fine-tuned filtering at every level of the indexing process, and we added two-variable comparison to cover numerous new use cases that were not possible with the old filtering. If you use connector filters, we urge you to get acquainted with the changes now to make sure you can benefit from them when you upgrade to the final GraphDB 10 release.
- Workbench improvements
We have retouched the GraphDB Workbench to make it even easier to use and we added an experimental dark theme (accessible via
).GraphDB 10 also introduces a French translation of the Workbench interface. You can change the language from the language selection button in the top right corner.
- Remote locations refactored
Remote locations have been simplified. They now serve mainly as a facility for easier cluster management. Remote locations in GraphDB 10 cannot be activated but the repositories from them are accessible from the Workbench together with the local repositories.
- Upgraded to the latest RDF4J 4.0
RDF4J 4 introduces Java 11 as a minimum requirement, just like GraphDB 10. It includes numerous fixes and improvements that improve the overall performance.
- OntoRefine removed from GraphDB
OntoRefine has been removed from GraphDB and is now developed as a separate product, part of our line of tools for data transformation. All existing OntoRefine and RDF mapping functionality will remain available in the new separate product.
Warning
The new release of OntoRefine is expected around 25 July 2022, and the OntoRefine CLI about a month later. If you need to use OntoRefine now, please hold off your upgrade from GraphDB 9.11 to 10 for a while.
GraphDB Engine & Cluster¶
New features and improvements¶
GDB-6904 As a user, I need to make a full GraphDB instance backup and restore through a REST API
GDB-6903 Support Java 17 for running GraphDB
GDB-6888 As a user, I want to use IPv6 with GraphDB out of the box
GDB-6849 Implement embedded load balancer/proxy
GDB-6818 Implement external load balancer
GDB-6762 As a user, I want to load balance Boolean & split queries in a cluster
GDB-6737 As a user, I want to be able to replicate SQL Views in a cluster
GDB-6726 Multiple cases of unclosed iterators/connections in both production and test code
GDB-6684 As a user, I want to be able to back up and restore an entire GraphDB instance
GDB-6683 Make the storage tool more user-friendly when scanning the predicate statistics
GDB-6679 As an admin, I want user changes to be replicated in a cluster
GDB-6677 As a user, I need to update the cluster configuration parameters with a PATCH request
GDB-6664 As a user, I want to know all GraphDB HTTP addresses for a cluster group and identify the leader node
GDB-6655 Remove OntoRefine from the project and the distribution
GDB-6602 High-availability Cluster load balancing
GDB-6575 Upgrade versions of various libraries
GDB-6541 As a user, I want to be able to secure my GraphDB cluster group
GDB-6540 As a user, I want to verify the GraphDB nodes state when joining cluster group
GDB-6539 As a user, I need to receive a response with an error message when I try to create an invalid cluster configuration
GDB-6533 As a security administrator, I need to provide case-insensitive usernames for user accounts
GDB-6521 As a DevOps, I want to be able to deploy GraphDB 10.0 using Helm
GDB-6494 As a user of GraphDB REST API, I need it to be intuitive, consistent, and conform to the best practices
GDB-6456 Migrate GraphDB to RDF4J 4.0.2
GDB-6407 Remove Jolokia and replace its uses with a REST API
GDB-6399 As a user, I want to add/remove node in a running cluster group though a REST endpoint
GDB-6372 Introduce automatic snapshot replication for out-of-sync followers
GDB-6336 Redesign command line tools to be more user-friendly and straightforward
GDB-6274 As a user, I want to use a Java client that would provide high availability of cluster
GDB-6268 As a user, I want to have cluster node defined per instance
GDB-6267 As a user, I want to have runtime group membership management
GDB-6266 As a user, I want to have automatic query load balancing
GDB-6265 As a user, I want to have automatic log replication between server nodes
GDB-6264 As a user, I want to have automatic leader election for fault tolerance
GDB-6236 As a user, I want to export my repository when the license is expired
GDB-6235 As a user, I want setting a new license to take effect without a restart
GDB-6189 Optimized resource closure and disposal
GDB-6183 As a user, I want the number of licensed cores to be used optimally
GDB-6055 As a user, I want to take advantage of parallel graph path query evaluation
GDB-5548 Allow shapes to be stored in a user specified named graph
Bug fixing¶
GDB-6777 Some easily processable Elasticsearch aggregations are not retrieved by the Elasticsearch connector
GDB-6770 Incorrect content type on some of the SPARQL template endpoints
GDB-6756 Bound variable for SERVICE endpoint not visible
GDB-6623 Tx-rollback-plugin packaged as a dependency of GraphDB
GDB-6582 License information is logged multiple times even when it has not changed
GDB-6544 Confusing warning when reverting to Free
GDB-6410 Query optimizer incorrectly selects a statement pattern with all unbound variables after arbitrary length property path
GraphDB Workbench¶
New features and improvements¶
GDB-6671 As a user, I want to create/edit/delete the cluster group in the Workbench
GDB-6517 As a user, I need a new styled and better looking Workbench
GDB-6493 As a user, I need to use a remote location only to manage external GraphDB
GDB-6401 As a user, I want to see the cluster state in the Workbench
GDB-6273 As a user I want to configure and view the state of the cluster group through the Workbench
GDB-5345 Internationalization support in the Workbench and preliminary French translation
GDB-4288 As a user, I need to explore nested triples in the Visual graph
Bug fixing¶
GDB-6946 GraphDB unable to find base URL when the URL is over 4,096 symbols
GDB-6732 There is no validation for the prefix and namespace IRI during namespace create/update
GDB-6462 Visual graph does not show relations direction in some cases
GDB-6225 When importing a directory from
, the status of the content of the directory is not updated
GraphDB Connectors & Plugins¶
New features and improvements¶
GDB-6772 Add cluster support to Sequences plugin
GDB-6744 Extend plugin API with support for adding/removing statements in a safe manner
GDB-6486 Introduce graph() pseudo URI that allows indexing the named graph of a connector field value
GDB-6487 Introduce the ability to start a connector nested document from one of the parents instead of the actual root of the nested document
GDB-5419 As a user, I need connector filtering with two independent variables
GDB-6136 As a user, I need to filter values and documents separately when I create a connector
Bug fixing¶
GDB-6742 Text Mining plugin fails to annotate document
GDB-6555 Nested documents merged incorrectly when using multiple property chain variants
GDB-3616 GraphDB JavaScript driver cannot upload
.ttl
files larger than 10 megabytes
GraphDB Distributions & Deployment¶
New features and improvements¶
GDB-3641 As a user, I want to a use a single GraphDB distribution with access to features based on my license
GDB-6181 Require OpenJDK 11 as a minimal version
GDB-6247 As a user, I want to use one repository type regardless of the license