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.2.5

Released: 1 September 2023

Important

GraphDB 10.2.5 improves cluster stability. We recommend everyone using the cluster to upgrade to this version.

Component versions

RDF4J

Connectors

Workbench

4.2.3

16.0.9

2.2.4

GraphDB Engine & Cluster

Bug fixing

  • GDB-8613 Cluster deadlock between transaction rollback and snapshot creation

  • GDB-8568 Cluster node cannot apply snapshot after unsuccessful verification of entry and rollback attempt

GraphDB 10.2.4

Released: 7 August 2023

Important

GraphDB 10.2.4 includes multiple bug fixes and improvements across different components. We recommend everyone to upgrade to this version.

Important bug fixes include several issues that improve the cluster stability.

Various third-party libraries were updated to address vulnerabilities and fixes.

Component versions

RDF4J

Connectors

Workbench

4.2.3

16.0.9

2.2.4

GraphDB Engine & Cluster

Bug fixing

  • GDB-8584 Two cluster nodes go out of sync at the same time and cannot get in sync

  • GDB-8543 Out of sync node does not proxy the requests to the leader node

  • GDB-8536 GraphDB does not delete temporary files created by the inferencer

  • GDB-8534 Extend Prometheus metrics to include description and type of each metric

  • GDB-8518 Cluster node goes out of sync due to leader shutdown when leader tries to rollback the last received entry

  • GDB-8511 The work directory of a temporary inferencer instance is the current directory of the Java process, which may lead to failing validation of custom rulesets on repository creation

  • GDB-8498 Performing a backup while another backup is still running will output the error message as a file over HTTP

  • GDB-8496 Cluster management operations should be disabled while a backup restore operation is running

  • GDB-8494 Cluster follower node cannot return to in-sync state if the leader node goes out of sync while the follower node is catching up

  • GDB-8478 Reduced log level verbosity related to message “Signature already used” when a cluster node changes IP

  • GDB-8462 Cluster node cannot provide snapshot because of blocked verification of entry

  • GDB-8381 Nodes cannot catch up if added to the cluster right after a backup is restored

  • GDB-8358 Two running cluster nodes cannot elect leader in three-node cluster

  • GDB-8326 Cluster node cannot return to in-sync after another node is stopped

  • GDB-8088 “FAILED_PRECONDITION: Unable to process entry during snapshot recovery” error in cluster

  • GDB-7892 A cluster created during a single instance backup restore procedure results in a NullPointerException after the restore

GraphDB Workbench

Bug fixing

  • GDB-8369 Cluster View broken toast error about lack of user permissions

GraphDB Distributions & Deployment

New features and improvements

  • GDB-8573 Update various libraries to address known vulnerabilities

GraphDB 10.2.3

Released: 12 July 2023

Important

GraphDB 10.2.3 includes multiple bug fixes and improvements across different components.

Important bug fixes include issues with parallel import as well as multiple cluster stability issues.

Various third-party libraries were updated to address vulnerabilities and fixes.

We recommend everyone to upgrade.

Component versions

RDF4J

Connectors

Workbench

4.2.3

16.0.8

2.2.3

GraphDB Engine & Cluster

New features and improvements

  • GDB-8312 Decrease verbosity of some cluster log messages

Bug fixing

  • GDB-8491 Requesting two backups simultaneously will result in “DEADLINE_EXCEEDED” error on the leader node and will always trigger new leader election after both backups are completed

  • GDB-8475 IllegalStateException thrown after a local backup in cluster mode on the node that was delegated to perform the backup

  • GDB-8454 gRPC communication to a GraphDB cluster may hang due to a dead lock

  • GDB-8450 External proxy will fail health check until at least one request is proxied

  • GDB-8440 Cluster node is not readable after force shutdown of all nodes

  • GDB-8431 Cluster cannot accept writes while a new node is joining the cluster

  • GDB-8407 Cluster cannot recover when the leader receives a snapshot request during transaction replication

  • GDB-8388 Cluster node does not process previously interrupted update after restart

  • GDB-8380 Mapping exception when trying to connect to GraphDB via JDBC* GDB-8374 Cluster dead lock when a plugin fails the transaction

  • GDB-8360 Node state is NO_CLUSTER after a node is restarted even though the node is part of a cluster

  • GDB-8331 Cluster proxy cannot be configured with the gRPC addresses of the cluster nodes

  • GDB-8305 Node may end up with infinite communication retries before building a snapshot

  • GDB-8118 Using parallel import may introduce storage inconsistencies or corrupted predicate list index

  • GDB-7143 GraphDB may throw an exception in commit during data import

  • GDB-8312 Decrease verbosity of some cluster log messages

GraphDB Connectors & Plugins

Bug fixing

  • GDB-8412 GeoSPARQL plugin fails with “Could not initialize class org.geotools.referencing.cs.DefaultCoordinateSystemAxis”

GraphDB Distributions & Deployment

New features and improvements

  • GDB-8444 Update various libraries to address known vulnerabilities

Bug fixing

  • GDB-8433 Helm: External proxy should not be restarted when a node is added/deleted from the cluster

GraphDB 10.2.2

Released: 7 June 2023

Important

GraphDB 10.2.2 includes multiple bug fixes and improvements across different components.

Important bug fixes include an integer overflow when attempting to flush changes to journal file on a very large repository, entity pool initialization issues after abnormal shutdown, and various issues with cluster recovery scenarios.

Various third-party libraries were updated to address vulnerabilities and fixes.

We recommend everyone to upgrade.

Component versions

RDF4J

Connectors

Workbench

4.2.3

16.0.7

2.2.3

GraphDB Engine & Cluster

New features and improvements

  • GDB-8355 Reduce the log verbosity of the external cluster proxy

  • GDB-8237 Better handling of GraphDB start in cluster recovery mode

Bug fixing

  • GDB-8361 Integer overflow when attempting to flush changes to journal file on a very large repository

  • GDB-8322 Cluster node remains locked when going out of sync and rejecting a streaming update

  • GDB-8306 External cluster proxy returns error 500 after request to abort query

  • GDB-8233 Server report missing information about a single node

  • GDB-8210 Creating a snapshot during a large update in a cluster leads to a misleading error message

  • GDB-8173 Unable to add new node to cluster immediately after transaction log truncate

  • GDB-8146 After abnormal shutdown, transactions fail with EntityPoolConnectionException: Could not read entity X

  • GDB-8090 Cluster node cannot recover after failing to send a snapshot to another node

  • GDB-7754 Inconsistent fingerprint in cluster

GraphDB Workbench

Bug fixing

  • GDB-8332 Missing options to add/remove cluster nodes in a follower’s workbench

  • GDB-8232 After executing a saved query from the welcome page or a link, a page refresh would execute the query again

  • GDB-8154 Executing a construct query in the workbench does not show the number of total results

  • GDB-8129 Long IRIs are cut from the SPARQL results view

  • GDB-7668 “Not all nodes are deleted” message with successfully deleted cluster

  • GDB-7170 Recursive remote location after restarting a follower

GraphDB Distributions & Deployment

New features and improvements

  • GDB-8272 Update various libraries to address known vulnerabilities

GraphDB 10.2.1

Released: 25 April 2023

Important

GraphDB 10.2.1 includes multiple bug fixes and improvements across different components.

Notable bug fixes include unnecessary rebuilding of the entity pool during initialization of large datasets and various cluster stability issues. Additionally, there are bug fixes addressing issues such as slow SPARQL MINUS operation on large datasets, and a filtering issue in the Connectors, among others.

Various third-party libraries were updated to address vulnerabilities and fixes.

We recommend everyone to upgrade.

Component versions

RDF4J

Connectors

Workbench

4.2.3

16.0.6

2.2.2

GraphDB Engine & Cluster

New features and improvements

  • GDB-7865 Defined user access rights for monitoring endpoints

Bug fixing

  • GDB-8130 GraphDB cluster improper rejection of streaming entry leads to deadlock

  • GDB-8065 Could not add a new node in the cluster due to failure to advance the node

  • GDB-8042 Entity pool rebuilds entities consistently during initialization of large repositories

  • GDB-8041 Graph Store protocol API generates a NPE after executing a request to a non-existing repo

  • GDB-8039 GraphDB cluster node sends corrupted recovery snapshot to another follower

  • GDB-8028 GraphDB cluster infinite recovery on failure to restore from backup

  • GDB-8026 Hitting cluster creation timeout (2h) when using big data and slow disks

  • GDB-8011 Slow SPARQL MINUS operation on large datasets

  • GDB-7887 Cluster creation error when trying to create a cluster with existing data and a large number of namespaces

  • GDB-7699 Empty response on some queries when executed through external proxy

  • GDB-6418 Invalid SPARQL query with COUNT() returns error 5xx instead of error 4xx

GraphDB Workbench

New features and improvements

  • GDB-7948 Various improvements in monitoring UI

  • GDB-7921 Disallow creation of multiple advanced graph configurations with the same name

Bug fixing

  • GDB-8067 Invalid example varname in RDF4J Swagger description

  • GDB-8004 Wrong download URL for PostgreSQL JDBC driver

GraphDB Connectors & Plugins

Bug fixing

  • GDB-8111 Connector’s root valueFilter prevents nested fields

  • GDB-7997 Could not initialize class com.useekm.geosparql.UnitsOfMeasure when using hasExactGeometry

  • GDB-7970 Text mining plugin does not support UTF-8 encoded text

  • GDB-7968 Unable to remove History plugin filter with a negated subject position

GraphDB Distributions & Deployment

New features and improvements

  • GDB-8109 Update various third-party libraries to address vulnerabilities and fixes

  • GDB-8019 Provide options for repositories provisioning in GraphDB’s Helm chart

  • GDB-7978 Add a security context to the Helm chart allowing GraphDB to be run as a non-root user

  • GDB-5875 Add Helm chart options to attach additional PVs and environment variable configurations

GraphDB 10.2.0

Released: 28 February 2023

Component versions

RDF4J

Connectors

Workbench

4.2.2

16.0.5

2.2.1

GraphDB 10.2 offers improved cluster backup with support for cloud backup, lower memory requirements, and a more transparent memory model. Monitoring system health and diagnosing problems is now easier thanks to new monitoring facilities via the industry-standard toolkit Prometheus, as well as directly in the GraphDB Workbench. In addition, accessing GraphDB now offers more flexibility with support for X.509 client certificate authentication.

Important

Improved cluster backup and support for cloud backup

GraphDB 10.2 introduces a redesigned backup and restore API that makes creating and restoring backups a breeze both in a cluster and in a single instance environment. Backups are now streamed to the caller so there is more flexibility in where and how they can be stored.

In addition, backups can be stored directly in Amazon S3 storage to make sure your latest data is securely protected against inadvertent changes or hardware failures in your local infrastructure.

Lower memory requirements and a more transparent memory model

The global page cache is one of the components that takes up a significant amount of the configured GraphDB memory. While the value can be configured, people typically stick to the default value. Until GraphDB 10.2, the default value was fixed to 50% of the configured maximum Java heap. With the release of GraphDB 10.2, the default value varies between 25% and 40% of the heap according to the maximum size of the heap. This results in lower memory usage without sacrificing the performance benefit of a large page cache size.

Historically, GraphDB used two independent chunks of memory, the Java heap and the off-heap memory. This made it difficult to determine and set the required memory for a given GraphDB instance, as off-heap memory was not intuitive and often forgotten about. The problem was more evident in virtualized environments with memory allocated to match only the Java maximum heap size, leading to unexpected failures when the off-heap memory usage grows.

To address this, we redesigned some internal structures and moved memory usage from off-heap to the Java heap. This results in a more straightforward memory configuration, where a single number (the Java maximum heap size) controls the maximum memory available to GraphDB.

We also optimized the memory used during RDF Rank computation. As a result, it is now possible to compute the rank of larger repositories with less memory.

Better monitoring and support for Prometheus

GraphDB 10.2 adds support for monitoring via Prometheus, an open-source systems monitoring and alerting toolkit adopted by many companies and organizations. The exposed metrics include memory usage, cluster health, storage space, cache statistics, slow/suboptimal queries, and others. They allow a DevOps team to assemble a dashboard of vital GraphDB statistics that can be used to monitor system health and diagnose problems.

In addition to Prometheus, we exposed the most important metrics as part of the GraphDB Workbench so that everyone can benefit from the additional information regardless of whether they use Prometheus.

More flexible authentication options with X.509 certificates

Security is an important aspect of any system. In addition to the existing authentication options, we added support for X.509 client certificates. Once a certificate is issued, the client can simply connect to GraphDB without requiring any other means of authentication. The identity of the user is extracted from the certificate and used to look up the respective user authorization (roles and access rights) in the configured authorization database (local or LDAP).

Stay up-to-date with the latest versions of third-party libraries

As a general strategy to offer a secure and reliable product, we strive to provide up-to-date versions of third-party libraries. This includes both features and bug fixes provided by the libraries and also addresses newly identified public vulnerabilities.

The RDF4J library in GraphDB is now upgraded to 4.2.2 and also brings SHACL improvements and general bug fixes.

GraphDB Engine & Cluster

New features and improvements

  • GDB-7814 Usability improvements of recovery API parameters

  • GDB-7720 Unfriendly error message when there is insufficient memory to evaluate a query

  • GDB-7736 As a DB administrator, I need a way to monitor GraphDB’s cluster statistics

  • GDB-7735 As a DB administrator, I need a way to monitor system resources

  • GDB-7734 As a DB administrator, I need a way to monitor query statistics

  • GDB-7733 As a DB administrator, I need a way to monitor GraphDB structures

  • GDB-7697 As a DB administrator, I need a smarter default value for the global page cache size

  • GDB-7673 As a DB administrator, I need a more transparent memory model (use mostly on-heap memory)

  • GDB-7637 As a DB administrator, I need to restore from backup streamed to GraphDB

  • GDB-7628 As a DB administrator, I need to able to restore a cluster from backup

  • GDB-7602 As a DB administrator, I want to be able to backup and restore GraphDB to/from cloud sequential storage

  • GDB-7492 As a DB administrator, I need to be able to create backup inside and outside of cluster

  • GDB-7490 As a DB administrator, I need backups to be streamed to client

  • GDB-6557 Support for X.509 certificate authentication

  • GDB-6624 Predefine common SPARQL function namespaces

Bug fixing

  • GDB-7917 Removing the leader node in cluster can result in an unrecoverable situation

  • GDB-7846 External URL is always enforced for transaction URLs

  • GDB-7773 Issues with writes in cluster when using the ImportRDF tool

  • GDB-7727 GraphDB becomes unresponsive when FedX repositories are used

  • GDB-7683 Typo in GraphDB log message

  • GDB-7671 Cannot start cluster with correct config after an attempt to start it with wrong config

  • GDB-7499 ARQ aggregate: var_samp() for single value returns different result from Jena

  • GDB-7498 ARQ aggregate functions: “Error: null” when using a non-existent function

  • GDB-7360 Invalid remote location replication in cluster

  • GDB-7080 Cluster breaks re-added node after autocomplete/RDF rank has been built/computed

  • GDB-6666 Providing an OWL file whose name matches the config.ttl file when creating Ontop repository, leads to “Error loading location”

GraphDB Workbench

New features and improvements

  • GDB-7737 As a DB administrator, I want to be able to view in the Workbench various system resources and metrics

Bug fixing

  • GDB-7700 Interactive Guides are unavailable (403) when security is turned on

  • GDB-7686 Users and license disappear and reappear from the view when the browser has been refreshed

  • GDB-7591 The Similarity indexe “Show SPARQL query” produces broken SPARQL

  • GDB-7586 SPARQL editor tab names do not encode symbols properly

  • GDB-7585 Interactive User Guides crash when a double-click happens on import segment

  • GDB-7553 HTML tag <br> visible in the description of the 40-bit index of the create repository menu in the Workbench

  • GDB-6580 Button “include inferred data” in the SPARQL editor gets disabled after refreshing the page

  • GDB-6076 Workbench SPARQL results JSON view shows only the first 100 results

GraphDB Connectors & Plugins

New features and improvements

  • GDB-7739 As a user of the history plugin, I need to define rules with negation

  • GDB-7663 As a developer, I need the security context in GraphDB plugins

  • GDB-5952 Improve RDF Rank memory footprint

Bug fixing

  • GDB-7926 History plugin inconsistency if looking up entries with exact timestamps

  • GDB-7776 History plugin shows statements that never existed in a particular moment

GraphDB Distributions & Deployment

New features and improvements

  • GDB-7979 Update artifact name and URLs in graphdb-runtime deployed to Maven Central

  • GDB-7139 Clean up the runtime .jar and its dependencies

Bug fixing

  • GDB-7578 GraphDB console should not be able to connect to the data directory of a running instance

  • GDB-7464 Cannot set isolation level when using RDF4J client 3.x